变量计算的坑

121 阅读1分钟

变量计算的坑--(类型转换)

拼接字符串

console.log(10 + 1);    //11
console.log('10' + 1);  //101 数字1 => 字符串'1'
console.log(true + 1);  //2  布尔值true=>数字型1
console.log(true + '1'); //true1 布尔值true=>字符串'true'

== 问题

"=="和"===" 的比较规则

==

  1. 先检查两个操作数的数据类型是否相同
  2. 如果相同,则比较两个数是否相等
  3. 如果不同,则先将两个数转换为相同数据类型,再进行比较

===

  1. 先检查两个操作数的数据类型是否相同
  2. 如果相同,则比较两个数是否相等
  3. 如果不同,返回 false
console.log(10 == '10') //true
console.log(0 == '');  //true
console.log(0 == false);//true
console.log('' == false);//true
console.log(null == undefined);//true
console.log(NaN == NaN); //false
console.log(null == false);//⭐true
//实际开发中用到==的情况
const obj = { a: 1 }
//因为null==undefined,这样就可简写obj.b==null||obj.b==undefined
if (obj.b == null) console.log(1) //1