在我们平常写 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 回复