当前位置 知且行 大前端 js中的作用域 下一篇:

js中的作用域

作用域指的是变量起作用的范围,即一个变量的生效范围。分为全局作用域和局部作用域,局限作用域也做函数作用域

全局作用域很好理解,就是哪都能起作用

作用域规则

  • 函数可以使用函数以外的变量
var a = 10;
function m() {
    console.log(a); // 10
}
m();
  • 函数内部优先使用内部的同名变量
var a = 10;
function m() {
    var a = 20;
    console.log(a); // 20
}
m();
  • 函数内部没有用var声明的变量,也是全局变量
var a = 10;
function m() {
    a = 20;
    console.log(a); // 20
}
m();
console.log(a); // 20

不推荐这么做,会让程序变得如同面条一样乱,函数内部的变量不应该干涉到外面的变量

作用域链

函数优先在内部查找变量,如果找不到,则向外层查找,外层还找不到,继续向上一层查找,直到最外层的全局作用域。这种链式查找方式就是作用域链

var a = 10;
function fn1() {
    var a = 20;
    function fn2(){
        var a = 30;
        console.log(a); // 20
    }
    console.log(a); // 30
    fn2();
}
fn1();
console.log(a); // 10
转载必须注明出处:https://www.zhiqiexing.com/143.html

关于我

我希望能成为一个认真、有趣、创造更多价值的人
关注微信
微信扫一扫关注我

微信扫一扫关注我

返回顶部