首页 > 代码库 > javascript中的true和false

javascript中的true和false

今天遇到一个问题,执行下面的代码返回true还是false?请说明理由

console.log([] == ![])

在浏览器中运行了一下,发现结果是true。为什么会这样呢?于是查找了相关的资料。

在javascript中0,"", null, unbdefined,NaN,false 为false,其他为true

if(0 || "" || null || undefined || NaN || false) {  console.log("true")}else{  console.log("false")}

打印结果为false

特别的,当[]与==或者!=进行使用时,被当作""来进行处理;一个非null或者undefined的对象(包括[])用在布尔表达式中,会被作为true来进行处理。因此![]的结果为false。则[]==![]等价于""==false,因此结果为true。

下面代码进行验证:

console.log([]=="") //打印true,说明[]与==使用时被当作""来处理if([]==false) console.log("false") //打印false,说明[]与==使用时是falseif([]) console.log("true") //打印true,说明在逻辑运算中[]被当作true来处理console.log(![]) //打印false

 

javascript中的true和false