前端
JavaScript类型 - 一些细节记录
1. 基础类型的包装对象
最新的ECMAScript标准中定义了7种基础类型: number
、 string
、 boolean
、 null
、 undefined
、 symbol
和 bigint
。 除了 null
和 undefined
,其他基础类型都有对应的包装对象。 并且在使用过程中,会自动进行装包和拆包。
let str = "Hello zp";
console.log(str.toUpperCase()); //这里就调用了String对象的toUpperCase方法
2. NaN的特殊性
在JavaScript中,可以用 0
除以 0
来得到 NaN
,但是 NaN
和任何值都不相等,包括它自己。 需要使用 Number.isNaN()
来检测一个值是否为 NaN
。
console.log(typeof NaN); // "number"
console.log(NaN === NaN); // false
console.log(isNaN(NaN)); // true
3. 浮点数精度问题
JavaScript使用浮点二进制表示法(IEEE 754标准)来表示数字,这可能导致一些意外的结果:
console.log(0.1 + 0.2); // 0.30000000000000004
console.log(0.1 + 0.2 === 0.3); // false
处理金融计算时,可以考虑使用库如decimal.js,或者将数字转换为整数后再进行计算。
4. Symbol的使用
Symbol
是ES6引入的新原始类型,它的主要用途是创建唯一的标识符。