首页 > 试题广场 >

以下js表达式返回false的是()

[单选题]
以下js表达式返回false的是()
  • 1==true
  • “”==false
  • false==null
  • null==undefined
推荐
正确答案是C,不要被误导了。
编辑于 2017-03-19 19:36:34 回复(13)

undefined和null与任何有意义的值比较返回的都是false,但是null与undefined之间互相比较返回的是true。

console.log(null == false); 
console.log(null == true);
console.log(undefined == false);
console.log(undefined == true); 
console.log(undefined == null);
console.log(undefined == undefined);
console.log(null == null);

编辑于 2017-08-28 10:24:18 回复(11)
null与undefined在与其他数相等运算时不进行类型转换
发表于 2017-03-02 00:15:11 回复(1)
关于==的比较规则大体有一下几点:
1、操作数为数字与字符串时,将字符串转换为数字,再比较值
2、操作数为布尔和非布尔时,现将布尔转换为数字,再比较值
3、普通类型(布尔/字符串/数字)和对象类型(数组、对象等)比较时,现将对象类型进行toString()的转换,如果操作数有布尔类型,则现将布尔类型转换为数字,然后在进行对象的转换,再比较值
4、null和undefined,关于它们更多的是记住规则:(1)null == undefined (2)null与undefined不能进行类型转换(换句话说不能进行类型转换,那么怎么能进行同其他类型的比较呢?那自然就是false了)
5、Nan == Nan //false
编辑于 2017-10-22 00:33:02 回复(0)
undefined值是派生自null值的,因此规定对它们的相等性测试要返回true;但null === undefined会返回false,因为它们是不同类型的值。
在比较相等性之前,不能将null 和undefined转换成其他任何值。
发表于 2017-03-26 23:42:46 回复(1)
==运算符的比较逻辑,最权威的解释请看这里:
本题解析:答案应为C
A. 1 == true,会将true转换为1,return true
B. "" == false,会将false转换为+0,再将""转换为0,return true
C. false == null,会将false转换为+0,比较"+0 == null"时发现没有规则可应用,故 return false
D. null==undefined,return true

简单解释:
1. 俩操作数类型相同
a. undefined/null,return true
b. number
  b1. 其中有个是NaN,return false
  b2. +0、-0、0,三者互相比较时相等,return true
c. string, 只有当字符串完全相同才 return true
d. boolean, 均是true/false则 return true

2. 俩操作数类型不同
a. undefined与null,return true
b. number与string,将string强制转换为number后比较,如何比较?请看这里:
c. 一个是boolean,将boolean转换为number后再做比较(true强制转换为1,false强制转换为+0)
d. 一个是string或number,另一个是object,则会调用ToPrimitive将object转换后,再做比较,如何比较?请看:
e. 说明以上条件都不符合,return false

发表于 2018-08-26 19:34:15 回复(1)

JS中的0,null,undefined,[],'',false之间的关系

条件表达式中undefined,null,空字符串 0 都当作false用在if语句判断,但undefined,null,空字符串, 0、false之间并不一定是相等的关系;通过代码实现说明有以下规律:

(1)  0 、“” [] false两两之间是相等的关系,当然非0的其他数字和true相等

(2)  null 和0 “” [] false之间并不相等

(3)  undefined 和0 “” [] false之间并不相等

(4)  null 和undefined 是相等的

(5)  用===比较时,===是严格运算符,由于严格运算符要考虑数据类型,所以0,null,undefined,[],'',false之间都不是相等。

发表于 2017-12-31 17:09:23 回复(0)
作比较关系时:任何类型转换number类型,true的number为1;false的number为0; boolean类型:空字符、NaN、0、空、未定义,这几个值初始值就==false undefind本身就是Null延伸出来的类型对象,undefind不能严格等于“===”Null
编辑于 2017-03-26 23:35:25 回复(0)
其他思路, 通过falsy值快速判断
7个falsy值: 0, 空字符串, null, undefined, NaN, false, document.all
前6个常用

选项a, b通过falsy值判断返回true. 选项d也返回true, null和undefined相等算是js的特性吧
选项c中false和null为不同数据类型返回false.
发表于 2018-09-04 10:19:29 回复(0)
JS中 boolean值为false的情况是:0 "" false null undefined NaN  其他为true
false == null false
null==undefined  true
undefined和null与任何有意义的值比较返回的都是false,但是null与undefined之间互相比较返回的是true。
发表于 2021-06-21 10:54:20 回复(0)
undefined和null与任何有意义的值比较的结果都是false,但是null和undefined之间互相比较的返回值结果是true
发表于 2018-10-27 14:30:37 回复(0)
==和!=这两个操作符都会先转换操作数(强制转型),然后比较相等性。
在转换不同的数据类型时:
有一个操作数为布尔值,则先转换为数值
不能讲null和undefined转换为其他任何值
null和undefined是相等的
发表于 2017-06-07 22:41:10 回复(0)
①注意区分==和===和转换:
关于==和转换的坑,可以学习一下这个题目:
https://www.nowcoder.com/profile/303433/myFollowings/detail/2740266
②问题:
==的特殊比较情况:
undefined == 0; //false;;
null == 0;   //false;
undefined ==  null;  //true;

false == 0;   //true;
/////////////////////////////////////////////////////////
console.log(null == false);  //false;
console.log(undefined == false)  //false;
 



发表于 2017-04-14 22:05:42 回复(2)
C才是对的
发表于 2017-04-02 13:08:58 回复(0)
b
发表于 2016-11-30 23:57:26 回复(0)
d
发表于 2016-11-28 14:41:06 回复(0)
发表于 2022-09-22 17:56:47 回复(0)
<p>Null和undefined与有意义的值的比较都是false,但是null == undefined结果为true,</p><p>和自身比较也是true</p>
发表于 2020-11-12 23:26:47 回复(0)
false == null 判断时,会做一个隐式转换,把false和null转化成同类型number作比较,Number(false) = 0,Number(null)为1,因为null本质上时一个对象。
发表于 2020-06-15 21:40:45 回复(1)

undefined是null派生,null是对象 undefined是undefined


发表于 2018-08-14 19:24:20 回复(0)
null === undefined
false
null == undefined
true
发表于 2017-06-17 22:25:31 回复(0)