Qiitaのvar/let/constの使い分けのメモという記事を読みながら、varとletとconstの挙動を確かめてみました。
当該記事には、
var : 巻き上げは起きる
let : 巻き上げは起きる
const : 巻き上げは起きる
と書かれています。
しかし、varで巻き上げが起こることは確認したのですが、letとconstについて、自分では巻き上げが起こることは確認できませんでした。
確認に使ったコードを以下に書きます。
varの場合
JavaScript
1const show = () => { 2 console.log(str) 3 var str = 'hello' 4 console.log(str) 5} 6show() 7 8/* 出力 9undefined 10hello 11*/
letの場合
JavaScript
1const show = () => { 2 console.log(str) 3 let str = 'hello' 4 console.log(str) 5} 6show() 7 8/* 出力 9 console.log(str) 10 ^ 11ReferenceError: str is not defined 12*/
constの場合
JavaScript
1const show = () => { 2 console.log(str) 3 const str = 'hello' 4 console.log(str) 5} 6show() 7 8/* 出力 9 console.log(str) 10 ^ 11ReferenceError: str is not defined 12*/
letとconstにもvarと同様に巻き上げが起こるのであれば、上記3つの出力結果はいずれも
undefined hello
になると思います。
実行環境はVSCodeです。
もしかしたら巻き上げを誤解している気がしたので質問させていただきました。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/14 22:43
2019/05/15 04:53
2019/05/15 13:16
2019/05/16 02:00