この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
これは変数巻き上げに関連していると思いますが、確実に知るには十分な経験がありません。
誰かが変数巻き上げの簡単な概要と、ここで何が起こっているのか教えてもらえますか? ありがとう!