资讯专栏INFORMATION COLUMN

JS中的作用域(浏览器解析JS的过程)

妤锋シ / 2310人阅读

摘要:一预解析找一些东西参数找要干活的东西变量在正式运行之前,都赋值为未定义函数在运行之前,取整个函数二逐行解读表达式参数都可以赋值遇到重名的,只留下一个变量和函数重名,只留下函数函数调用函数是一个作用域,遇到作用域都会按照先进行预解析,然

一、预解析

找一些东西:var function 参数(找要干活的东西)
变量var 在正式运行之前,都赋值为未定义
function 函数在运行之前,取整个函数

二、逐行解读

表达式=、+、-、*、/、++、--、!、%.....number()、参数都可以赋值
①遇到重名的,只留下一个
变量和函数重名,只留下函数
②函数调用(函数是一个作用域,遇到作用域都会按照先进行预解析,然后逐行解读的过程执行)
先局部找参数,局部找不到就向上一级找(作用域链)

例1:

解析过程:
1)预解析:

第9行:没操作
第10行:a为未定义
第11行:没操作
第12行:a为function a(){ alert(2);}
第13行:没操作
第14行:a为function a(){ alert(2);}
第15行:没操作
第16行:a为function a(){ alert(4);}
第17行:没操作

2)逐行解读:

第9行:弹出function a(){ alert(4);}
第10行:赋值操作 a=1;
第11行:弹出1
第12行:没操作
第13行:弹出1
第14行:a=3
第15行:弹出3
第16行:没操作
第17行:弹出3

例2:


执行结果:未定义,1;

1)预解析

a未定义
函数

2) 逐行解读:

a=1;   
函数调用:1)预解析:遇到var 局部变量a为未定义
          2)逐行解读:弹出未定义
                      局部a赋值为2  
弹出全局变量a,值为1  

例3:

结果:1,2

例4:

 

结果:未定义,1

例5:

    

结果:1,1

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/87852.html

相关文章

  • JS高级入门教程

    摘要:解析首先简称是由欧洲计算机制造商协会制定的标准化脚本程序设计语言。级在年月份成为的提议,由核心与两个模块组成。通过引入统一方式载入和保存文档和文档验证方法对进行进一步扩展。其中表示的标记位正好是低三位都是。但提案被拒绝了。 JS高级入门教程 目录 本文章定位及介绍 JavaScript与ECMAScript的关系 DOM的本质及DOM级介绍 JS代码特性 基本类型与引用类型 JS的垃...

    zsy888 评论0 收藏0
  • You-Dont-Know-JS - 词法作用

    摘要:原文原文原文词法作用域作用域有两种常见的模型,一种叫做词法作用域,一种叫做动态作用域。其中词法作用域更常见,被大多数语言采用,包括。值得注意的是,一个函数作用域只有可能存在于一个父级作用域中,不会同时存在两个父级作用域。 原文: 原文1 | 原文2 Lexical Scope - 词法作用域 作用域有两种常见的模型,一种叫做 词法作用域 Lexical Scope,一种叫做...

    bang590 评论0 收藏0
  • 深入贯彻闭包思想,全面理解JS闭包形成过程

    摘要:下面我们就罗列闭包的几个常见问题,从回答问题的角度来理解和定义你们心中的闭包。函数可以通过作用域链相互关联起来,函数内部的变量可以保存在其他函数作用域内,这种特性在计算机科学文献中称为闭包。 写这篇文章之前,我对闭包的概念及原理模糊不清,一直以来都是以通俗的外层函数包裹内层....来欺骗自己。并没有说这种说法的对与错,我只是不想拥有从众心理或者也可以说如果我们说出更好更低层的东西,逼格...

    snowell 评论0 收藏0
  • 览器如何解析html、css、js

    摘要:全局变量局部变量全局函数一段也是一块域。此时打印的自然是,要记住相当于,所以这时候改变的是局部变量,并没有影响到全局变量,所以第二次打印的依然是。 在熟悉了浏览器的工作原理之后,今天我们来讲讲浏览器在从服务器获取到网页文件之后是如何解析的。了解了这个基础知识,对敲出来的代码,质量会有不小的提升。 一、浏览器如何解析html html文件在没有写入html标签之前和txt文本是一个性质的...

    Awbeci 评论0 收藏0
  • 览器如何解析html、css、js

    摘要:全局变量局部变量全局函数一段也是一块域。此时打印的自然是,要记住相当于,所以这时候改变的是局部变量,并没有影响到全局变量,所以第二次打印的依然是。 在熟悉了浏览器的工作原理之后,今天我们来讲讲浏览器在从服务器获取到网页文件之后是如何解析的。了解了这个基础知识,对敲出来的代码,质量会有不小的提升。 一、浏览器如何解析html html文件在没有写入html标签之前和txt文本是一个性质的...

    Panda 评论0 收藏0

发表评论

0条评论

妤锋シ

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<