JavaScript 做用域和全局变量

做用域指的是能够访问的变量集合,咱们能够理解为:做用域就是起做用的区域 在 JavaScript 中有两种做用域类型: 私有做用域和全局做用域bash

1.私有变量

在 JavaScript 函数中声明的变量,称为私有变量,只能在函数内部访问它们。函数

实例

console.log(a)
// 此处的代码不能使用 a 变量
var f = function(){
        var a = 100;
        console.log(a)// 此时能够使用,内部赋值为100
    }
复制代码

在此时,a即是fn函数的私有变量,在函数体外不能获取到。学习

2.全局变量

函数外声明的变量,称为全局变量spa

实例

var a =12;//全局变量
    var f = function(){
        var a = 100;
        console.log(a)// 内部赋值为100
    }
    console.log(a)//12  全局的这个a和私有的a没有关系
复制代码

3.上级做用域

实例

var b =10;
    var f2 = function(b){
        console.log(b);//因为在函数体内没有声明,因此 b 的值就要到全局去找,
        b = 200;
        console.log(b)// 给 b 赋值:200,由10变为200,此时输出值为200
    }
    f2()
    console.log(b)// 此时全局变量已经变成200
复制代码

上级做用域查找规律: 上级做用域是谁,就看这个函数在哪一个做用域声明定义的,对于私有做用域中的某些变量,若没有在私有做用域中声明过,那么函数执行时,就会去上级做用域查找改变量,上级做用域若没有该变量,则接着向上级查找,直到查找到全局做用域,若扔没有,则报错code

4.函数的执行

函数执行过程:先开辟一个私有做用域(栈内存),形参赋值,变量提高,而后代码从上向下执行;私有变量有形参和在私有做用域中声明过的变量,其余的变量都是上级做用域的。ip

以上就是本文的所有内容,但愿对你们的学习有所帮助。

相关文章
相关标签/搜索