【JS】falsy与truthy

1.Falsy值,当进行逻辑判断时均为false(如!!false==false)。六个Falsy值:false、undefined、null、正负0、NaN、""。

2.其余所有的值均为Truthy,当进行逻辑判断时均为true(如!![]==true)。Infinity、空数组、”0″都是Truthy值。

MDN非假值文档

转载2个有趣的例子,点击标题查看详细:
一,[] == ![] //true
解析:

  1. 等号右边有 ! ,优先级比 == 更高,优先计算右边的结果。 [] 为非假值,所以右边的运算结果为 false。

![] ==> false 
  1. == 的任意一边有 boolean 类型的值时先把这个值转换成 number 类型,右边转换成了 0。

Number(false) ==> 0 
  1. == 的两边分别是 number 和 object 类型的值时,把 object 转换成 number 类型,需要对 object 进行 ToNumber 操作。

Number([].valueOf()) ==> 0

二,++[[]][+[]]+[+[]]//"10"
解析:
1.++[[]][+[]]+[+[]]==>

++[[]][+[]]
+
[+[]]

2.因为+[] === 0,所以原式==>

++[[]][0]
+
[0]

3.因为 [[]][0] 的意思是:获取 [[]] 的第一个元素,返回[[]]的第一个数组[],原式==>

1
+
[0]

4.当数组只有一个元素时,返回结果就是它自身的第一个元素,原式==>

1+"0"==>"10"//字符串
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值