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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于javascript中函数声明变量声明以及变量赋值之间的关系与影响的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript基础

JavaScript 变量和函数提升问题总结

js 函数 /变量/ 以及函数中形参的预解析的顺序

JavaScript 变量声明提前

JavaScript 变量声明

JavaScript 变量声明提升