最近question I was looking atで次のようになりました。なぜvar name
とconst name
がさまざまな出力を提供するのか不思議です。下のスニペットを実行して、私の言いたいことを見てください。const vs varとwindow.nameプロパティ
それはname
がwindow
オブジェクトのプロパティであることとは何かを持っている場合は、再宣言/ const
とname
を定義することは、私が思うだろうエラーになるはずです。ただし、以下の例では、const
はname
を配列として再宣言できますが、var
は再宣言できません。
var name = ['one', 'two', 'three', 'four', 'five'];
for (var i=0; i < name.length; i++){
document.write(name[i] + '<br>');
}
const name = ['one', 'two', 'three', 'four', 'five'];
for (var i=0; i < name.length; i++){
document.write(name[i] + '<br>');
}
は、なぜconst
はハイジャックwindow.name
財産に私を許可し、配列として再割り当てしますか?ただし、var
は再割り当てを許可していません(デフォルトのままのままです)。string
?それとも、私は単にそれを間違った方法で見ていますか?
同じ理由で 'let'は' const'のように動作することにも注意してください。 – Barmar
Gotcha。私は 'let'について知っていましたが、' const'が同じ制約に従ったことに気づいていませんでした。毎日何か新しいことを学ぶ。 – Marcus