在Javascript中,我可以做到
> var foo;
< undefined
> foo;
< undefined
建议在Javascript中,声明的未初始化变量始终是 undefined 。但是他们呢?或者他们可能会像C一样随机获取垃圾值吗?
MDN's var docs没有帮助。
答案 0 :(得分:2)
在javascript中,任何尚未分配值的属性都会被指定为Undefined type
。你需要分开两件事来理解它,ECMA-262 Standard有两个未定义的“事物”:
undefined value
=&gt;唯一值为未定义值的类型
undefined
=&GT; 原始值,如果尚未为变量赋值
因此,在您的情况下,变量已初始化,并且已分配 DefaultLabelFormatter
值。
javascript中的 preoteive value 定义为:
4.3.2原始值
Undefined,Null,Boolean之类型的成员, 第8条中定义的数字或字符串
注意:原始值是直接表示的基准值 最低级别的语言实现。
答案 1 :(得分:1)
他们不会获取随机垃圾值,如果没有分配值,它将保持&#34;未定义&#34;。
这样可以检查是否已分配了一个对象: 来自MDN:
function test(t) {
if (t === undefined) {
return 'Undefined value!';
}
return t;
}
var x;
console.log(test(x));
// expected output: "Undefined value!
尚未赋值的变量是undefined类型。一个 如果变量是,方法或语句也返回undefined 被评估的没有指定的值。函数返回 如果未返回值,则为undefined。