在同一页使用 es6 function 即便没有先宣告
mma()let mma = () => {
console.log(1)
}
会出错
Uncaught TypeError: mma is not a function
但这样子
mma()function mma() {
console.log(1)
}
没毛病
那 es6 怎么样没宣告也可以无痛使用?
回答:
mma()function mma() {
console.log(1)
}
这种方式定义的函数,会存在声明提升,也就是说,实际的效果是下面这样的
function mma() { console.log(1)
}
mma()
mma()let mma = () => {
console.log(1)
}
而这样的不行存在两个原因,第一,其实如果你把 let 换成 var 也不行,如果换成 var ,就等同于
var mma;mma()
mma = () => {
console.log(1)
}
另外,就是 let 还存在一个暂时性死区的问题。
以上是 在同一页使用 es6 function 即便没有先宣告 的全部内容, 来源链接: utcz.com/p/937532.html