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