前端

JavaScript类型 - 一些细节记录

1. 基础类型的包装对象

最新的ECMAScript标准中定义了7种基础类型: numberstringbooleannullundefinedsymbolbigint 除了 nullundefined ,其他基础类型都有对应的包装对象。 并且在使用过程中,会自动进行装包和拆包。

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引入的新原始类型,它的主要用途是创建唯一的标识符。

Previous
require 的理解