当前位置:主页 > 网站优化 >

数据类型之undefined

作者: 奕星SEO 分类: 网站优化 发布时间: 2019-08-15 16:16 内容来源:网络整理阅读量:

undefined类型只有一个值,即特殊的undefined。在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined,例如:

var message; alert(message == undefined); //ture

这个例子只声明了变量message,但未对其进行初始化。比较这个变量与undefined字面量,结果表明它们是相等的。这个例子与下面的例子是是等价的:

var message = undefined; alert(message == undefined); // true

这个例子使用undefined值显示初始化了变量message。但我们没有必要这么做因为未经初始化的值默认就会取得undefined值。

一般而言,不存在需要显示地把一个变量设置为undefined值的情况。字面值undefined的主要目的是用于比较,而ECMA-262第三版之前的版本中并没有规定这个值。第三版引入这个值是为了正式区分空对象与未经初始化的变量。

不过,包含undefined值的变量与尚未定义的变量还是不一样的

var message; //这个变量声明之后默认取得了undefined值 //下面这个变量并没有声明 //var age alert(message);//"undefined" alert(age);//错误

运行以上代码,第一个警告框会显示变量message的值,即“undefined”。而第二个警告框由于传递给alert()函数的是尚未声明的变量age,则会导致一个错误。对于尚未声明过的变量,只能执行一项操作,即是用typeof操作符检测其数据类型(对未经声明的变量调用delete不会导致错误,但是这样做没有实际意义,而且在严格模式下确实会导致错误)。

对未经初始化的变量执行typeof操作符会返回undefined值,而对为声明的变量执行typeof是也会返回undefined值。

var message;//这个变量声明以后默认取得了undefined值 //下面这个变量并没有声明 //var age; alert(message);//"undefined" alert(age);//"undefined"

通过结果可以看出,对未经初始化和未声明的变量执行typeof操作符都会返回undefined值。这个结果有其逻辑上的合理性。因为虽然这两种变量从技术角度来讲有本质区别,但是实际上无论对于哪种变量也不可能执行真正的操作。

未初始化的变量会被自动赋予undefined值,那么当typeof操作符返回undefined值时,我们就知道被检测的变量还没有被声明,而不是尚未初始化。


本文链接地址:http://www.seohuizhou.com/webyouhua/1376.html
上一篇:<<数据类型之NULL
下一篇:检测变量的数据类型>>