当前位置:首页 > 日记 > 正文

浏览器中javascript解析器的工作原理分析

浏览器中javascript解析器的工作原理分析
当浏览器读取HTML文件时,它只会唤醒所谓的Javascript解析器,在遇到标签时才开始工作。

Javascript分析器工作步骤:

1。发现的东西:VaR,功能,参数;(也叫preparsing)

注:如果名称分为以下两种情况:

满足相同的变量和函数,只保留函数
相同的满足函数,根据顺序码的上下文,离开最后一个。
2。逐行读代码。

注意:表达式可以修改预解析的值。

当第一步是preresolved,JS解析器将搜索从代码开始,直到最后,才发现VaR函数和参数。第一步是通常被称为Javascript的preparsing。此外,当这些内容被发现,所有的变量都被分配一个值提前运行前。它们没有定义。在运行代码之前,所有函数都是整个函数块。

实例分析:

例1:

文件

警报(a);

当运行此代码时,浏览器会出错。

原因:因为Javascript解析器在解析JS代码时没有发现任何var、函数、参数等,所以当一行一行执行代码时,因为A在仓库中找不到,A就错了。

例二:

文件

警报(a);
var a=1;

当运行此代码时,浏览器将弹出未定义。

原因:因为Javascript解析器在解析JS代码时,找到var关键字,然后有一个变量A,所以默认赋值会给仓库中存储一个未定义的值,所以当单步执行代码时,找到变量A,因为值是未定义的,所以POP的值未定义。

例三:

文件

var a=1;
警报(a);
当运行此代码时,浏览器将弹出数字1。

原因:因为在解析JS代码的Javascript解析器,找到var关键字,然后有一个变量,所以默认分配给一个仓库中的一个未定义的值,逐句通过代码,首先找到变量a的值是未定义的,当实现了var a = 1这行代码,有一个新的任务1,流行的价值是多少1。

例四:

文件

警报(a);
var a = 1;
警报(a);
函数A(){
警报(2);
}
警报(a);
var a=3;
警报(a);
函数A(){
警报(4);
}
警报(a);
在运行此代码之后,弹出值的顺序是:函数A(){警报(4);},1, 1, 3,3。

原因:因为在渐进解析代码的Javascript解析器,先找到var关键字,然后有一个变量,所以默认分配给一个未定义的值存储在仓库中,然后再往下分析代码,功能({ alert)时,发现(2);},并根据功能变数名称,保留该规则的功能,一个是功能({ alert)(2);},继续往下看,同时发现当变,依然低着头,当功能函数({ alert)发现(4);},根据同样的原理更换背景的功能,功能({ alert)(4);},最后一个被分配到功能({ alert)(4);},存入仓库,在逐句通过代码,执行第一个警报(一)、功能({ alert)会弹出(4);},然后向下移动,当执行一个= 1and因为表达可以改变预分析的价值,所以一变为1,执行到第二个警报(一),流行的值是1,当功能一个({ alert)实施(2);},因为这个时间是一个函数声明,并不会改变一个值,所以执行第三报警(一),流行的仍然是在转1号,然后会弹出3和3。

以上是本文的全部内容,希望本文的内容能给大家的学习或工作带来一定的帮助,同时也希望能给予更多的支持!

相关文章

javascript中捕获异常捕获机制的使用分析

javascript中捕获异常捕获机制的使用分析

机制,捕获异常,电脑软件,javascript,本文演示了Javascript中试用捕获异常捕获机制的用法,供您参考,如下所示: 1、喜欢java,Javascript也有尝试的异常捕获机制catch块。 (1)一个典型的catch语句 尝试{ } 抓住{ } 最后{ } 像java,最典型的try-catch语句的JS也…

如何5.7.17MySQL的密码忘了

如何5.7.17MySQL的密码忘了

密码,电脑软件,MySQL,1。添加跳过授权表到my.ini文件并重新启动MySQL服务器 2。由管理员输入cmd,或与数据库管理工具,我用Navicat连接数据库,在这里 连接名是随意填写的,密码是空的,单击是确定的。 3、双击mysql数据库,单击菜单栏查询,新建查询 …

PS图象处理软件简单地绘制一个空心

PS图象处理软件简单地绘制一个空心

绘制,图象,处理软件,简单,电脑软件,当使用PS图象处理软件操作,你要使用PS图象处理软件画一个空心的圆。你是怎么画的Here is an example of the use of Photoshop to explain the use of hollow circle method, come together to see it! …

使用Oracle导出和导入来自Oracle数

使用Oracle导出和导入来自Oracle数

数据,数据库,电脑软件,Oracle,本文的示例是让您共享使用Oracle导出和导入Oracle数据库中的数据以供参考的方法。 1。出口数据: 模式1:工具>导出用户对象>导出SQL文件 注意:这是导出语句和存储过程语句的一种方式。 方式二:工具>导出表 注意:这…

ppt如何使用公式编辑器输入公式图

ppt如何使用公式编辑器输入公式图

教程,公式编辑器,输入,如何使用,公式,为了方便公式的输入,PPT制作时通常使用公式编辑器,新手则不做。让我们告诉你如何使用PPT编辑器输入公式。 ppt编辑器输入公式的方法 1。安装公式编辑器 在控制面板中输入添加或删除程序窗口;在找到安装…

在Javascript中,定时控制油门,消抖,立即

在Javascript中,定时控制油门,消抖,立即

控制,油门,电脑软件,Javascript,消抖,前言 我们称这些行为事件(事件),和响应的回调函数(回调)。事件的连续流动称为事件流(事件流)。这些行为的速度没有手动控制,但我们可以控制何时以及如何激活正确的响应,也有一些技术,为我们提供了精确的控制。 …

PS图象处理软件路径添加弧平滑光

PS图象处理软件路径添加弧平滑光

平滑,路径,图象,处理软件,电脑软件,先看一下原始地图。 设计素描 uff1a 创建PS图象处理软件的一个新图层,然后使用钢笔工具画一个曲线,根据背景。 (记住钢笔是在路径模式下工作的,而不是形状工具模式)。 然后一些细微的笔刷,选择白色,当StrokePat…

MySQL的安装提示,请键入nethelpmsg3

MySQL的安装提示,请键入nethelpmsg3

安装,提示,更多,电脑软件,MySQL,今天安装MySQL会提示以下错误: 我在网上找到了很多时间。 所以最终的解决方案是: 在bin目录下输入指令:mysqld -初始化 如下图所示: 以上是本文的全部内容,希望能对您有所帮助,希望大家多多支持。…

HTML5拖放效果的实现代码

HTML5拖放效果的实现代码

拖放,效果,代码,电脑软件,拖放 拖放是一个常见的特性,在对象被抓取后被拖到另一个位置。 在HTML5中,拖放是标准的一部分,任何元素都可以拖放。 Internet Explorer 9 +,Firefox,Opera,Chrome和Safari支持拖动。 注:Safari 5.1.2不支持拖动。 例子: …

利用oracle字符函数检测汉字的方法

利用oracle字符函数检测汉字的方法

字符函数,方法,检测,汉字,电脑软件,-验证汉字是否包含汉字。 创建测试表(一个VARCHAR2(10)); 插入测试值(‘'); 插入测试值(‘深刻'); 插入测试值('AAA'); 插入测试值({BBB}); 插入测试值(b鸟BB); 从测试中选择*; 全宽度,ASCII值范围是 uff00 - UFFFF 选择一…

展示2008张奥运门票照片

展示2008张奥运门票照片

照片,门票,奥运,电脑软件,到北京来工作很好,只要敢参加今年的奥运会,还买了一张奥运会入场券。举重比赛于8月10日上午10点在航空航天大学举行。 图片:北京奥运会门票公布工作人员公布其照片:北京奥运会门票门票公布五种家庭肖像 图片:北京奥运会…

PS图象处理软件教程:黑暗的景观色彩

PS图象处理软件教程:黑暗的景观色彩

图象处理,软件教程,景观,黑暗,色彩,今天有一门课,你要处理灰色和黑色的风景画。 灰度图像处理比较麻烦,颜色时间不能一步到位,需要用大量的层叠加来完成。首先是颜色和光色,然后微调脚本。当然,还可以添加合适的材料来装饰它! 原 最终效果 1…