js作用域解释

阳光穿透心脏的1/2处 2023-10-02 23:31 25阅读 0赞

js的作用域(es6之前):全局作用域,局部作用域

全局作用域:整个script标签,或者是一个单独的js文件

局部作用域(函数作用域)在函数内部就是局部作用域,这个代码的名字只在函数内部起效果和作用

(1)全局变量&局部变量

如果在函数内部声明的变量为局部变量,在script标签内部,函数外部声明的变量为全局变量

此外,如果在函数内部声明变量时,未用var声明,则此变量未全局变量
例:

  1. function fn() {
  2. num1 = 10;
  3. }
  4. console.log(num1);
  5. //此时不会报错,这里num1为全局变量

JS在es6之后新增块级作用域

(2)作用域链

只要是代码,就至少有一个作用域

写在函数内部的局部作用域

如果函数中还有函数,那么在这个作用域中就又可以诞生一个作用域

根据在内部函数可以访问外部函数变量的这种机制,用链式查找决定哪些数据能被内部函数访问,就成作作用域链
(就近查找)

  1. var num = 10;
  2. function fn() {
  3. var num = 20;
  4. function fn2() {
  5. console.log(num);
  6. }
  7. }
  8. fn1();
  9. //此时输出 20;就近查找

#

发表评论

表情:
评论列表 (有 0 条评论,25人围观)

还没有评论,来说两句吧...

相关阅读

    相关 js作用解释

    js的作用域(es6之前):全局作用域,局部作用域 全局作用域:整个script标签,或者是一个单独的js文件 局部作用域(函数作用域)在函数内部就是局部作用域,这个代码的

    相关 js 作用

    作用域\[\[scope\]\] 运行期上下文:当函数执行时,会创建一个称为执行期上下文的内部对象。一个执行期上下文定义了一个函数执行时的环境,函数每次执行时对应的

    相关 JS作用

    作用域分类 静态作用域 如果函数中的变量,没有在该函数中定义,就去定义该函数的地方查找 静态作用域,也叫词法作用域,代码写完后,

    相关 js参数作用

    在函数外的变量称为全局变量, 在函数内的变量和参数叫做局部变量,在函数内部定义的变量和参数都不能在函数外被调用 // 在函数外的变量称为全局变量 var