2016-10-14 1 views
0

Ich habe eine Javascript-Variable definiert, aber es gibt undefined zurück.JavaScript-Variable ist undefiniert außerhalb, wenn Bedingung

variable = ""; 

if(somecondition){ 
     variable=myString.length; 
} 
alert(variable); 

hier Variable zurückgibt undefiniert. Wenn ich die Warnung innerhalb der if-Bedingung behalte, kann ich den Wert abrufen, funktioniert aber nicht, wenn ich die Warnung außerhalb der if-Bedingung halte.

+0

var variable = '""; –

+0

deklariere var variable = ""; – Ram

+0

Sie haben es versäumt, var hinzuzufügen..haben Sie myString korrekt definiert ... versuchen Sie, var hinzuzufügen und überprüfen Sie – Geeky

Antwort

0

Mit var wird es tun:

var variable; 
0

Sie benötigen eine Variable zu deklarieren und zu definieren.

var variable = ""; 

if(somecondition) { 
     variable = myString.length; 
} 

alert(variable); 
+0

Nr. 'Var' ist nicht notwendig, da der gesamte Code im GLEICHEN Bereich ist. –

+3

^obwohl Sie Ihre Variablen definitiv mit 'var' (oder einem anderen Deklarationsschlüsselwort) deklarieren sollten, um Globals zu vermeiden. –

0
var variable = ''; 
if (true) { 
    variable = 'Yes' 
} 
alert(variable); 

Dies wird Alarm als Ja zeigen.

So in Ihrem Fall myString.length; ist wahrscheinlich

+0

Aber ich kann den Vlue sehen, wenn ich innerhalb der if-Bedingung warne, was bedeutet, dass es kein Problem mit der Schnur gibt. – SRM

+0

Welchen Wert können Sie in der if-Bedingung sehen?Der .length Wert? Was ist es? –

0

sind nicht definiert Sie die Initialisierung von mystring fehlt?

Blick auf die folgenden

enter image description here

+0

Nein. Ich habe die Zeichenfolge auf die gleiche Weise initialisiert. und ich schlenderen den Wert innerhalb der Bedingung – SRM

+0

teilen Sie uns Ihre jsfiddle oder runnable Code ist, um zu sehen –

+0

können Ihr Zustand nicht gültig ist oder Ihre mystring Variable nicht Länge Eigenschaft hat –

1

Ihre myString nicht eine Eigenschaft length genannt haben und somit bekommen Sie undefined. Normalerweise String, array hat length Eigenschaft, während Objekte nicht haben.

Entweder sind Sie ein falsches Objekt aufrufen oder auf einem falschen Datentyp aufrufen oder Sie haben selbst eine Beurteilung zu definieren: P

+0

Das ist, was ich gesagt hat! –

-1

Wenn die Variable nicht in der Funktion nicht definiert ist, dann ist es, weil es immer noch gleich der ist Anfangswert, "" (leere Zeichenfolge).

Worauf ich wette, ist myString tatsächlich eine Zahl und keine Zeichenfolge. Versuchen Sie Folgendes und prüfen Sie, ob weiterhin ein Problem vorliegt:

variable = ""; 

if(somecondition){ 
     variable=myString.toString().length; 
} 
alert(variable);