You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
## Undefined
|
|
|
|
|
|
|
|
- underfined 实际上是一个变量而并非是一个关键字,这是 JavaScript 的一个设计失误,为了避免无形中被修改,建议使用 void 0
|
|
|
|
- 在 ES5 后,underfined 在全局作用域中被设置为 read-only,但是在局部作用域中,还是会被修改
|
|
|
|
|
|
|
|
## String
|
|
|
|
|
|
|
|
- JavaScript 中的字符串是永远无法变更的,一旦字符被构建出来,无法用任何方式改变字符串的内容
|
|
|
|
- Example:
|
|
|
|
```javascript
|
|
|
|
let testString = "Hello";
|
|
|
|
testString[0] = "X";
|
|
|
|
console.log(testString);
|
|
|
|
```
|
|
|
|
|
|
|
|
## Number
|
|
|
|
|
|
|
|
- JavaScript 中的 Number 类型有 18437736874454810627(即 2^64-2^53+3) 个值
|
|
|
|
- NaN其实是 2^53-2 个特殊数字的合集,NaN并不是一个数,而是一堆数据合集,所以NaN ! == NaN
|
|
|
|
- 在 JavaScript 中 `0.1 + 0.2 !== 0.3` ,这是因为对于硬件系统来说,由高低电平表示1和0,这样我们使用的高级语言都要用二进制进行编码,不同的进制数在转换的时候都会有精度的问题,所以相加之后因为一些误差就导致值不相等
|
|
|
|
- 在比较浮点数的时候,不应该使用等于或者全等,应该使用 JavaScript 提供的最小精度值 : `(Math.abs(0.1 + 0.2 - 0.3) <= Number.EPSILON)`
|