美文网首页
js基础阵营:变量2

js基础阵营:变量2

作者: 来瓶二锅头00 | 来源:发表于2020-01-02 21:42 被阅读0次

    上面已经介绍完了变量的定义,说完定义肯定要说下变量的常见的问题。其实变量的常见问题说来说去也就那么几个,变量作用域,变量提升。这就跟前面说到张无忌的乾坤大挪移一样,用来用去也就那么几招。那么我们首先来看变量作用域

    1.变量作用域

    为了理解什么是变量作用域,我们首先要搞明白一个概率-'执行环境'。故名思议,执行环境就是我们要处理一件事所处的环境,举个栗子:我们去TAM取款机取钱,那么ATM机器就是一个执行环境,一个执行取钱命令的环境。那么这个环境中包括哪些东西呢?ATM取款机这个执行环境中呢就包括钱,以及如何取钱这个操作。那么我们类比到我们的js中,我们就不难明白什么是执行环境,执行环境就是定义了变量(钱)或者函数(取钱操作)的一个范围。
    理解了执行环境,那么我们变量作用域也很好明白了,那就是变量所能操作(读取)的一个执行环境。那么我们常见的变量作用域有哪些呢?在ES5时代变量的作用域有两种:全局作用域以及函数作用域,在ES6时代引入了块级作用域的概率,下面我们来一个一个来剖析

    1.1全局作用域

    全局作用域就是在最外层的一个执行环境,js代码运行宿主不同(js可以在浏览器运行也可以在node环境中运行)表示的执行环境也不同,在浏览器中我们说到的全局作用域就是指window对象,因为所有的变量以及函数都是作为window对象的属性和方法来创建的,我们来看一下代码

    var name = '二锅头';
    console.log('window.name的值为:' + window.name);
    

    我们把代码复制到浏览器的控制台就能得到一下结果:



    这个时候我们就能看到其实我们定义的变量name变成了window的一个属性。所以只要能访问到window的地方都能使用我们的name属性。这也就是为什么叫全局作用域的原因。

    1.2函数作用域

    函数作用域,说简单点就是函数的执行环境。

    相关文章

      网友评论

          本文标题:js基础阵营:变量2

          本文链接:https://www.haomeiwen.com/subject/otqaoctx.html