function foo (x = y, y = 2) { return [x, y]}foo() // 報錯這里變量y沒有聲明, 但是應該是變量未聲明報錯啊, 怎么會是暫時性死區的原因呢?未聲明報錯和暫時性死區的明確區別就是,暫時性死區使用了let或const命令, 并且是在塊級作用域中,這樣理解對嗎?暫時性死區ES6 明確規定, 如果塊級作用域中存在let和const命令, 則這個區塊中對這些命令聲明的變量從一開始就形成封閉作用域,let命令聲明變量之前, 該變量都是不可用的, 這在語法上稱為暫時性死區看到了一個一樣的問題https://segmentfault.com/q/10...但是babel轉換過后的js代碼也沒有使用let呀
為什么這個是暫時性死區呢?
Smart貓小萌
2019-02-12 17:16:08