1.undefined,指示变量尚未赋值。在高级程序设计语言设计应用程序时,用于指示变量尚未用赋值操作进行赋值(常量未定义)。
2.JavaScript语言中特殊的原始数据类型Undefined,该数据类型只有一个值“undefined”,与另一个特殊原始数据类型NULL在不同的场景下有相似的行为。
(上文中“Undefined”指数据类型,“undefined”指值;类似的“NULL”指数据类型,“null”指值)
- 中文名
- 未定义
- 外文名
- undefined(程序设计也作外语代码)
- 解 释
- 1.一个特殊值;2.也可指JavaScript语言中特殊的原始数据类型Undefined
简介
播报编辑
1.表示变量或者常量未定义,常在报错中出现。
2.表示JavaScript语言中的特殊值——“未定义(undefined)”,通常用于指示变量尚未赋值。对未定义值的引用返回特殊值“未定义”。类型定义代码 “typeof()” 返回未定义字符串。当将“未定义”转换为字符串时,它转换为空字符串。
“未定义”值与特殊值null(空)相似。事实上,当使用相等运算符对null(空)和“未定义”进行比较时,它们的比较结果为相等。
以下一些情况会出现undefined值:
(1)声明了一个变量,但没有赋值;
(2)访问对象上不存在的属性;
(3)函数定义了形参,但没有传递实参;
(4)使用void 对表达式求值;对于JavaScript语言,标准ECMAScript [4]中规定 void 操作符对任何表达式求值都返回 undefined。
示例
播报编辑
在这个示例中,变量 x 尚未声明,所以其值为未定义。在代码的第一部分,使用相等运算符(==)比较 x 的值与值“未定义”,并将相应的结果发送到输出窗口。在代码的第二部分,使用相等运算符比较值null(空)与“未定义”。
/*
变量x“未声明”。
*/
trace("x的值为"+x);
if(x==undefined)/*如果变量X为未定义*/{
trace("x是未定义的。");
}else/*否则*/{
trace("x不是未定义的。");
}
trace("类型定义(x)为"+类型定义(x));
if(null==undefined)/*如果空等于未定义*/{
trace("空null和未定义undefined都相等");
}else/*否则*/{
trace("空null和未定义undefined都不相等");
}
下面的结果显示在输出窗口中:
x的值是X是未定义
类型定义(x)是未定义
空null和未定义都相等
null
播报编辑
特殊值的对比仅存在于JavaScript语言中。
null的类型是一个对象,用来表示一个变量没有任何数值,而是指变量没有定义任何值 [1]。
在JavaScript中,关键字null表示空值的意思,它表示对象为空,或者变量没有引用任何对象。如果当一个变量的值为null,则表明它的值不是有效的对象、数组、数值、字符串和布尔型等。如果使用alert(typeof(null))来检测null值的类型,则返回object,说明它是一个对象类型。
而与null不同,它表示无值的意思,并且具有自己的类型,它区别任何对象、数组、数值、字符串和布尔型。alert(typeof())的返回值为 [2]。
空值数据类型的值只有一个,即null。就是“什么都没有”的意思。因此该数据类型又被称为NULL型。空值数据类型在有些情况下是非常有用的。编写程序时可以通过让程序判断其是否为空来实现某些功能,比如判断选择的内容如果为空则执行 trace(“noselection”) 等。具体如下面语句所述:
??//判断选择内容是否为空??
??if(Selection.getFocus()==null)
??{??????????????????????????????
????trace(“no?selection”);????//如果为空则输出“no?selection”
??}???
以下一些情况会出现空值。
(1)变量已经定义。但是还没有接收到。
(2)变量的值已经被清空。不再包含值。
(3)作为函数的返回值。但函数没有可以返回的值。
(4)作为函数的一个参数。但该参数已经被省略。
未定义数据类型的值也只有一个。那就是Undefined。因此也被称为Undefined型。它主要用于尚未分配值的变量。使用未定义型变量可以检查自己是否已经定义某个变量。具体如下面语句所述 [3]。
if(x==undefined)
{???????????????????????//判断变量X是否未定义
????trace(“未定义”);????//如果未定义则输出“未定义”
????var?X;??????????????//定义X变量
}