javascript中函数声明、变量声明以及变量赋值之间的关系与影响
2015-12-09 13:28
671 查看
javascript中函数声明、变量声明以及变量赋值之间的关系与影响
函数声明、变量声明以及变量赋值之间有以下几点共识:
1、所有的全局变量都是window的属性
2、函数声明被提升到范围作用域的顶端
3、变量声明被提升到范围作用域的顶端
4、变量声明比函数声明的优先级高,变量声明优先于函数声明被提升,如果两者同名同时存在,后被提升的函数声明会覆盖先被提升的变量声明
5、变量赋值不会被提升,到执行行代码才开始赋值
补充:
6、调用javascript函数的整个过程可以分为预编译期(也叫声明期)和赋值期(也叫计算执行期)。
例如:
对以上内容的总结和测试代码可以查看:
http://ju.outofmemory.cn/entry/4646
原文:http://dmitry.baranovskiy.com/post/91403200
函数声明、变量声明以及变量赋值之间有以下几点共识:
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
相关文章推荐
- 记录js学习中的问题-隔行变色
- C# JSON按key进行排序
- JavaScript正则表达式
- [Javascript] DOM
- <input> 格式限定(只能输入中文或者数值等)
- 为什么css中添加了display:none其它js代码会失效?
- JS实现字符串转日期并比较大小实例分析
- 哪些JavaScript IDE最好用?
- JS组件系列——开源免费图表组件:Chart.js
- 详解JavaScript基本类型和引用类型
- JavaScript实现点击可编辑
- 用JavaScript传递div到新的页面
- javascript eval和JSON之间的联系
- solr5.3.1 json xml csv 等文件类型,建立索引
- JS公共小方法之判断对象是否为domElement
- js判断null undefined NaN等。。
- js操作cookie以实验array数据在ajax向action交换数据时得到保存,用于实现批量删除的工作(未完)
- js array.sort
- javascript之var self = this
- js技巧代码