1.建议在声明变量的时候同时进行初始化。这样typeof 返回"undefined"时,就会知道这个变量还未被声明,而不是声明了没有初始化。
2.在定义将来要保存对象值的变量时,建议用null来初始化,不用使用其他值。这样只要在检查这个值是不是等于null 就可以知道这个变量是否在后来被重新赋予了一个对象的引用,比如:
let call = null;
console.log(typeof call);//"object"
if(call != null){
//call是一个对象的引用
}
3.undefined 值是由 null 值派生而来的,因此 ECMA-262 将它们定义为表面上相等,如下面的例子所示:
cosole.log(null == undefined); //true
4.不同类型与布尔值之间的转换规则
数据类型 | 转换为 true 的值 | 转换为 false 的值 |
---|---|---|
Boolean | true | false |
String | 非空字符串 | “” |
Number | 非0数值(包括无穷值) | 0、NaN |
Object | 任意对象 | null |
Undefined | N/A(不存在) | undefined |
5.因为存储浮点值使用的内存空间是存储整数值的两倍,所以 ECMAScript 总是想方设法把值转换为整数。
对于非常大或非常小的数值,浮点值可以用科学记数法来表示。科学记数法用于表示一个应该乘以
10 的给定次幂的数值。ECMAScript 中科学记数法的格式要求是一个数值(整数或浮点数)后跟一个大写或小写的字母 e,再加上一个要乘的 10 的多少次幂。比如:
let floatNum = 3.125e7; // 等于 31250000