2010-12-01 142 views

回答

10

如果foo已经定义并计算为真,它集foo = foo,即它什么都不做。

如果foo定义,但计算结果为假,它会弹出任何foo是(falsenullundefined,空字符串,0,NAN),但由于alert回报什么,foo将被设置为undefined。如果foo尚未定义,则会抛出异常。 (编辑:在您的示例中,foo将始终由于var foo声明而定义。)

4

foo如果计算结果为假(例如假,空或零),则操作者||后的值还评价,并显示该值。

alert方法不会返回一个值,因此如果foo评估为false,则foo将变为undefined,否则它将被分配它自己的值。

+0

是不是分配了它?这是一个右值 – Hogan 2010-12-01 19:52:22

+0

@霍根:是的,它被分配了。 – Guffa 2010-12-01 19:56:55

3
var foo; 

if (foo) 
    foo = foo; 
else 
    foo = alert(foo); // probably undefined 
相关问题