javascript中函数声明、变量声明以及变量赋值之间的关系与影响

javascript中函数声明、变量声明以及变量赋值之间的关系与影响

函数声明、变量声明以及变量赋值之间有以下几点共识:
1、所有的全局变量都是window的属性
2、函数声明被提升到范围作用域的顶端
3、变量声明被提升到范围作用域的顶端
4、变量声明比函数声明的优先级高,变量声明优先于函数声明被提升,如果两者同名同时存在,后被提升的函数声明会覆盖先被提升的变量声明
5、变量赋值不会被提升,到执行行代码才开始赋值



补充:

6、调用javascript函数的整个过程可以分为预编译期(也叫声明期)和赋值期(也叫计算执行期)。

预编译期完成对所有变量(包括形参、函数内部参数)和函数的声明,
赋值期又可以分为两个阶段,函数花括号内语句执行前后,执行前完成对形参置和函数的赋值,执行后按照语句顺序执行赋值。

例如:

function test(msg){
    var msg ;
    alert(msg);//弹出:test方法测试,因为先完成所有变量的声明,然后在对形参赋值
}

test("test方法测试");

对以上内容的总结和测试代码可以查看:
http://ju.outofmemory.cn/entry/4646
原文:http://dmitry.baranovskiy.com/post/91403200

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值