美文网首页
查询标识符

查询标识符

作者: 子悦茶余饭后 | 来源:发表于2021-03-17 18:03 被阅读0次

       当在某个环境中为了读取或写入而引用一个标识符时,必须通过搜索来确定该标识符实际代表什么。搜索过程从作用域的前端开始。向上逐级查询与给定名字匹配的标识符。如果在局部环境中找到了该标识符,搜索过程停止,变量就绪。如果在局部环境中没有找到该变量名,则继续沿作用域链向上搜索。搜索过程将一直追溯到全局环境的变量对象。如果在全局环境中也没有找到这个标识符,则意味着该变量尚未声明。

        通过下面这个示例,可以理解查询标识符的过程:

        调用本例中的函数getColor()时会引用变量color。为了确定变量color 的值,将开始一个两步的搜索过程。首先,搜索getColor()的变量对象,查找其中是否包含一个名为color的标识符。在没有找到的情况下,搜索继续到下一个变量对象(全局环境的变量对象),然后在那里找到了名为color的标识符。因为搜索到了这个变量的变量对象,搜索过程宣告结束。下图形象的展示了上诉搜索过程。

          在这个搜索过程中,如果存在一个局部的变量的定义,则搜索会自动停止,不再进入另一个变量对象。换句话说,如果局部环境中存在着同名标识符,就不会使用位于父环境中的标识符,如下面的例子所示:

      修改后的代码在getColor()函数中声明了一个名为color 的局部变量。调用函数时,该变量就会被声明。而当函数中的第二行代码执行时,意味着必须找到并返回变量color的值。搜索过程首先从局部环境中开始,而且在这里发现了一个名为color的变量,其值为“red”。也就是说,任何位于局部变量color 的声明之后的代码,如果不使用window.color 都无法访问全局color 变量。

相关文章

  • 查询标识符

    当在某个环境中为了读取或写入而引用一个标识符时,必须通过搜索来确定该标识符实际代表什么。搜索过程从作用域的前...

  • 《你不知道的JavaScript》读书笔记 - 简单总结LSH/

    书中解释了作用域的概念:负责所有标识符组成的一系列查询,确定访问权限。 关于查询,分为左查询(LSH),右查询(R...

  • JS封装常用函数

    转化成驼峰标识符 格式化查询字符串 随机点名

  • MySQL Explain解析

    概要描述:id:选择标识符select_type:表示查询的类型。table:输出结果集的表partitions:...

  • mysql 用户自定义变量

    或为出师表,鬼神泣壮烈。 1、使用自定义变量的查询,无法使用查询缓存。2、不能在使用常量或者标识符的地方使用自定义...

  • python | 不同应用下什么是标识符、保留字?

    标识符和保留字 ① Python标识符 ② Python保留字 一、标识符 1、什么是标识符 标识符(Identi...

  • LLVM IR介绍

    官方链接 标识符 LLVM的标识符有两类:全局标识符和局部标识符。全局标识符以符号@开头,局部标识符由符号%开头。...

  • 作用域和闭包

    一. 作用域是什么 1. 定义 作用域是一套规则,用于确定在何处以及如何查找变量(标识符)。 2. LHS 查询...

  • 从零开始学Java(五)Java标识符、关键字和变量

    一、标识符 1、标识符可以标识什么,什么是标识符,怎么理解这个概念! 2、标识符的命名规则 3、标识符的命名规范 ...

  • 输入 URL 到页面加载完成,发生了什么?

    1.浏览器接收URL URL包含的信息:协议、网络地址:端口号、资源路径、查询字符串?、片段标识符#。 2.如果网...

网友评论

      本文标题:查询标识符

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