javascript变量作用域
对应有道云笔记地址(有道云上排版更优):http://note.youdao.com/noteshare?id=e8d5534110c1319a23b17508eef4fd9b&sub=55634589956F4741A2BAF6B96DDBFE04
什么是作用域:
变量作用的范围。
作用域分类:
局部作用域 和 全局作用域
全局作用域(全局变量)
变量具有全局的作用范围
局部作用域
1.什么是局部作用域?
JavaScript中每个函数作为一个作用域,在外部无法访问作用域内部中的变量。(es6中新增块级作用域)
2.什么是作用域链?
当多个函数嵌套,则形成了作用域链
3.变量在作用域中在查找方式?
我们在局部作用域中访问变量时,是从当前局部作用域开始,一层一层的往上找(一直到全局),一旦找到该变量,就停止查找。(作用域链中的就近原则);
eg1:
function test(){
a = 1;
console.log(a);
}
test();//其结果取决于是否是严格模式("use strict")
eg2:
function c(){
console.log(a)
}
function p(){
var a = 1;
c();
}
p();
注意:函数在定义他的作用域及其所处在作用域链的位置就已经确定,与它运行时所处的作用域无关。
扩展:作用域能不能改变?
不自见,故明;不自是,故彰;不自伐,故有功;不自矜,故长。