javascript变量作用域

对应有道云笔记地址(有道云上排版更优):http://note.youdao.com/noteshare?id=e8d5534110c1319a23b17508eef4fd9b&sub=55634589956F4741A2BAF6B96DDBFE04

 

什么是作用域:

  变量作用的范围。

作用域分类:
局部作用域 和 全局作用域

 

全局作用域(全局变量)
  变量具有全局的作用范围

 

局部作用域
  1.什么是局部作用域?

    JavaScript中每个函数作为一个作用域,在外部无法访问作用域内部中的变量。(es6中新增块级作用域)


  2.什么是作用域链?

    当多个函数嵌套,则形成了作用域链


  3.变量在作用域中在查找方式?

    我们在局部作用域中访问变量时,是从当前局部作用域开始,一层一层的往上找(一直到全局),一旦找到该变量,就停止查找。(作用域链中的就近原则);
eg1:
  function test(){
    a = 1;
    console.log(a);
  }
  test();//其结果取决于是否是严格模式("use strict")

eg2:
  function c(){
    console.log(a)
  }
  function p(){
    var a = 1;
    c();
  }
  p();

 

注意:函数在定义他的作用域及其所处在作用域链的位置就已经确定,与它运行时所处的作用域无关。

扩展:作用域能不能改变?

posted @ 2018-10-09 17:11  鳯訡  阅读(232)  评论(0编辑  收藏  举报