js_ 预解析(js代码如何执行的)

1、要理解js代码是如何执行的

  js代码是由  浏览器的 js解析引擎  来执行的,js代码执行(从上往下)之前要先预解析

  js代码执行  :  同步、异步   (异步要等同步代码都执行完后再执行:异步的代码放在栈中等待同步代码从上往下全部执行完成之后再执行)

  预解析  :作用

    

    注意:定义函数中的 用函数表达式方式里只存在变量名提升,没有匿名函数提升

    1、变量提升

    

    2、函数提升

    

    案例1:

    

    案例2:

    

    案例3:

    

    

原文地址:https://www.cnblogs.com/yangyutian/p/10805296.html

时间: 2024-10-04 04:05:43

js_ 预解析(js代码如何执行的)的相关文章

如何撤销浏览器注入JS代码的执行效果?

如何撤销浏览器注入JS代码的执行效果? 可用的方法: 放弃所有本地修改,整体重新reload当前的URL(这相当于大粒度的savepoint/snapshot,应确保用户数据/视图状态能够按期望恢复) 内核实现immutable的DOM树,对DOM树的每个修改均产生一个新的版本快照,修改可以直接回退,比如提供一个document.revertTo方法 immutable数据结构上实现MVCC事务,事务本身的执行是原子的,但是并没有考虑用户如何手工反转事务 实现细粒度的对应每个业务逻辑层次写操作的

js的预解析和代码执行相关规则

JavaScript解析过程分为两个阶段,一个是编译阶段,另外一个就是执行阶段. 1.编译阶段:又称为预解析阶段,在这个阶段JavaScript解释器将完成把JavaScript脚本代码转换到字节码. 2.执行阶段:在执行阶段JavaScript解释器借助执行环境把字节码生成机械码,并顺序执行. 在未定义和函数中,会选择函数,跟代码顺序没有关系 学习博客:http://www.cnblogs.com/HPNiuYear/archive/2012/08/27/2657879.html

小白学js第六天之代码规范,作用域以及预解析

目录 代码规范 命名规范 变量规范 注释规范 空格规范 换行规范 作用域 全局变量 局部变量 块级作用域 作用域链 预解析 什么是预解析 变量提升 此篇木有脑图,嘻嘻 代码规范 命名规范 变量.函数的命名必须要有意义 变量一般用名词 函数一般用动词 变量规范 操作符前后要有空格 var name = 'zs'; 注释规范 // 这里是注释 空格规范 if (true) { } for(var i = 0; i < n; i++ ) { } 换行规范 var arr = [1, 2, 3, 4];

JS预解析与变量提升

预解析 JavaScript代码的执行是由浏览器中的JavaScript解析器来执行的.JavaScript解析器执行JavaScript代码的时候,分为两个过程:预解析过程和代码执行过程 预解析过程: 把变量的声明提升到当前作用域的最前面,只会提升声明,不会提升赋值. 把函数的声明提升到当前作用域的最前面,只会提升声明,不会提升调用. 先提升var,在提升function. JavaScript的执行过程 // 案例1 var a = 25; function abc() { alert(a)

JS(数据类型、预解析、闭包、作用域、this)

1.数据类型的区别 基本数据类型:number.string.boolean.null.undefined 引用数据类型: 1-1:对象数据类型:Object.Array.Date.Regexp.String.Boolean等 1-2:函数数据类型function2.预解析(变量提升) 在当前作用域中.JS从上到下执行.首先把带var和function关键字的进行声明和定义 2-1:声明(declare):var num = 12; 在预解释状态为 var num = undefined; 2-

JS解析+预解析相关总结

[js预解析机制]先来说说js的解析机制吧,浏览器在解析js代码时是从上到下解析的.解析顺序如:(1)预解析    找var和function (2)逐行代码解析    表达式    函数调用    fn1()函数内部再发生{    (1)预解析    (2)逐行代码解析} 解析:由子级到父级寻找变量,称作用域链 如:函数参数,为局部变量 <script type="text/javascript"> var a=1; function fn1(a){//把a作为参数传进来

JavaScript预解析

1 预解析 1.1 预解析的基本步骤 在JS引擎执行JS代码会分成三个步骤进行解析代码: 第一步:JS引擎先将JS代码整体按照JS语言的规则进行分词,也就是JS代码的词法分析. 第二步:然后JS引擎浏览JS代码,并对代码进行语法分析,这里只关注代码中变量的声明和函数的声明,这第二步也就叫预解析. 第三步:从上往下,从左到右的执行代码. 第一和第二步都是在执行代码前JS引擎内部执行的过程,尤其是第二步预解析的过程对JS代码的执行顺序有着极其重要的影响. 而对于变量的声明和函数的声明,这两种声明在执

进击JavaScript核心 --- (2)函数和预解析机制

一.函数 每个函数都是 Function类型的实例,也具有属性和方法.由于函数也是一个对象,因此函数名实际上也是一个指向函数对象的指针,不会与某个函数绑定 1.函数的定义方式 (1).函数声明 function add(a, b) { return a + b; } 函数声明提升:在执行代码之前,会先读取函数声明,也就是说,可以把函数声明放在调用它的代码之后 fn(); // 1 function fn() {console.log(1)} (2).函数表达式 var add = functio

函数和变量中的预解析

1.js引擎运行 js 分为两步,预解析   代码执行 (1)预解析 js 引擎会把 js 里面的所有的 var 还有 function 提升到当前作用域的最前面 (2)代码执行 按照代码书写的顺序 从上往下执行 2.预解析分为 变量预解析(变量提升) 和 函数预解析 (函数提升) (1)变量提升 就是把所有的变量声明提升到当前的作用域最前面   不提升赋值操作 (2)函数提升  就是把所有的函数声明提升到当前作用域的最前面  不调用函数 案例1:(变量提升) console.log(num);