首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

=false 和 2!=true 返回的都是true

前言 今天突然想起一个奇怪的问题,记录一下,我在控制台执行内容如下: 由上图可见,2 != false 和 2 != true 返回的值竟然都是true,那么为什么呢,请看下文: 1 !...= true 返回 true 的原因涉及到 JavaScript 中的类型转换和比较规则。 2 类型转换 当使用 !...= 进行比较时,JavaScript 会尝试将比较的两个值转换为相同的类型,然后再进行比较。以下是 2 != false 和 2 != true 的过程: 2 !...= false false 会被转换为数字类型。根据 JavaScript 的转换规则,false 被转换为 0。 现在表达式变成了 2 != 0。 2 和 0 不相等,因此返回 true。 2 !...= false 返回 true 是因为 2 和 0 不相等。 2 != true 返回 true 是因为 2 和 1 不相等。 这就是为什么 2 != false 和 2 !

10910
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    为什么1000==1000返回false,100==100返回true?

    这可能是个讨论得较多的话题,但是我觉得它很有趣:为什么1000==1000返回false,100==100返回true?...System.out.println(a == b); Integer c = 100, d = 100; System.out.println(c == d); } 这段代码运行之后打印出的结果一定会让你赶到困惑...,请看: false true 我们知道,如果两个引用指向同一个对象,那么它们在==.如果两个引用指向不同的对象,那么即使它们具有相同的内容,它们在==方面也不相等。...这实际上是有趣的地方。如果查看Integer.java类,您会发现有一个内部私有类,IntegerCache.java,它缓存-128和127之间的所有Integer对象。...-128和127之间,那么将返回缓存中的对象,所以 Integer a = 1000, b = 1000; 是同一个对象。

    1.2K20

    为什么1000 == 1000返回为False,而100 == 100会返回为True?

    true 我们知道,如果两个引用指向同一个对象,那么==就成立;反之,如果两个引用指向的不是同一个对象,那么==就不成立,即便两个引用的内容是一样的。...因此,结果就会出现false。 这是非常有趣的地方。如果你查看Integer.java类,你会找到IntegerCache.java这个内部私有类,它为-128到127之间的所有整数对象提供缓存。...()类函数,我们可以看到 public static Integer valueOf(int i) { if (i >= IntegerCache.low && i return IntegerCache.cache...[i + (-IntegerCache.low)]; return new Integer(i); } 如果值在 -128 到 127 之间,它就会返回该缓存的实例。...这就是为什么这段代码的结果为true了: System.out.println(c == d); 现在你可能会问,为什么会为-128到127之间的所有整数设置缓存?

    1.7K50

    奇怪的Java题:为什么128 == 128返回为false,而127 == 127会返回为true?

    奇怪的Java题:为什么128 == 128返回为false,而127 == 127会返回为true? 在回答这个问题之前,我们先来看看int和Integer的对比,一步步揭开问题的答案。...Integer i = new Integer(100); Integer j = new Integer(100); System.out.print(i == j); //false 因为new生成的是两个对象...,其内存地址不同 (2) Integer变量和int变量比较时,只要两个变量的值是相等的,则结果为true。...Integer i = new Integer(100); int j = 100; System.out.print(i == j); //true 因为包装类Integer和基本数据类型int比较时...,java会自动拆包装为int,然后进行比较,实际上就变为两个int变量的比较 (3) 非new生成的Integer变量和new Integer()生成的变量比较时,结果为false。

    2.3K31

    Effective STL(21) 永远让比较函数对相同元素返回false

    问题描述: 昨天一哥们些的程序,在定义比较函数的时候是这样写的 bool cmp(const T& a, const T& b) { if (a >= b) return...true; return false; } 在内部测试时,一直表现挺好,也没挂。...原因分析: stl:sort 排序 如果数据过多 才会用快速排序 所有数据进行与中间值比较的时候是无边界保护的, 当我们的容器里面所有值都相等,而comp()函数对相等返回true的时候,在进行快速排序的时候...++first 可能越界 解决办法: bool cmp(const T& a, const T& b) { if (a > b) return true; return false...; } effective stl 第21条:总是让比较函数在等值情况下返回false 扩展问题: Q 在多线程和高并发环境下,如果有一个平均运行一百万次才出现一次的bug, 你如何调试这个

    1.7K90

    VFP的过程或函数如何接收数组参数或返回一数组结果?

    一、给过程或函数传递一个数组参数。 LOCAL ARRAYabc[5] abc[1]="A" abc[2]="B" abc[3]="C" abc[4]="D" abc[5]="E" CLEAR ?...数据传值,使用的是地址引用传值。 二、过程或函数传递返回一个数组。 LOCAL ARRAY abc[5] abc=returnarr() ?abc[1] ?abc[2] ?abc[3] ?...bbb[5] bbb[1]="一" bbb[2]="二" bbb[3]="三" bbb[4]="四" bbb[5]="五" RETURN @bbb Endfun 这里要注意二个方面,1、过程或函数中...也是地址引用返回值。 三、过程或函数传递返回几个数组。 LOCAL ARRAY a[5] LOCAL ARRAY b[3] returnarr_more(@a,@b) ?a[1] ?a[2] ?...ENDFUNC 上面的代码,其实是引用址传递,过程或函数直接改变传递参数的值,而已。所以我们也可以看到有些函数的参数,有一个是返回值参数。就是上面的用法。 好了。总结这些,为狐友们参考!

    3.3K30

    Excel公式技巧01: 使用INDEX函数返回整行或整列

    在Excel中,INDEX函数是我们经常使用的函数之一,可以返回一个值,然而,如果将其行参数或者列参数指定为0(或者忽略),那么会返回对指定列或行的引用。注意,这里返回的不是单个值,而是一组值。...图2 如果行列参数都忽略或者都指定为0,则返回对整个数据区域的引用,例如: =INDEX(A1:D4,0,0) 或者 =INDEX(A1:D4,,) INDEX函数不仅能够生成对实际单元格区域的引用,还可以让其生成一组...TRUE/FALSE值,例如公式: =INDEX(A1:A10"",0,0) 结果如下图3所示。...图3 上述公式也可以写为: =INDEX(A1:A10"",) 或者: =INDEX(A1:A10"",,1) 或者: =INDEX(A1:A10"",,) 实际上,我们让INDEX函数返回数组...例如,找到第1列中第一个非空单元格的位置: =MATCH(TRUE,INDEX(A1:A10"",0,0),0) 结果如下图4所示。 ? 图4

    21.8K40

    【DB笔试面试466】存储过程或函数如何返回集合类型?

    题目部分 存储过程或函数如何返回集合类型? 答案部分 TABLE()函数可接受查询语句或游标作为输入参数,并可输出多行数据,称为表函数。...所以,存储过程或函数返回集合类型主要采用的是表函数和PIPELINED函数(管道化表函数)及数组结合的方式。当然,也可以采用存储过程返回系统游标SYS_REFCURSOR或自定义游标的方式。...下面先看一个使用表函数的最简单的例子: CREATE TABLE TEST (ID VARCHAR2(20)); INSERT INTO TEST VALUES('1'); COMMIT; EXPLAIN...---------------------------------- - dynamic sampling used for this statement (level=2) 可以看到,一个简单的表函数可以返回多行数据...OTHERS THEN NULL; END; 查询: SELECT F_GET_SYS_REFCURSOR_LHR(7566) FROM DUAL; 结果如下所示: 有关存储过程或函数返回集合类型的写法有多种

    1.3K30
    领券