Javascript之声明提升

变量的声明提升

例子如下

var value = 'czzz2.com'
function  show() {
    console.log(value)
    if (!value) {
        var value = 'czz'
    }
    console.log(value)
}
show()

上述代码等同于如下代码

var value = 'czzz2.com'
function  show() {
	var value
    console.log(value)
    if (!value) {
        value = 'czz'
    }
    console.log(value)
}
show()
函数的声明提升

记住一个要点,变量的声明提升在函数的声明提升后面。
例子如下

getName()
var getName = function () {	//变量提升=》 声明getName,var getName;getName=...
    console.log('czz')
}
function getName() {	//提升到最上面
    console.log('czzz2.com')
}
getName()

代码可以转化称如下

function getName() {
    console.log('czzz2.com')
}
//var getName	//重复声明=》无效
getName()
getName = function () {
    console.log('czz')
}
getName()
//输出结果,czzz2.com  czz

Demo3:

var a = 99;            // 全局变量a
f();                   // f是函数,虽然定义在调用的后面,但是函数声明会提升到作用域的顶部。 
console.log(a);        // a=>99,  此时是全局变量的a
function f() {
  console.log(a);      // 当前的a变量是下面变量a声明提升后,默认值undefined
  var a = 10;
  console.log(a);      // a => 10
}
// 输出结果:undefined 10 99

Demo4:

function test1() {
  a = 5;
  console.log(a); 
  console.log(window.a); 
  var a = 10;
  console.log(a); 
}
test1();
// 输出结果:5  undefined 10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值