84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
1. jsの実行順序が分かりません。以下のコードを実行してください。アラート開始時はaが宣言されていません。エラーを直接報告すべきではないでしょうか?この関数が最初に表示され、次に 10、次に 3 が表示され、最後にエラーが報告されるのはなぜですか?最初からエラーを報告すべきではないでしょうか?
クラスメイトに聞いてみたところ、その理由が分かりましたまず、概念を理解する必要があります1. js では、変数宣言と関数宣言が事前に行われており、変数宣言よりも関数宣言の方が優れています。したがって、 a を宣言する前のalert(a) はエラーを報告しません。また、最初のアラートでは、変数 a ではなく関数 a が表示されます。2. 2 番目のアラートは、言うまでもなく、関数 a を実行するだけです。var a=3;。所以a变成了3。4.最后报错是因为,执行到a();a进行了两次赋值,第一次是var a=3;,第二次是a=6;3. 3 番目のアラート。ここを実行する前にvar a=3;が実行されたため、結果は 3 です。したがって、a は 3 になります。
var a=3;
a=6;
最初の出力ではfunction是因为作用域提升(hoisting)。第二个输出 10 是第二行a()的输出。第三个输出 3 是倒数第三行alert(a)的输出。最后一个报错是来自最后一行a()。因为这时候a被重新赋值为数字6,已经不是function了。执行a()もちろんエラーが報告されます。
function
a()
alert(a)
a
6
変数宣言は次のルールに注意してください。
http://zonxin.github.io/post/...
クラスメイトに聞いてみたところ、その理由が分かりました
4. a(); a が 2 回割り当てられたため、最後のエラーが報告されました。1 回目はまず、概念を理解する必要があります
1. js では、変数宣言と関数宣言が事前に行われており、変数宣言よりも関数宣言の方が優れています。したがって、 a を宣言する前のalert(a) はエラーを報告しません。また、最初のアラートでは、変数 a ではなく関数 a が表示されます。
2. 2 番目のアラートは、言うまでもなく、関数 a を実行するだけです。
var a=3;
。所以a变成了3。4.最后报错是因为,执行到a();a进行了两次赋值,第一次是
var a=3;
,第二次是a=6;
3. 3 番目のアラート。ここを実行する前にvar a=3;
が実行されたため、結果は 3 です。したがって、a は 3 になります。var a=3;
、2 回目はa=6;
とありますが、どう見ても a は関数ではないのでエラーが報告されます。最初の出力では
function
是因为作用域提升(hoisting)。第二个输出 10 是第二行
a()
的输出。第三个输出 3 是倒数第三行
alert(a)
的输出。最后一个报错是来自最后一行
a()
。因为这时候a
被重新赋值为数字6
,已经不是function
了。执行a()
もちろんエラーが報告されます。変数宣言は次のルールに注意してください。
http://zonxin.github.io/post/...