TypeScript/JavaScript ?? 遇到的坑
null undefined NaN 的区别
- null
null
表示缺少的标识,指示变量未指向任何对象。把null
作为尚未创建的对象更好理解。在API
中,null
常在返回类型应是一个对象,但没有关联的值的地方使用。
- undefined
undefined
是全局对象的一个属性。它是全局作用域的一个变量。undefined
的最初值就是原始数据类型undefined
。一个函数如果没有使用return
语句指定返回值,就会返回一个undefined
值。
- NaN
NaN
是一个全局对象的属性。编码中很少直接使用到NaN
。通常都是在计算失败时,作为Math
的某个方法的返回值出现的或者尝试将一个字符串解析成数字但失败了的时候。
??的坑
TypeScript
使用??
时容易忽略的点
1 | let a = undefined; |
NaN 不能用??来直接赋值。