オライリー・ジャパン社の提供する
Javascript 第6版 2016年8月19日 初版6刷発行
著者 David Flanagan
訳者 村上 列
発行人 ティム・オライリー
印刷 日経印刷株式会社
の書籍内、3章 型、値、変数におきまして
以下のような説明がなされております。
・・・(前略)JavaScriptでは関数スコープが使われるので、関数中で宣言された変数はすべて、関数全体からアクセスできます。面白いことに、変数宣言より前のコードからもアクセスできます。このJavaScriptの特徴のことは、公式用語はありませんが、ホスティング(巻き上げ)と呼ばれています。・・・(後略)
そこで、言葉通り以下のコードを書くと
console上、" i is not defined"とエラーが出力されいます。
文言通り読めば、それがローカルスコープであっても関数全体においては参照可能であり、また、それが例え、後で定義または宣言された変数であってもと読めるのですが
理解に誤りがあるのでしょうか?
どなたかご教示をいただければ幸いです。
*引用等で不備があればご指摘ください。
JavaScript
1 <script> 2 3 function dog (){ 4 document.write(i); 5 } 6 7 dog(); // "i is not defined.... 8 9 function cat (){ 10 var i ="にゃ〜"; 11 } 12 13 14 </script>
もし同一関数内のことのみを意味していたとしても
下記の通り、undefinedです。
Javascript
1function cat (){ 2 document.write(i);//undefined 3 var i ="にゃ〜"; 4 }
回答2件
あなたの回答
tips
プレビュー