2016-10-14 13 views
0

javascript変数を定義しましたが、定義されていません。JavaScript変数は条件外では未定義です

variable = ""; 

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

ここで、変数は未定義を返します。私がif条件の中に警告を残しておくと、私は値を得ることができますが、if条件の外に警告を保持すれば動作しません。 VARを使用して

+0

var variable = '""; –

+0

宣言var variable = ""; – Ram

+0

あなたはそれにvarを追加することができませんでした。あなたはmyStringを正しく定義しました... varを追加してみてください。 – Geeky

答えて

0

はそれを行います。

var variable; 
0

あなたの変数を宣言して定義する必要があります。

var variable = ""; 

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

alert(variable); 
+0

すべてのコードが同じスコープにあるので、 'var'は不要です。 –

+3

^グローバル変数の作成を避けるには、変数に 'var'(または他の宣言キーワード)を指定してください。 –

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

これはYesとアラートが表示されます。

は、だからあなたの場合にはmyString.length;はおそらく未定義

+0

しかし、文字列に問題がないことを意味するif条件の中に警告すると、私は声を見ることができます。 – SRM

+0

if条件の中でどの値を見ることができますか?.lengthの値は?それは何ですか? –

0

であるあなたは、文字列MyStringの初期化が欠けていますか?次

enter image description here

+0

いいえ、同じ方法で文字列を初期化しました。私は条件内の値を見ることができます – SRM

+0

私たちはjsfiddleまたは実行可能なコードビンを共有します –

+0

あなたの状態が有効でないか、あなたのmystring変数が長さのプロパティを持たないかもしれません –

1

ルックは、あなたのmyStringlengthというプロパティを持っていないので、あなたはundefinedを得ています。 通常、String,arrayにはlengthのプロパティがありますが、オブジェクトにはそのプロパティがありません。

あなたは間違ったプロパティを呼び出すか、誤ったデータ型でそれを呼び出すか、あなたは1を自分で定義する必要がされている次のいずれかの変数が関数内で未定義でない場合、それはまだに等しいので、P

+0

それは私が言ったことです! –

-1

、それはです初期値、 ""(Empty String)。

私が賭けているのは、実際にはmyStringは文字列ではなく数字です。次の方法を試して、まだ問題があるかどうかを確認してください。

variable = ""; 

if(somecondition){ 
     variable=myString.toString().length; 
} 
alert(variable); 
関連する問題