boolean: true false
! 一个叹号是取反,首先将值转化为布尔类型 然后再取反
console.log(!3); false
数据类型转换的规则:
1、如果只有一个值,判断这个值是真还是假,遵循只有 0 NaN "" null undefined 这5个是假的其余的都是真的
!! 将其他的数据类型转换为boolean类型, 相当于 Boolean("zhufeng"); true
console.log(!!"zhufeng"); true
![] false [] 为true(除了0 NaN "" null undefined 都为true) 所以 ![]为false
var1 == var2 两个值可能不是用一个数据类型的,如果是==比较的话,会进行默认的数据类型转换
1)对象== 对象 永远不相等
2)对象== 字符串 先将对象转换为字符串,然后再进行比较
[]=="" true []转化为字符串 [].toString(); {}转化为字符串"[object object]"
3)对象==布尔类型 对象先转换为字符串(toString),然后在转化为数字(Number),布尔类型也转换为数字(true是1,false是0),最后让两个数字比较
[]==false true
4)对象==数字 对象先转化为字符串(toString),然后把字符串在转化为数字(Number)
[]==1 false
5)数字==布尔 布尔转化为数字
6)数字==字符串 字符串转化为数字
7)字符串==布尔 都转化为数字
8) null == undefined 结果是true
9) null或者undefined 和其他任何的数据类型比较都不相等
==是比较 ===也是比较 (绝对比较)