1<2<3=true,3>2>1=false,[] == ![]为true,{} == !{}为false
程序员文章站
2022-05-01 23:13:02
...
1<2<3 输出结果为 true
3>2>1 输出结果为 false
[] == ![] 输出结果为 true
{} == !{} 输出结果为 false
按照计算顺序,不难理解
1<2输出结果为true,然后true<3,输出结果为true
3>2输出结果为true,然后true>1,输出结果为false
![]输出结果为false,然后[] == false,输出结果为true
!{}输出结果为false,然后{} == false,输出结果为false
抛开前面的扰乱,这个问题的实质是不同数据类型的关系运算
任意值与布尔值比较,都会将两边的值转化为Number。
Number(true) 1
Number(false) 0
Number([]) 0
Number({}) NaN
其中NaN是一个特殊的情况,规定NaN不和任何数值相等,包括它自身。
由此延伸到几个知识点,推荐几篇文章。
推荐阅读
-
关于一道面试题【字符串 '1 + (5 - 2) * 3',怎么算出结果为10,'eval'除外】
-
Java经典编程习题100例:第18例:编写程序,将一个数组中的元素倒排过来。例如原数组为1,2,3,4,5;则倒排后数组中的值
-
数组中的元素颠倒顺序,例如原始数组为1,2,3,4,5,反转后的数组为5,4,3,2,1
-
java-66-用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。颠倒之后的栈为{5,4,3,2,1},5处在栈顶...
-
5.例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1
-
编写计算并输出一个3*3阶矩阵对角线元素的和。 程序运行结果示例: 请输入数组元素:(3*3)↙ 1 2 3 4 5 6 7 8 9↙ ↙ 数组为:cqupt
-
给出数组array(1,9,5,8,3,7,2,4,6),写一个方法对其进行排序,使排序后的结果为(1,2,3,4,5,6,7,8,9)
-
c#,定义一个函数过程调用,完成计算1!+2!+3!...+n!的值,n为输入的任意整数。
-
任意给定一个正整数n,如何计算1*2+3*4+5*6+....+n(n为奇数)或1*2+3*4+5*6+....+(n-1)*n(n为偶数)?
-
leecode-1 给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。整数 n 是 3 的幂次方需满足:存在整数 x 使得 n =3x