关于 JavaScript 的变量提升 尹宇星Kim 2022-08-25 60 阅读1分钟 JS 在 ES6 之前,只有全局作用域和函数作用域,因此在 if 和 while 之类里用 var 定义的变量是会提升到外面去的。 变量提升的过程中,函数的提升比变量的提升有更高优先级,也就是说同名下,会保留函数的定义,下面的代码输出的是 f hello() {} function hello() {} var hello console.log(hello) // f hello() {} 其实这个现象也可以理解为变量的提升比函数的提升更靠前,所以定义被函数覆盖了。