JavaScript では関数宣言が変数宣言より優先されます。

高洛峰
リリース: 2016-11-26 09:16:21
オリジナル
1121 人が閲覧しました

同じ識別子の場合は、var と function で宣言します。結局何なんですか?
var a; // 変数を宣言、識別子は
function a() { // 関数を宣言、識別子も a
}
alert(typeof a);
は「関数」、つまり関数を表示しますvar よりも優先度が高くなります。
これが、コードが順番に実行される、つまり、後で実行される関数によって a が上書きされる理由であると考える人もいます。わかりました、交換してください。
function a() {
}
var a;
alert(typeof a);

結果には、「未定義」ではなく「関数」が表示されます。つまり、関数宣言は変数宣言よりも優先されます。
コードを少し修正し、宣言時に同時に値を代入します。
function a() {
}
var a = 1; // ここで注意してください
alert(typeof a);

このとき、「function」は表示されませんが、これは
function a( ) {
}
var a;
a = 1; // ここで、
alert(typeof a);
は、「var a = 1」が 2 つのステップに分割されることを意味することに注意してください。 a は再割り当てされており、当然、それが最後の値になります。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート