JavaScript中作用域讲解(day16)

  • 作用域

作用域:变量可以起作用的范围。

  • 全局变量和局部变量

    • 全局变量

      在任何地方都可以访问到的变量就是全局变量,对应全局作用域

    • 局部变量

      只在固定的代码片段内可访问到的变量,最常见的例如函数内部。对应局部作用域(函数作用域)

不使用var声明的变量是全局变量,不推荐使用。
变量退出作用域之后会销毁,全局变量关闭网页或浏览器才会销毁
  • 块级作用域

任何一对花括号({和})中的语句集都属于一个块,在这之中定义的所有变量在代码块外都是不可见的,我们称之为块级作用域。 在es5之前没有块级作用域的的概念,只有函数作用域,现阶段可以认为JavaScript没有块级作用域

  • 词法作用域

变量的作用域是在定义时决定而不是执行时决定,也就是说词法作用域取决于源码,通过静态分析就能确定,因此词法作用域也叫做静态作用域。

在 js 中词法作用域规则:

    • 函数允许访问函数外的数据.

    • 整个代码结构中只有函数可以限定作用域.

    • 作用域规则首先使用提升规则分析

    • 如果当前作用规则中有名字了, 就不考虑外面的名字

var num = 123;
function foo() {
console.log( num );
}
foo();

if ( false ) {
var num = 123;
}
console.log( num ); // undefiend

 END

    为了不错过每天的见面,请记得点击一下【关注】啊~

    作者:javagril,00后女生,一个IT界冉冉升起的新星,想带你遨游缤纷多彩的编程世界。

原文地址:https://www.cnblogs.com/cmf12/p/13817809.html