关于 JavaScript 的变量提升

JS 在 ES6 之前,只有全局作用域和函数作用域,因此在 ifwhile 之类里用 var 定义的变量是会提升到外面去的。

变量提升的过程中,函数的提升比变量的提升有更高优先级,也就是说同名下,会保留函数的定义,下面的代码输出的是 f hello() {}

function hello() {}
var hello

console.log(hello) // f hello() {}

其实这个现象也可以理解为变量的提升比函数的提升更靠前,所以定义被函数覆盖了。

posted @ 2021-09-10 19:05  尹宇星_Kim  阅读(41)  评论(0编辑  收藏  举报