JS中的声明提升

变量声明提升

        使用var关键字声明的变量,会在所有的代码执行之前被声明。如果声明变量时未使用var关键字,变量不会被提前声明

console.log(a) // 输出undefined
var a = 1

// 等同于

var a
console.log(a) // 输出undefined
a = 1

函数的声明提升

        使用函数声明形式创建的函数,会在所有代码运行之前就被创建

foo() // 输出 我是foo函数
function foo() {
    console.log('我是foo函数')
}

// 等同于

function foo() {
    console.log('我是foo函数')
}
foo() // 输出 我是foo函数

        使用函数表达式创建的函数,此时只是变量被提前声明,此时变量的值是undefined

bar() // 这里会报错
var bar = function() {
    console.log('我是bar函数')
}

// 等同于

var bar
bar() // 这个时候的bar是undefined,undefined怎么能做为函数执行呢?
bar = function() {
    console.log('我是bar函数')
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值