首页 > 试题广场 >

下列语句运行后哪些打印的结果是false()

[单选题]
下列语句运行后哪些打印的结果是false()
  • alert(2<1<3)
  • alert(3 == “3”)
  • alert(null == undefined)
  • alert(null == 0)

2<1会显示false,而false在js中会被转换为0,那么后面那句就变成了0<3,显然显示是true

发表于 2017-03-01 11:04:32 回复(2)
null>0显示false,null==0显示false,null>=0显示true。
发表于 2017-03-23 20:15:04 回复(5)
《JavaScript高级程序设计》是这样解释相等性测试的:
null和undefined相等。
在比较相等性之前,不能将 null 和 undefined 转换成其他任何值
由此可得,在==相等性测试中,null 和 undefined 除了和彼此比较以外,与其他任何类型操作数进行相等性测试都为 false
发表于 2022-02-15 17:45:40 回复(0)
null 只有 null == undefined 和null == null 这两种情况才是true.
发表于 2022-02-08 10:39:20 回复(1)
在关系运算符中,null,undefined会被Number()强制转换成数字类型;
在相等运算符中,null,undefined则不会转化为数字类型,而是经过特殊处理后转化为false
发表于 2021-10-29 14:48:58 回复(0)
null 和 undefined 除了和彼此比较以外,与其他任何类型操作数进行相等性测试都为 false
发表于 2022-08-23 19:09:38 回复(0)
这题。。。。。。请问B怎么解释?

发表于 2019-11-28 17:55:16 回复(2)
选D
一、A选项:
2<1显示false, false在比较运算符中,先被转换为数字0再进行比较,也就是比较0<3,显示true

二、CD选项:

  1. 相等性检查==和普通比较符> < >= <=的代码逻辑是相互独立的。

(1) 在进行值的比较值,null会被转化为数字再进行比较

(2) 在相等性检查==中,不能将null和undefined转换为其他任何值,除了它们之间互等外,不会等于任何其他的值。


发表于 2021-12-07 16:03:38 回复(1)
这题考查的是ecma 规范对==的定义,对于x == y,有以下规定: 1. 如果x或y是Abrupt,会报错 2. 如果x或y类型相同,等价于执行x===y 3. 如果x和y分别为undefined 和null,返回 true 4. 如果x和y一个是string,另一个是number,把string的转换为number然后再比较 5. 如果x或y是Boolean,转换为number再比较 6. 如果x和y,一个是object,另一个是number、string或symbol,将object的ToPrimitive之后再比较,其实就是调valueOf或toString之后再比较 7. 其他情况返回false 来源自:https://262.ecma-international.org/6.0/#sec-toprimitive
发表于 2022-10-21 09:36:12 回复(0)
  • 强制转换为布尔类型,两者都是 false
  • 强制转换为数值,undefined 返回的是 NaN,null 返回的是 0。用 isNaN() 验证,undefined 不是数字,null 是数字。
  • 特别地:undefined == null 结果为 true
  • 比较操作符 == 不会自动转换 undefined 和 null
发表于 2022-02-07 08:30:08 回复(0)
相等( == )不需要做一个类型判断,会强制将两边的数据类型转换为相等的数据类型然后再做数据判断。
全等( === )包括类型也要做判断,类型不同则返回false
2、3 == “3”  true
3、要比较相等性之前,不能将 null 和 undefined 转换成其他任何值,并且规定null 和 undefined 是相等的。null 和 undefined都代表着无效的值。


发表于 2021-11-01 18:35:35 回复(0)
B?????true吗?
发表于 2019-08-24 17:32:30 回复(1)
null 和 undefined 除了和彼此比较以外,与其他任何类型操作数进行相等性测试都为 false
发表于 2022-07-19 17:42:27 回复(0)
alert是java语言么,为什么会出这种京东
发表于 2018-08-21 18:43:19 回复(0)

因为JavaScript会从左到右依次执行比较操作。

首先,它会比较 2<1,结果为 false。然后,它会比较 false<3。在这里,JavaScript会将 false 自动转换为数字0,所以实际上比较的是 0<3,结果为 true

所以,alert(2<1<3) 会弹出的是 true。这就是JavaScript中的类型转换和比较操作的特性。希望这个解释对你有所帮助!

发表于 2023-10-09 23:07:32 回复(0)

alert(2<1<3) //true
alert(3=="3") //true
alert(null==undefined) //true
alert(null===undefined) //false
alert(null==0) //false

发表于 2022-11-22 14:41:23 回复(0)
A 从左到右,2<1 为 false,false<3 转化为 0<3 所以为 true B 双等隐式转化为 true C null 和 undefined 都为 false,故为 true D null >=0
发表于 2022-09-12 09:30:09 回复(0)
null、undefined在想等运算符中会被特殊处理成整体结果为false
发表于 2022-03-28 13:16:06 回复(0)
null是没有,不代表0。
发表于 2017-08-30 20:21:21 回复(0)