2017-05-13 4 views
0

ich einen Wert einer Variablen zugewiesen werden soll, wenn eine Bedingung wie diesedefinieren Variable innerhalb if-Anweisung in JavaScript

prüft
if (k<12){ 

var Case=4; 

} 

das Problem, wenn ich diese Variable nennen i in den Körper der Seite gedruckt werden undefined erhalten

document.write(Case); 
+0

@NenadVracar es wahr ist –

+0

Es sollte dann funktionieren https://jsfiddle.net/Lg0wyt9u/1902/ –

+0

@NenadVracar seine 'false' Anweisung .Because' k' undefiniert ist .Und 'case' auch innerhalb der definierten wenn ist true .So Sie undefined .declare die 'case' als eine globale.Und vergessen Sie nicht definieren die' k' – prasanth

Antwort

3

Grundsätzlich Ihre var statement wird mit undefined gehisst und zugeordnet.

Variablendeklarationen werden, wo immer sie vorkommen, verarbeitet, bevor ein Code ausgeführt wird. Der Gültigkeitsbereich einer mit var deklarierten Variablen ist der aktuelle Ausführungskontext, bei dem es sich entweder um die umschließende Funktion oder bei außerhalb jeder Funktion deklarierten Variablen um global handelt. Wenn Sie eine JavaScript-Variable erneut deklarieren, verliert sie ihren Wert nicht.

Reihenfolge der Ausführung:

var Case;  // hoisted, value: undefined 

if (k < 12) { 
    Case = 4; 
} 
0
var Case = 0; 
if(k<12){ 
    Case = 4; 
} 
document.write(Case); 

Sie müssen es zuerst definieren, so dass, wenn k < 12 == Falsch, es wird nicht undefiniert.

1

Sie werden undefiniert, weil Sie es nicht wirklich definiert haben. Sie definieren es, wenn die Bedingung wahr ist. Sie sollten den Code so schreiben.

var Case = null; 
var k = 0; 

if(k > 14) { 
    Case = 3; 
} 

document.write(Case); 

Ich hoffe, es war hilfreich.

Verwandte Themen