JavaScript中能欺骗你的11个关于true false的问题

  • A+
所属分类:JavaScript

首先,我们先要确定下Javascript中的定义的细节.

假的(false): 在Javascript 6种都是false的是 null,undefined,"",0,NaN

真的(true): 两种都是true, 字面量true和不是false的都是true.

我们这里罗列了一些,可能会遇到的问题.我们以问答的形式

问: 'false' 是 false吗?

答: 不是.因为字符串的长度大于0.只有空字符串才是false.

问: ' '是false吗?

答: 不是.因为,他不是空字符串. 他里面是空白字符串

问: {}是false吗?

答: 不是的.它是一个对象.一个对象没有任何的属性,也是一个对象.所以,他不是false.

问: 那关于 [] 呢?

答: 他也是true.他是一个数组对象,所以同样是true.

问: 如果说''是false,那关于new String('')呢?

答: 通过字符串的构造函数来创建的空字符串,但是他是创建了一个字符串对象.一个很清晰的字符串实例对象.所以他是一个对象.他就不是false了.值为true.

问: 那告诉我关于 new Boolean(false).

答: 这个是真的.他创建了一个Boolean类型的对象.对象当然是真的.

问: Boolean(function(){})

答: 给Boolean函数传递一个真值,所以也是为true.

问: Boolean(/foo/)

答: true

问: true%1

答: 0. 当true做运算时,true会转化为1来进行进行.这里是求余,那结果是0.同理 false%1

问: ''%1

答: 0

weinxin
我的微信公众号
我的微信公众号扫一扫

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: