12.26---02作用域

28 阅读1分钟

什么是 作用域? (这是一道面试题)

*就是变量可以起作用的范围

作用域分为两个

  1. 全局作用域(直接在 script 内书写的代码)

再此作用域创建的变量, 我们叫做全局变量, 在当前 script 标签内的哪里都能使用

在 JS 中, 全局作用域中有一个 提前给我们准备好的 对象(一种数据格式, 后续会详细的讲解)

这个 对象叫做 window

我们创建的全局变量, 会被自动添加到 window 对象中

  1. 局部作用域(在 JS 中, 只有函数能够创建局部作用域)

在此作用域创建的变量, 只能在当前作用域使用, 超出这个作用域(也就是在函数外边)去使用, 就会找不到变量

    var num = 100

    // 假设 间隔 500 行
    console.log(num)
    function fn() {
        var sum = '我是在函数 fn 内部创建的变量, 我是局部变量, 所以我只能在当前函数内使用'

        var abc123 = '我是在 fn 函数内部创建的局部变量'

        console.log(sum)
    }
    fn()
    // console.log(sum) // 这里因为超出了这个变量的使用区间, 所以会 报错


    var abc = '我是一个全局变量 abc'    // 创建一个全局变量 abc
    console.log(window)