2016-10-20 7 views
0

reality()を呼び出すと、ロイヤルブルーを印刷したいのですが、ロイヤルが未定義になっています。私はJavaScriptの初心者です。JavaScript変数に単語を追加できません

var color = "Blue"; 

function reality() { 
    var color = "Royal " + color; 
    console.log(color); 
} 
reality(); 
+0

関数内に可変色を定義する –

+0

すでにグローバル変数として色を定義しているので、関数内の色から色を削除してください –

+0

重複する対象を読み取ってください。可変スコープがどのように機能するかを理解することは、JSを扱う際に重要です。 – Cerbrus

答えて

4

私は問題が何であるかを見つける助けてください。すべての変数がvarで宣言されたJavaScriptでは、

明示的に何かが割り当てられている場合を除き、undefinedのデフォルト値を持つことになります。あなたのケースでは

var color = "Royal " + color; 

あなたは変数color自体を定義するcolorを使用しています。だから、

"Royal " + color 

結果はロイヤルが未定義 `である理由である

"Royal " + undefined 

になります。


基本的に、可変colorは、その機能の範囲外で宣言された変数は、reality影内で宣言します。したがって、別の名前を選択する必要があります。

var color = "Blue"; 

function reality() { 
    var realityColor = "Royal " + color; 
    console.log(realityColor); 
} 
reality(); 

印刷します

Royal Blue 

注:あなたが実際に外で宣言さcolor変数を変更することを意図している場合は、あなたは、あなたの代わりにrealitycolorという変数を定義してはいけませんこのように直接アクセスする必要があります。

var color = "Blue"; 

function reality() { 
    color = "Royal " + color; 
    console.log(color); 
} 
reality(); 

しかし、この関数は何も返しません。それを改善するために、あなたが再び定義している場合しかし、それはnullを取り、値を返し、それを変数に割り当て、この

var color = "Blue"; 

function reality() { 
    return "Royal " + color; 
} 

color = reality(); 
console.log(color); 
+0

ありがとう、この非常に詳細な答えは、私はグローバル変数とローカル変数について学んでいます、そして、これは質問がどこから来るかです。 関数の現実の中に正面の色に "var"を書き込んでいない場合、それはグローバル変数になります。関数の現実の中で色変数の値を "Blue"と "Royal Blue"にします。出来ますか? 例: console.log(color);それはすぐにグローバル変数にならないだろうimondal007 @プリングロイヤルブラー – imondal007

+0

に行くブルー と 現実を印刷しようとして () 。何が起こるかは、変数にアクセスしようとすると、JavaScriptは現在のスコープでその宣言を探しますが、そこになければ上のスコープに移動します。それはグローバルスコープに達するまで続きます。 – thefourtheye

+0

@ imondal007あなたが心配しているのが気に入ったら、宣言文なしで 'console.log(" Royal "+ color)'を実行してください。 – thefourtheye

1
var color = "Blue"; 
function reality() { 
    color = "Royal " + color; 
    console.log(color); 
} 
reality(); 

の色のようにグローバルに定義されているので、関数内で変更することができますすることができますこれは未定義です。

+0

その場合、ロイヤルブルーはグローバル変数の値になります。私はこれをグローバルではないリアリティ関数内でのみ使用したいとします。 – imondal007

+0

その場合、_colorという1つのローカル変数を定義し、グローバル値を割り当てることで、青がグローバルになり、ロイヤルブルーがローカルになります。 – Raki

関連する問題