作用域注意事项

来源:互联网 发布:wto数据库 编辑:程序博客网 时间:2024/06/04 01:17

1、JS中没有块级概念唯一有块级概念的是函数体内

2、没有设置var的变量是全局变量


<span style="white-space:pre"></span>var a = "a";function fn3 (d) {//var a;console.log(a);b = "b";var c = "c";function subFn () {var e = d;if (true) {var f = "f";console.log(e);console.log(a);}console.log(f);}subFn();}fn3("d");console.log(b);

通过一个混合练习来了解:

a为全局变量所以

console.log(a);都可以显示值
但是如果把函数fn3内的var a;放开,则都为undefined因为函数内的局部变量覆盖了函数外部的全局变量,而局部变量没有赋值所以为undefined   subFn内函数自然也为undefined
函数fn3内的变量b没有var 所以为全局变量,所以函数外部可以访问到
因为函数subFn,在函数fn3内所以参数d可以传递实参“d”,而e创建变量在subFn内,所以e亦可访问到外部传入的参数“d”。
if没有块级元素概念,所以可以访问f

0 0
原创粉丝点击