已解决
作用域理解
来自网友在路上 167867提问 提问时间:2023-10-11 00:21:57阅读次数: 67
最佳答案 问答题库678位专家为你答疑解惑
概念:它是指对某一变量和方法具有访问权限的代码空间, 在JS中, 作用域是在函数中维护的。表示变量 或函数起作用的区域,指代了它们在什么样的上下文中执行,亦即上下文执行环境。
ES5的作用域只有两种:全局作用域和局部作用域
全局作用域
var a=1; //全局作用域
function fn1(){console.log(a)
};
fn1()
局部作用域
function fn1(){var a=1; //局部作用域
};
fn1();
console.log(a);
全局变量和局部变量同名的坑
(1)在全局变量和局部变量不同名时,其作用域是整个程序。
(2)在全局变量和局部变量同名时,全局变量的作用域不包含同名局部变量的作用域。
var a=1;
function fn1(){console.log(a)var a = 2;
};
fn1();
console.log(a); undefined //var声明会进行预解析 提前
1 //拿到的是全局变量
经典作用域面试题
var a = 10;
function f1(){ var b = 2 * a; var a = 20;var c = a+1; console.log(b); console.log(c);
}
f1()NaN // 首先内部a会提前进行预解析 变量提升 是undefined * 2
21 // 此时预解析 a=20 + 1
var a=10;
function test(){console.log(a);a=100;console.log(this.a); var a;console.log(a);
}
test();undefined // 首先test'调用' 会去内部查找变量 var a 会进行预解析 此时只是声明了 但是没赋值10 // this 相当于拿到的全局变量 指向的是window100 // 前面赋值 a = 100
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"作用域理解":http://eshow365.cn/6-18654-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: axios的get请求时数组参数没有下标
- 下一篇: leetcode:190. 颠倒二进制位