美文网首页
词的作用域

词的作用域

作者: 我是一只要变快的小蜗牛 | 来源:发表于2018-07-17 15:03 被阅读0次

最近在学习javascript,把自己能够理解的记录下来

var x = "hello";

    var test = function(){

        console.log(x);    //弹出"undefined"

        var x = "hi";

        console.log(x);   //弹出"hi"

    }

    test();

x='hello'是一个全局作用域,在函数作用域test中打印变量x,涉及到变量提升,会先从自身查找局部变量x,已经找到,不会再继续向上查找。这个时候指向全局对象,也就是window.

上面的例子和下面的这个是等价的,变量提升(先调用,后声明)

var x = "hello";

    var test = function(){

      var x;

        console.log(x);    //弹出"undefined"

        var x = "hi";

        console.log(x);   //弹出"hi"

    }

    test();

var x = "hello";

    function test(){

        console.log('打招呼说' + x);//弹出"hello";

    }

    test();

在本身查找不到就查找到全局变量x,所以打印出来是hello

当调用test()函数时,形成的作用域链为‘调用对象’==》‘全局对象’

打印(x)时,首先查找调用对象(test函数)是否有x的属性,如果有则使用‘调用对象’的x,如果没有,就接着查找‘全局对象’是否有x的属性。

还没有写全,(只有自己看的明白就行了)下次再补

相关文章

  • 作用域和作用链

    关键词:作用域作用链 作用域 js中没有块级作用域 全局作用域,函数作用域太简单,就不演示(≧▽≦)/啦啦啦 作用...

  • 简单知识

    1.var关键词的作用域是最近的函数作用域(如果在函数体的外部就是全局作用域), let 关键词的作用域是最接近的...

  • js 静态作用域和动态作用域

    静态作用域:函数声明的时候就已经确定作用域。动态作用域:函数调用的时候确定作用域。 js采用的是静态作用域,也称词...

  • 词的作用域

    最近在学习javascript,把自己能够理解的记录下来 var x = "hello"; var test...

  • 词法作用域和动态作用域

    词法作用域 简单地说,词法作用域就是定义在词法阶段的作用域,是由写代码时将变量和块作用域写在哪里来决定的,因此当词...

  • Python变量作用域范围

    关键词: python;作用域; Variable Scope; 1、Python中能够改变变量作用域的代码段是d...

  • 总结ReactNative一些基础知识

    关键词 let和var的区别 var作用于当前申请方法的作用域,let作用于当前申请对象作用域 props和sta...

  • 《javascript基础补充--作用域与作用域链相关知识点》

    关键词:全局变量、局部变量、变量提升机制、内存回收机制、作用域、作用域链 变量(作用域) 局部变量可以与全局变量重...

  • 一网打尽 JavaScript 的作用域

    JavaScript 的作用域包括:模块作用域,函数作用域,块作用域,词法作用域和全局作用域。 全局作用域 在任何...

  • JS的作用域

    JS的作用域: 全局作用域、函数作用域、eval 作用域、块级作用域 全局作用域: 函数作用域: 结果截屏: 说...

网友评论

      本文标题:词的作用域

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