DOM要素以外はちゃんとブロックスコープの影響を受けてスコープ外からはアクセスできないようになっていると思います。
DOM要素だけはスコープ外からもアクセスでき、別関数内からも参照できました。
何故と言われてもそういう仕様だから、と言われればそれで納得するしかないとも思いますがモヤモヤします。他のObjectタイプではこのような動作にならない?と思うのでDOM要素に特別な何かがあるのでしょうか?
またこのような仕様を知る場所をmozillaのリファレンスぐらいしか知らないので、細かな仕様を調べる場合に見るべきサイトなども教えて欲しいです。
javascript
1function test1(){ 2 const box = document.querySelector('#box') 3 const num = 1; 4 console.log(box) //#box要素 5 console.log(num) //1 6} 7 8function test2(){ 9 console.log(box) //#box要素 10 console.log(num) //ReferenceError: num is not defined 11} 12 13test1() 14console.log(box) //#box要素 15test2()
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/14 03:15