reality()を呼び出すと、ロイヤルブルーを印刷したいのですが、ロイヤルが未定義になっています。私はJavaScriptの初心者です。JavaScript変数に単語を追加できません
var color = "Blue";
function reality() {
var color = "Royal " + color;
console.log(color);
}
reality();
reality()を呼び出すと、ロイヤルブルーを印刷したいのですが、ロイヤルが未定義になっています。私はJavaScriptの初心者です。JavaScript変数に単語を追加できません
var color = "Blue";
function reality() {
var color = "Royal " + color;
console.log(color);
}
reality();
私は問題が何であるかを見つける助けてください。すべての変数が
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
変数を変更することを意図している場合は、あなたは、あなたの代わりにreality
にcolor
という変数を定義してはいけませんこのように直接アクセスする必要があります。
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);
ありがとう、この非常に詳細な答えは、私はグローバル変数とローカル変数について学んでいます、そして、これは質問がどこから来るかです。 関数の現実の中に正面の色に "var"を書き込んでいない場合、それはグローバル変数になります。関数の現実の中で色変数の値を "Blue"と "Royal Blue"にします。出来ますか? 例: console.log(color);それはすぐにグローバル変数にならないだろうimondal007 @プリングロイヤルブラー – imondal007
に行くブルー と 現実を印刷しようとして () 。何が起こるかは、変数にアクセスしようとすると、JavaScriptは現在のスコープでその宣言を探しますが、そこになければ上のスコープに移動します。それはグローバルスコープに達するまで続きます。 – thefourtheye
@ imondal007あなたが心配しているのが気に入ったら、宣言文なしで 'console.log(" Royal "+ color)'を実行してください。 – thefourtheye
var color = "Blue";
function reality() {
color = "Royal " + color;
console.log(color);
}
reality();
の色のようにグローバルに定義されているので、関数内で変更することができますすることができますこれは未定義です。
その場合、ロイヤルブルーはグローバル変数の値になります。私はこれをグローバルではないリアリティ関数内でのみ使用したいとします。 – imondal007
その場合、_colorという1つのローカル変数を定義し、グローバル値を割り当てることで、青がグローバルになり、ロイヤルブルーがローカルになります。 – Raki
関数内に可変色を定義する –
すでにグローバル変数として色を定義しているので、関数内の色から色を削除してください –
重複する対象を読み取ってください。可変スコープがどのように機能するかを理解することは、JSを扱う際に重要です。 – Cerbrus