声明提前

之前写代码时常常没有注意这个声明提前,今天有时间就理顺一下声明提前,虽然不常用,但是理顺有助理解别人的代码。

声明提前:

1.变量声明提前

(1) 使用var关键字声明的变量会在所有代码执行之前,被声明,但是未赋值

console.log('a:',a);
var a = 10;
console.log('b:',b);
b = 20;
console.log(b);
console.log(window.b);
console.log(window);

如上图结果是a的值为undefined, b未定义,变量a的写法等同于下面的写法,

var a
console.log('a:',a);
a = 10;

(2) 没有使用变量关键字声明的变量等同于直接将值赋给window对象,如:b = 20等同于window.b = 20

当注释console.log('b:',b),结果如下图

console.log('a:',a);
var a = 10;
//console.log('b:',b);
b = 20;
console.log(b);
console.log(window.b);
console.log(window);

b的值被保存到window对象上了,调用b和window.b的值是一样的。

2.函数声明提前

(1) 使用函数声明形式( function 函数名(){} )创建的函数,会在所有代码执行之前被创建

fn();
function fn(){
    console.log('使用函数声明形式');
}
fn2();
var fn2 = function(){
    console.log('使用var等关键字,函数表达式');
}

(2) 使用var等关键字,函数表达式创建的函数,同变量声明提前相似,先声明,但是未赋,结果见上图

fn2函数的写法等同于下面的代码

var fn2;
fn2();
fn2 = function(){
    console.log('使用var等关键字,函数表达式');
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值