Birisi bunun ne yaptığını açıklayabilir mi?var foo = foo || uyarı (foo);
var foo = foo || alert(foo);
Birisi bunun ne yaptığını açıklayabilir mi?var foo = foo || uyarı (foo);
var foo = foo || alert(foo);
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 foo
undefined
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.)
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
var foo;
if (foo)
foo = foo;
else
foo = alert(foo); // probably undefined
@ Hogan:> * alert (foo); bir değer değil bir değerdir *. Ne? –
@Crescent: nevermind - C terimi burada geçerli değildir. – Hogan
Atanmamış mı? Bir rölesi – Hogan
@ Hogan: Evet, atandı. – Guffa
'alert (foo)' döndürülemez. –