主要参考
- 《JavaScript高级程序设计》
ECMAScript中的六种数据类型
- ECMAScript中包含六种数据类型:
- Undefined
- Null
- Boolean
- Number
- String
- Object
- 其中,Undefined类型和Null类型是唯二的仅有一个值的数据类型
运算符typeof
- 通过
typeof
运算符可能返回如下六种可能的字符串:"undefined"
"boolean"
"string"
"number"
"object"
"function"
- 与ECMAScript中定义的六种数据类型比较,可发现如下差异点:
typeof null
并不会返回"null"
。这是因为,特殊值null
被认为是一个空的对象引用,因此会返回"object"
;- 返回值中出现了
"function"
,而函数并不是ECMAScript中定义的一种数据类型。实质上,在ECMAScript中函数也是对象,但函数确实有其特殊属性,因此区分函数和其他对象是有必要的。
Undefined类型定义及其最佳实践
- Undefined类型中的唯一值
undefined
,表示未初始化的变量; - 注意:区分未初始化的变量与尚未定义的变量:
var message; // var age; alert(message); // "undefined" alert(age); // ReferenceError: age is not defined
- 但是,使用typeof操作符时,会有如下返回:
var message; // var age; alert(typeof message); // "undefined" alert(typeof age); // "undefined"
- 但是,使用typeof操作符时,会有如下返回:
- 综上,最佳实践:
每次定义变量时都进行显示初始化,那么当
typeof
操作符返回"undefined"
时,只能说明该变量尚未被声明。
Null类型定义及其最佳实践
null
与undefined
的关系:alert(null == undefined); // true
因为,实际上
undefined
是派生自null
,但之所以区分是强调其各自的特殊指向。- 上面说过,
null
的特殊意义在于表示空的对象引用(空对象指针),因此建议如下最佳实践:当一个意在保存对象的变量尚未实际真正保存对象时(刚声明且暂未赋值),都应当明确地让该变量保存
null
值:- 通过
null
与undefined
来区分暂未赋值而实际意义不同的对象; - 仅需通过检查
null
便可判定相应变量是否已保存了一个对象的引用。
- 通过
JavaScript - undefined与null的区分及最佳实践
原文地址:https://www.cnblogs.com/JustBeZero/p/9651738.html
时间: 2024-10-09 21:25:49