null和undefined区别
- null和undefined都是基本数据类型,且都只有一个值,就是null和undefined本身
- undefined代表的含义是未定义,null代表的含义是空对象,变量声明了还没定义的时候会返回undefined,null主要用于赋值给一些可能会返回对象的变量,作为初始化
- undefined在JavaScript中不是一个保留字,但是不要用undefined来作为一个变量名
- typeof null会返回"object",这是历史遗留问题,null===Object会返回false
如何获取安全的undefined值
- 因为undefined是一个标识符,所以可以被当作变量来使用和赋值,但是这样会影响undefined的正常判断
- 表达式viod__没有返回值,因此返回结果是undefined,void并不改变表达式的结果,只是让表达式不返回值,因此可以用void 0来获得undefined
如何判断一个对象是空对象
- 使用JSON自带的stringify方法
if(JSON.stringify(obj) === '{}'){
console.log("obj是空对象")
}
- 使用ES6新增的方法Object.keys()
if(Object.keys(obj).length <= 0) {
console.log("obj是空对象")
}
BigInt的提案
- JavaScript中Number.MAX_SAFE_INTEGER表示最大安全数字,计算结果是9007199254740991,即在这个数范围内不会出现精度丢失(小数除外),但是一旦超过这个范围,js就会出现计算不准确的情况,这在大数计算的时候不得不依赖于第三方库进行解决,因此官方提出了BigInt来解决该问题
----------------------------------------------------------------------------------------每日一题:2024.4.24