前端学习2 变量提升

JS的变量提升指的是代码在执行前会将变量提升到作用域的顶部,仅存在var声明变量中。

console.log(num + '件') // undefined

var num = 10

只提升生命,不提升赋值。 上段代码类似于

var num;

console.log(num + '件')

num = 10;

在函数作用域中也同样遵循该规则。

注意

1、let/const声明的变量在未声明即被访问时会报语法错误。

2、变量在var声明之前即被访问,变量的值为undefined。

3、let/const声明的变量不存在变量提升。

4、变量提升出现在相同作用域中。

函数提升

// 1、会把所有函数声明提升到当前作用域的最前面
// 2、只提升函数声明,不提升函数调用
fn()

function fn(){

    console.log('函数提升')
    
}
// 正常运行,因为js函数并不是立即执行的,只有在运行时,通过声明找到需要运行的函数就可以。
// 如果我们使用函数表达式声明一个函数,必须先声明函数后调用,否则会报错。
fun() // 报错

fun = function(){

	console.log('函数表达式')

}

注意

1、函数提升能够使函数的声明调用更灵活。

2、函数表达式不存在提升的现象。

3、函数提升出现在相同作用域当中。

#前端学习#
全部评论

相关推荐

评论
4
2
分享

创作者周榜

更多
牛客网
牛客企业服务