黑马程序员技术交流社区

标题: “===”,比较的是类型和值 [打印本页]

作者: JoyZhang    时间: 2021-1-15 11:19
标题: “===”,比较的是类型和值
大家在工作中应该会看到很多人有时候用"==",有时候用"===",今天就讲讲"==" 先做几个题目


[AppleScript] 纯文本查看 复制代码
console.log(1,false == 0)
console.log(2,false == 1)
console.log(3,false == "1")
console.log(4,false == null)
console.log(5,false == undefined)
console.log(6,1 == [])
console.log(7,1 == [1])
console.log(8,[1] == [1])
console.log(9,[] == ![])

答案:1 true,2 false,3 false,4 false,5 false,6 false,7 true,8 false,9 true
刚开始大家做这些题的时候可能心里是很没有底气的,基本是凭感觉,那么我来说一下
相等的转换规则
注意点:上面的规则是从上往下一条条的去匹配规则,匹配到了就应用哪条规则
[AppleScript] 纯文本查看 复制代码
console.log(NaN == 1) // false
console.log(NaN == 0) // false
console.log(NaN == NaN) // false
console.log(null == 1) // false
console.log(null == 0) // false
console.log(null == undefined) // true
console.log(null === undefined) // false
console.log(false == 1) // false 0 == 1
console.log(false == "1") // false
console.log([] == ![]) // true
最后一个为true的原因,![] 为Boolean的false 第4条转换成0,[] 转换成Boolean为true 但是转换成数字是0 所以[] == ![] 的结果是true

提示:
Boolean() 函数可以将任意类型的值转为布尔值 它的转换规则相对简单:除了以下五个值的转换结果为false,其他的值全部为true
undefined,null,0,NaN,''(空字符串)









欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2