2

このJSを検討してください(これは最後に実行され、bodyエラーを引き起こします)

(function(){
    "use strict";

    var div = document.getElementById("hook"),
        ul = div.firstElementChild,
        last_li = ul.lastElementChild;

    alert(div) // alerts "Uncaught TypeError: Cannot read property 'children' of undefined"  

})();

次に、コンマを削除してvarキーワードを追加しましたが、同様のエラーを受け取りました ( HTML ではありません):

(function(){
    "use strict";

    var div = document.getElementById("hook");
    var ul = div.firstElementChild;
    var last_li = ul.lastElementChild;

    alert(div) // alerts "Uncaught TypeError: Cannot read property 'lastElementChild' of undefined " 

})();

それが機能する唯一の方法は、割り当てalert()の直後にステートメントを追加することです。divこれは変数巻き上げに関連していると思いますが、確実に知るには十分な経験がありません。

誰かが変数巻き上げの簡単な概要と、ここで何が起こっているのか教えてもらえますか? ありがとう!

4

1 に答える 1