首页 > 编程语言 >JavaScript—预解析

JavaScript—预解析

时间:2023-09-01 19:33:35浏览次数:31  
标签:console log JavaScript num var 解析

预解析口诀:先声明再调用

JavaScript代码是由浏览器中的JavaScript解析器来执行的。JavaScript解析器在运行JavaScript代码的时候分为两步:预解析代码执行

 

预解析的变量问题
 /*console.log(unknow);*/        // 报错:使用了未定义的变量

        console.log(num);       // undefined
        var num = 0;

 

预解析的函数问题
fn();
        var fn = function () {
            console.log(1);
        }

预解析:js引擎会把js里面所有的var和function提升到当前作用域的最前面。

代码执行:按照代码的书写顺序执行(从上往下)。

预解析分为变量预解析(变量提升)和函数预解析(函数提升)
变量提升就是把所有的变量声明提升到当前的作用域最前面不提升赋值操作。

函数提升就是把所有的函数声明提开到当前作用域的最前面不调用函数。(函数表达式的调用必须写在函数表达式的下面)

变量预解析执行顺序
/*
 console.log(num);       // undefined
        var num = 0;
 */
//(执行顺序)等价于
var num;
        console.log(num);
        num = 0;

 

函数预解析执行顺序
/*
fn();
        var fn = function () {
            console.log(1);
        }
*/
//(执行顺序)等价于
var fn;
        fn = function () {
            console.log(1);
        }

 

标签:console,log,JavaScript,num,var,解析
From: https://www.cnblogs.com/vayenge/p/17468607.html

相关文章

  • JavaScript—简单类型与复杂类型
    简单数据类型的内存分配简单类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型。(简单)值类型:简单数据类型/基本数据类型,在存储时变量中存储的是值本身,因此叫做值类型:string,number,boolean,undefined,null。简单数据类型存放在栈里面查看代码vartimer=null;......
  • fastAdmin api方法解析
    准备工作:1.fastAdmin伪静态设置参考:ThinkPHPURL重写:https://www.kancloud.cn/manual/thinkphp5/177576Nginx:/conf/vhosts/hostname.conf2.FeHelper插件安装参考:Web开发者助手FeHelper:https://www.baidufe.com/fehelper/index/index.html一、api方法解析1.api/controller/Demo.p......
  • JavaScript阶段易踩坑--层级覆盖--var与let使用--事件流(捕获和冒泡)
    刚刚走完JavaScript阶段,感觉挺爽的。但在总结的时候,我发现一些在做网页中容易错的地方,还有一些比较重要的方面。为了避免其他人在这一阶段也遇到这些问题。我今天就着重说一下在JavaScript这一阶段我容易出现的问题,从而让大家在遇到相同问题的时候可以快速解决。一.盒子覆盖问题只......
  • JavaScript中exec()方法详解
    一、RegExp对象的声明及exec()方法的使用声明一个RegExp有两种方式:1)varre=newRegExp(pattern,modifiers);2)varre=/pattern/modifiers;注释:pattern(模式):描述了表达式的模式modifiers(修饰符)用于指定全局匹配、区分大小写的匹配和多行匹配,具体有i、g和m三类,这三类也......
  • 深入解析 Java 抽象工厂模式:创建跨平台图形绘制工具的设计与实现
    深入解析Java抽象工厂模式:创建跨平台图形绘制工具的设计与实现抽象工厂模式(AbstractFactoryPattern)是Java中一种常用的设计模式,它属于创建型模式的一种。该模式提供了一种创建一系列相关或相互依赖对象的接口,而无需指定具体实现类。在本文中,我们将详细介绍抽象工厂模式的概......
  • 光模块知识全解析:网络工程师的必备技能
    在这个信息爆炸的时代,数据传输已经成为我们生活中不可或缺的一部分。而在众多的数据传输方式中,光纤通信以其高速、高带宽、低损耗的特点,成为了现代通信的主流。而在这个光纤通信的背后,有一个神奇的器件在默默地发挥着作用,那就是光模块。那么,光模块究竟是什么呢?它又是如何工作的呢?本......
  • Android并发编程高级面试题汇总(含详细解析 十五)
    Android并发编程高级面试题汇总最全最细面试题讲解持续更新中......
  • 京东API接口解析,实现按关键字搜索商品
    京东开放平台提供了丰富的API接口,用于查询商品、用户、订单等信息。以下是一个基本的示例,解析并实现按关键字搜索商品的API接口。需要访问京东开放平台并注册一个开发者账号。注册完成后,你需要创建一个应用并获取到API的权限。在获取到API权限后,你可以在开发者的控制台中找到API的......
  • LatexEasy | JavaScript集成公式编辑器
    在线示例https://latexeasy.com/en/demo/sdk使用方式基础使用方式<iframeid="liveEditor"frameborder="0"style="width:100%;height:400px;border:0;outline:none;"src="https://latexeasy.com/editor"></if......
  • Java并发编程:volatile关键字解析
    Java并发编程:volatile关键字解析volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是......