2010-12-01 275 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 
相關問題