Undefined类型与Null类型
来源:互联网 发布:wifi网络监控软件 编辑:程序博客网 时间:2024/06/05 10:40
Undefined类型
Undefined类型只有一个值,即特殊的undefined。在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined,例如:
var message;alert(message == undefined); //true
上例中声明了一个变量,但未对其进行初始化。比较这个变量与undefined字面量,结果表明他们是相等的。上例与下面的例子是等价的:
var message = undefined;alert(message == undefined); //true
这个例子使用undefined值显示初始化了变量message。但没有必要这要做,因为未经初始化的值默认就会取到undefined值。
不过,包含undefined值的变量与尚未定义的变量还是不一样的。
var message; //默认message取得undefined值//未声明的变量//var age;alert(message); //"undefined"alert(age); //错误
运行以上代码,第一个警告框会显示变量message的值,即“undefined”。而第二个警告框—由于传递的给alert()函数的是尚未声明的变量age—则会导致错误。对于尚未声明过的变量,只能窒息感一项操作,即使用typeof操作符检测其数据类型。
对初始化的变量执行typeof操作符会返回undefined值,而对未声明的变量执行typeof操作符同样也会返回undefined值。
var message;//未声明的变量//var age; alert(typeof message); //"undefined"alert(typeof age); //"undefined"
结果表明,对未初始化和未声明的变量执行typeof操作符都返回了undefined值。
即使未初始化的变量会自动赋予undefined值,但显示地初始化变量依旧是明智的选择。如果能做到这一点,那么当typeof操作符返回undefined值时,就可以知道被检测的变量是还没有声明还是没有初始化。
Null类型
Null类型是第二个只有一个值的数据类型,这个特殊值是null。从逻辑角度上看,null表示一个空对象指针,而这也是使用typeof操作符检测null值时会返回Object的原因。
var message = null;alert(typeof message); //"object
如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null而不是其他值。这样一来,只要直接检查null值就可以知道相应的变量是否已经保存了一个对象的引用。
if(message != null){ //对message对象执行某些操作}
实际上,undefined值是派生自null值的,因此ECMA-262规定对它们的相等性测试要返回true.
console.log(undefined == null, undefined === null);
执行结果为true false。
null是Object类型的,而undefined是undefined类型的,操作符“==”比较的值是否相等,操作符“===”不仅要比较值是否相等,还要比较类型是否相等。
(完)
- Undefined类型与Null类型
- Undefined类型与Null类型
- undefined类型 null类型 区别
- Undefined,Null类型
- Null和Undefined类型
- JavaScript 中 Undefined 和 Null 类型
- JavaScript Undefined,Null类型和NaN值
- JS中判断undefined和null类型
- javascript:数值类型null和undefined
- js判断undefined类型,undefined,null,NaN的区别
- js判断undefined类型,undefined,null,NaN的区别
- js判断undefined类型,undefined,null,NaN的区别
- js判断undefined类型,undefined,null,NaN的区别
- js判断undefined类型,undefined,null,NaN的区别
- js判断undefined类型,undefined,null,NaN的区别
- js判断undefined类型,undefined,null,NaN的区别
- 【转】js判断undefined类型,undefined,null,NaN的区别
- js判断undefined类型,undefined,null, 的区别详细解析
- 在win10下安装terminator使用bash
- liunx shell基础四之运算
- 如何成为一名数据科学家?
- 数据库用seq语句从创建数据库到给表添加约束条件
- js语法笔记4---canvas
- Undefined类型与Null类型
- Week Training: 392 Is Subsequence
- 图的遍历(深度,广度)
- leetcode-1. Two Sum
- NOJ_1007
- SpringMVC与Struts2的区别与总结
- 解决android studio引用远程仓库下载慢(JCenter下载慢)
- 令人蛋疼的错误提示 0xcdcdcdcd ,0xdddddddd ,0xfeeefeee ,0xcccccccc ,0xabababab
- Gym