变量提升与函数提升

变量提升

在使用var声明对象的时候就算声明在赋值之后依然可以使用,这就是函数提升:

 var a = "globalvale";
 function fn (){
     console.log(a);
     var a="functionvar";
 }
 fn();//"undefine"

在上面的例子当中我们发现按照我们想的执行顺序,应该是打印出的globalvale但是打印出的却是在函数最后申明的a;那是因为变量用var声明时会默认将声明放在当前作用域的最前面:



 var a = "globalevale";
 function fn (){
     var a
     console.log(a);
     a="functionvar";
 }
 fn();

实际的运行效果如上。这就是变量提升。

函数提升

类似于变量提升:

test();// i am function
function test(){
    console.log("i am function")
}

我在想既然函数提升和变量提升都是一样的效果,那如果我们声明变量将函数赋值给变量是什么效果那。

test();//test is not function

var test = function (){
    console.log("i am testFunctio")
}

经过上面两个例子可知,var仅仅是将声明提升了,赋值操作并没有提升。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值