我正在检查chrome开发工具中的简单脚本的执行上下文。我在断点或调试器语句中注意到,chrome dev工具在作用域部分显示了一个新类别。它具有:

  • 本地
  • 脚本
  • 全局

  • 我相信脚本与letconst的存储方式有关,因为它们未附加到全局窗口对象。但是,我的理解是它们仍然处于“全局范围”内,但不限于全局对象。

    我相信“脚本”标签代表了这个想法,但是为什么选择名称“脚本”呢?

    我检查了documentation,但是不幸的是,它没有提到“脚本”是什么。

    这是我的示例的屏幕截图:

    javascript - 范围内的“Script”类别-LMLPHP

    是否有人对使用的命名约定有任何见解?

    最佳答案

    因为可以在另一个脚本标签(包括外部脚本标签)中访问脚本作用域中的变量。
    参见this question
    顺便说一下,Firefox的devtools只是将这种作用域称为“块”。
    例如:

    var a = 0;
    let b = 1;
    function test() {
      function test2() {
        let c = 2;
      }
      test2();
    }
    test();
    
    在Chrome devtools中将如下所示:
    in Chrome devtools
    在Firefox devtools中看起来像这样:
    in Firefox devtools

    关于javascript - 范围内的“Script”类别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51709756/

    10-09 18:20
    查看更多