文字列を関数にパラメータとして渡すと、undefined
が返されます。何故ですか?関数パラメータとして渡される文字列が定義されていません
let a = 'b';
let test = (a) => console.log(a);
test(); // undefined
文字列を関数にパラメータとして渡すと、undefined
が返されます。何故ですか?関数パラメータとして渡される文字列が定義されていません
let a = 'b';
let test = (a) => console.log(a);
test(); // undefined
test();
に電話すると、(
と)
の間に何も入れていないので、パラメータを渡すことはありません。
あなたは((a) =>
で)test
を定義したときに、同じ名前を持つマスクグローバル変数をローカル変数a
を作成しました。
a
を渡すには実際にそれを渡す必要があります:test(a)
。
なぜですか?
引数を渡さないためです。次のことを試してみてください。
test(a);
次の定義:
let test = (a) => console.log(a);
には、次のようなものです:
function test(a){
console.log(a);
}
ですから、test
を呼び出すときに、a
の値は次のようになり任意の引数を渡すことなく、未定義。
パラメータリストの 'a'は、より高いスコープの' let a = 'b''を陰にします。スコープがリンクされた複製でJavaScriptでどのように機能するのかを読んでください。 –