JS类型转换规则
原始值转化为原始值
对象转化为原始值
1、原始值转化为原始值
<script type="text/javascript">
console.log({}==!{}); //false
console.log([]==![]); //true
console.log(Number(undefined)); //NaN
console.log(Number(null)); //0
//undefined 没有包装类
console.log(Boolean(undefined)); //false
console.log(Boolean(null)); //false
//Infinity 虽然无法表示为具体数字,但可以理解为一个数字
console.log(Number(Infinity)); //Infinity
console.log(Boolean(Infinity)); //true
// ‘’不等于‘ ’,加空格为表示空格的字符串,只有引号为虚值
console.log(Boolean('')); //false
console.log(Boolean(' ')); //true
</script>
falsey(虚值)
- undefined
- null
- 0
- NaN
- false
- ''
- (+0,-0)
Boolean类型转换除虚值外都为true
console.log(Boolean(undefined)); //false
console.log(Boolean(null)); //false
console.log(Boolean(0)); //false
console.log(Boolean(NaN)); //false
console.log(Boolean(false)); //false
console.log(Boolean('')); //false
console.log(Boolean(0)); //false
console.log(Boolean(+0)); //false
console.log(Boolean(-0)); //false