2010-12-01 11 views

cevap

10

zaten tanımlanmış ve doğru olarak değerlendirilir olup, bu foo = foo setleri, yani o hiçbir şey yapmaz.

foo tanımlanmış ancak yanlış olarak değerlendirir ise, her ne foo (false, null, 0 undefined, boş dize, NaN), ancak alert döner şey beri fooundefined olarak ayarlanır olduğunu pop-up olacaktır.

foo henüz tanımlı değilse, bir istisna atılır. (Edit: Örneğinizde, foo her zaman var foo bildirimi nedeniyle tanımlanacaktır.)

4

foo Yanlış (örneğin, sahte, sıfır veya sıfır) olarak değerlendirilirse, || operatör sonra değeri de değerlendirildi ve değeri gösterir.

alert yöntemi bir değer döndürmez, bu nedenle foo yanlış olarak değerlendirilirse tanımsız hale gelir, aksi takdirde kendi değerine atanır. foo Eğer

+0

Atanmamış mı? Bir rölesi – Hogan

+0

@ Hogan: Evet, atandı. – Guffa

+0

'alert (foo)' döndürülemez. –

3
var foo; 

if (foo) 
    foo = foo; 
else 
    foo = alert(foo); // probably undefined 
+1

@ Hogan:> * alert (foo); bir değer değil bir değerdir *. Ne? –

+0

@Crescent: nevermind - C terimi burada geçerli değildir. – Hogan

İlgili konular