JS作用域
2018-12-28 15:54 系佛 阅读(127) 评论(0) 收藏 举报一,JavaScript的函数作用域
1.在JavaScript中每个函数作为一个作用域,在外部无法访问内部作用域中的变量。
var a = 2; function fun(){ var a = 1 ; return a ; } fun() console.log(a)//输出多少呢
输出为2。
2.在函数内部申明变量,如果没有加var则会自动变为全局变量。
var a = 1; function Fun(){ a = 2 ; } Fun(); console.log(a)
输出为2。
二,JavaScript的作用域链
在JavaScript中的每个函数作为一个作用域,但如果出现函数嵌套函数,则就会出现作用域链。
var a = 1 function fn1(){ function fn2(){ console.log(a) } function fn3(){ var a = 4 fn2() } var a = 2 return fn3 } var fn = fn1() fn() //输出多少
函数在执行的过程中,先从自己内部找变量
如果找不到,再从创建当前函数所在的作用域去找, 以此往上
三、申明提前
1,在JavaScript中如果不创建变量,直接去使用,则报错
console.log(a)
直接输出会报错。
2,JavaScript中如果创建值而不赋值,则该值为 undefined
var a;
console.log(a)
输出为undefined.
3.如果一个变量的使用在申明之前,则会自动将申明提前
console.log(a) var a = 1;
输出为undefined,因为上述代码等同于:
var a ; console.log(a); a = 1;
浙公网安备 33010602011771号