内側関数の実行より後で宣言されたvar
変数とlet
変数とで、違いに注意。
let a = '外側'
let b = '外側'
let c = '外側'
外側関数()
function 外側関数() {
// 実行より前で宣言: 内側から参照できる。
let a = '内側'
// 関数宣言の定義の位置ではなく、実行の位置による。
内側関数()
// 実行より後で宣言: letとvarでは挙動が異なる。
var b = '内側'
let c = '内側'
function 内側関数() {
console.log(a, b) // '内側' undefined
// c // ReferenceError
}
}