javascript里面一般不能使用未定义的值,但是下面几种情况除外:
1. 赋值语句中:
a=9;
alert(a) //9
赋值语句中需要赋值的变量没定义会先定义,再赋值。另外从 a=b=c=8 不报错可以看出赋值语句是从右向左执行的。
2. for in语句中:
for(key in {name:'goofy'}){
alert(key) //"name"
}
alert(key) //"name"
for in语句中in左边的变量如果没定义也会先定义
3. typeof运算符后:
alert(typeof a) //'undefined'
alert(a) //Uncaught ReferenceError: a is not defined
typeof 运算符可以跟未定义的值,但是不会去主动定义它
4. 对象属性:
var o={name:'goofy'}
alert(o.name) // 'goofy'
o[age]=24; // Uncaught ReferenceError: age is not defined
alert(o.age)
在定义对象属性的时候如果是json直接量的形式可以使用没定义的值, 但是如果用下标的形式就会报错
5. function的参数:
function fn(a,b){
alert(a) //4
alert(b) //'undefined'
}
fn(4)
函数执行的时候会主动定义参数,所以在函数体内可以直接使用函数的参数,即时方法调用的时候这个参数并没有传递也不会报错
本文探讨了JavaScript中未定义值在不同上下文中的使用情况,包括赋值语句、for...in循环、typeof运算符、对象属性及函数参数等五种特殊情况,并解析了这些情况下的行为差异。
2198

被折叠的 条评论
为什么被折叠?



