JS 变量与变量提升

原创 uptown 教程 js 245阅读 2018-07-27 11:21:43 举报

     在我们平常写 JS 的时候,变量恐怕是出镜率最高的演员;不但出镜多,而且戏路广,生旦净末丑,都能切换自如;尤其当全局变量、局部变量、综合参数、函数声明等,这些戏精凑一块的时候,再来看变量,难免有像双兔傍地走, 难辨雄雌的感觉。
结合网上的一些范例,我写了如下的以一些测试,清楚变量的套路后,就只用配合她演出,不用在乎她设计那些情节了。

1、变量与参数

结果:1,1,2 和 4,4,3。参数 name 等同于局部变量,此时 this 指向 window

2、重复声明变量

结果:1,2。一个变量在同一作用域中已经声明过,会自动移除 var 声明,但是赋值操作依旧保留

3、自动提升为全局变量

结果:1。d 自动提升为全局变量 。

4、变量提升

结果:2。变量提升,相当于:var test4;if (...) { test4= 2; console.log(test4) } else{...}

5、普通函数

结果:undefined,1,1,true 和 2,1,1 和 2,3,3

6、构造函数

结果:undefined,undefined,1,false 和 2,undefined,1 和 2,3,1 和 true。构造函数 this 指向实例 test6

7、函数声明、函数表达式 和变量

结果:function g(){ return 4 },3 和 function g(){ return 2 },function(){ return 1};

8、函数声明、函数表达式 和变量的延展

结果: function h() { return 1} 和 1

9、函数声明、函数表达式 和变量的延展

结果: 2
如果有幸帮到你,帮忙到个人主页 Star 一下 :https://github.com/mark-tang/js---context/blob/master/context.html

听说 Star  的人马上升职加薪!Skr - skr !

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复