您的位置:首页 > Web前端 > JavaScript

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

2015-12-09 13:28 671 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: