注册分为三个阶段:分别是注册阶段,函数处理阶段,变量处理阶段;这三个阶段有先后顺序的。(注:这三个阶段的名字没有权威性,是作者为了方便记忆自己起的名字)

注册阶段的特征

1.此时不会运行代码

2.检查低级的语法错误

3.注册在当前词法环境中所声明的变量和函数

4.一旦创建了新的词法环境,就会执行这一阶段

函数处理阶段

如果是函数环境(也就是说局部环境):创建形参及函数参数的默认值;然后实参形参相统一。 如果全局环境,就跳过这这一步

接下来是全局环境和函数环境都经历的:将函数声明进行扫描并绑定到当前环境与函数名相同的标识符上。若该标识符已经存在,那么该标识符的值将被重写。(注意此时不会理会函数表达式和箭头函数)

对变量进行处理

若在全局作用域中或者函数作用域中。扫描三种变量 var 、let、const定义的变量。

若是块级作用域:扫描两种变量 let、const定义的变量。对于所查找到的变量,若该标识符不存在,进行注册并将其初始化为undefined。若该标识符已经存在,将保留其值。

转载于:https://www.cnblogs.com/weikemudan/p/11152041.html

js中注册标识符流程相关推荐

  1. 微信小程序app.js中的全局变量globalData改变,如何通知其它页面界面显示改变,小程序中如何在其他页面中监听到globalData中值的变化

    微信小程序app.js中的全局变量globalData改变,如何通知其它页面界面显示改变,小程序中如何在其他页面中监听到globalData中值的变化 在小程序中,我们一般在app.js的onLaun ...

  2. node.js中公培训笔记大全(讲的一般,小白基础入门)

    day01 本阶段的授课内容为 ES6 2天-3天 NodeJS 2天-3天 express 2天-3天 webpack 1天 MySQL数据库 2天 实战项目 2天 今天的授课内容为 1.ES5-严 ...

  3. nodeJS 中文API node.js 中文文档

    Node.js Manual & Documentation Table Of Contents Synopsis 概要 Global Objects 全局对象 global process ...

  4. node/js 漏洞_6个可用于检查Node.js中漏洞的工具

    node/js 漏洞 Vulnerabilities can exist in all products. The larger your software grows, the greater th ...

  5. node.js中模块_在Node.js中需要模块:您需要知道的一切

    node.js中模块 by Samer Buna 通过Samer Buna 在Node.js中需要模块:您需要知道的一切 (Requiring modules in Node.js: Everythi ...

  6. js 操作vuex数据_Vue.js中使用Vuex实现组件数据共享案例

    当组件中没有关联关系时,需要实现数据的传递共享,可以使用Vuex 先不管图片 一.安装 在vue cli3中创建项目时勾选这个组件就可以了 或者手动安装 npm install store --sav ...

  7. JS中typeof的用法

    转载自  JS中typeof的用法 js是一门弱语言,它在声明变量时无需确定变量的类型,js在运行时会自动判断.那么如何判断一个变量的类型呢,js提供了typeof运算符,用来检测一个变量的类型. 1 ...

  8. node js fork php,Node.js中execFile,spawn,exec和fork简介

    Node.js中execFile,spawn,exec和fork简介 Node.js子流程child_process模块提供四种不同方法执行外部应用: 所有这些都是异步,调用这些方法会返回一个对象,这 ...

  9. Js中Symbol对象

    Js中Symbol对象 ES6引入了一种新的基本数据类型Symbol,表示独一无二的值,最大的用法是用来定义对象的唯一属性名,Symbol()函数会返回symbol类型的值,该类型具有静态属性和静态方 ...

最新文章

  1. 谢文睿:西瓜书 + 南瓜书 吃瓜系列 6. 神经网络
  2. SAP UI5里sap.m.shell的实现
  3. [ZZ] 使用rsync来实现快速删除大量文件
  4. 隐藏该监视器无法显示模式_【春星开讲 | 9137】达芬奇4K调色监看的好伙伴——明基PD2720U专业显示器...
  5. 谷歌(Google Chrome)插件安装
  6. 利用Snapshot快速跨Region迁移服务器
  7. 解决JS文件页面加载时的阻塞
  8. Object.keys()返回对象自身可枚举属性组成的数组
  9. 智能路由器自建服务器,路由器怎么设置服务器_路由器搭建服务器
  10. Domain Adaption1
  11. Antd表单项根据后端返回字段显示错误的校验提示语
  12. Hadoop IO 特性详解(1)【数据完整性】
  13. 美国大学计算机科学专业排名2020,美国大学计算机专业排名2020情况如何?
  14. 两组数据的偏差率_GWT测试报告 篇七十五:隐患难忽视,RIVAL 3 WIRELESS精准度LOD测试...
  15. and true和if都是python语言的保留字_python自学 第三章 python语言基础之保留字、标识符与内置函数...
  16. 计量经济学:多重共线性
  17. SpringMVC +Spring + MyBatis + Mysql + Redis(作为二级缓存) 配置
  18. web学习笔记——一个简单的HTML
  19. 到底死不死我就请了七天假_“你到底死不死啊?我就请了7天假”
  20. C++:上机练习(C++实现)

热门文章

  1. OpenGL研究3.0 多边形区域填充
  2. 第三周作业(一)单元测试
  3. [导入]VB PE导出/输入表演示(读文件版)
  4. 为什么选用NACOS
  5. vue在ie9中的兼容问题
  6. 利用jdk自带的运行监控工具JConsole观察分析Java程序的运行 Jtop
  7. Apache+Tomcat集群负载均衡的两种session处理方式
  8. ADD_SHORTCUT_ACTION
  9. js里的数据类型转换
  10. 基于SpringBoot+Mybatis+Thymeleaf商品信息管理系统