2010-10-07 18 views
6

Wenn ich "var variable = true;" in Chromkonsole I "undefined" zurück bekommen:"var variable" gibt undefined zurück?

> var variable = true; 
undefined 

Aber wenn ich laufe ohne "var" es gibt true zurück:

> variable = true; 
true 

Warum ist es Rückkehr "undefiniert" mit "var"?

Es ist verwirrend, weil ich erwartet hatte, dass es wieder wahr werden würde.

Antwort

5

Die erste ist eine Aussage, während die zweite ein Ausdruck ist. Obwohl es nicht das gleiche recht, ist es ähnlich wie die Regeln zu C: (?)

// A statement that has no value. 
int x = 5; 

// An expression... 
x = 10; 

// ...that can be passed around. 
printf("%d\n", x = 15); 
+0

Ist es gültig js-Code zu verwenden "var variable = true;" oder sollte ich "var variable; variable = true;" ausführen? –

+0

@ajsie - es ist gültig, und beide Aussagen sind gleichwertig. – Oded

+0

Ja, es ist ein gültiger Code. Sie können dies bestätigen, indem Sie nach der Ausführung der Anweisung "Variable" auswerten. –

1

Ein Stelldichein gibt den assignation Wert, aber mit var diese Rückkehr wird „verbraucht“

2

var x = y; ist eine Aussage die gibt keinen Wert zurück. In der WebKit JS-Konsole zeigt eine Anweisung, die keinen Wert zurückgibt, undefined als Ergebnis an, z.

> if(1){} 
undefined 
> ; 
undefined 
> if(1){4} // this statement returns values! 
4 

Die Zuordnung ist ein Ausdruck , die den Wert des LHS zurückgibt. Das heißt, diese Ausdruckanweisung hat einen Rückgabewert, und dieser wird angezeigt.

Verwandte Themen