10.js预解析

就是在代码执行之前,对代码进行通读解释

只解析两个内容:

        (1)对var声明的变量

        (2)声明式函数

(1)对var声明的变量进行提前声明,但不赋值

var x
console.log(x)  //undefined//分别输出几?
var num = 1;
function f1() {num = 2;var num;console.log(num) 
}
function f2() {console.log(num)  
}
f1();
f2();/*通读var numnum=1function f1(){var num   //函数内部num和外部互不影响num=2console.log(num)  //2}function f2(){ console.log(num)  //1}f1();f2();
*/

 (2)声明式函数

        对函数进行提前声明,并且直接赋值为一个函数

// 1.会正常执行吗?
foo(); 
function foo() {console.log("Hello, world!");
}// 2.会抛出错误吗?为什么?
bar();
var bar = function() {console.log("Bar function");
};function outer() {inner();  // 3.这里会怎样?var inner = function() {console.log("Inner function");};
}
outer();

解答:

/*1函数声明会在预解析阶段被提升到作用域顶部正常执行
*//*2var barbar()bar=function(){console.log("Bar function");};会抛出错误因为在执行时bar还没有被定义尽管变量声明会被提升但是函数表达式的赋值不会提升因此在赋值之前调用会失败。
*//*3这里会抛出错误function outer() {var innerinner(); // 此时inner定义未赋值时undefinedinner= function () {console.log("Inner function");};}outer();*/

下一篇:11.作用域及作用域链-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/16006.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【找出第 K 大的异或坐标值】python

4层循环暴力超时 class Solution:def kthLargestValue(self, matrix: List[List[int]], k: int) -> int:nums[]for a in range(len(matrix)):for b in range(len(matrix[0])):num0for i in range(a1):for j in range(b1):num^matrix[i][j]nums.append(num)nums.sort()retu…

web安全渗透测试十大常规项(一):web渗透测试之CSRF跨站请求伪造

渗透测试之CSRF跨站请求伪造 CSRF跨站请求伪造 CSRF跨站请求伪造

类的内存对齐位段位图布隆过滤器哈希切割一致性哈希

文章目录 一、类的内存对齐1.1规则1.2原因 二、位段2.1介绍2.2内存分配问题2.3跨平台问题2.4使用的注意事项 三、位图的应用3.1 给40亿个不重复的无符号整数,找给定的一个数。(int的范围可以到达42亿多)3.2 给定100亿个整数,设计算…

Golang实现文件复制

方法:三种 package zdpgo_fileimport ("errors""io""os" )// CopyFile 使用io.Copy进行文件的复制,同时也会复制文件的所有权限 // param src 复制文件 // param des 目标文件 // return error 错误信息 func CopyFile(s…

2024年弘连网络FIC大会竞赛题线下决赛题

总结: FIC决赛的时候,很多小问题没发现,在pve平台做题确实很方便。 这套题目复盘完,服务器这块的知识确实收获了很多,对pve集群平台和网络拓扑也有了一定的认识,感谢各位大佬悉心指导。 接下来&#xff0…

【FPGA】Verilog:奇校验位生成器的实现(Odd Parity bit generator)

解释奇数奇偶校验位生成器和检查器的仿真结果及过程。 真值表和卡洛图: Odd Parity Bit Generator A B C

怎么在pyqt中显示matplotlib的绘图?

想要在pyqt中显示matplotlib的绘图,在绘图时,其实不必使用以下语句: matplotlib.use("Qt5Agg") # 声明使用QT5最关键的语句是: from matplotlib.backends.backend_qt5agg import FigureCanvasQTAggFigureCanvasQTAgg…

学 Python 具体能干什么?

Python 是一种功能强大、用途广泛的编程语言,因其简洁易读的语法和丰富的库生态系统而备受欢迎。学习 Python后,你可以从事以下几方面的工作: 1. Web 开发 Python 有很多流行的 Web 框架,如: Django:一个…

Android studio的Gradle出问题

Gradle sync failed: Plugin [id: com.android.application, version: 7.1.1, apply: false] was not found in any of the following sources: 在src里面的build.gradle中 plugins { id ‘com.android.application’ } 的上面加上 buildscript {repositories {jcenter()}depen…

从 0 开始实现一个网页聊天室 (小型项目)

实现功能 用户注册和登录好友列表展示会话列表展示: 显示当前正在进行哪些会话 (单聊 / 群聊) , 选中好友列表中的某个好友, 会生成对应的会话实时通信, A给B发送消息, B的聊天界面 / 会话界面能立刻显示新的消息 TODO: 添加好友功能用户头像显示传输图片 / 表情包历史消息搜…

禅道密码正确但是登录异常处理

禅道密码正确,但是登录提示密码错误的异常处理 排查内容 # 1、服务器异常,存储空间、数据库异常 # 2、服务异常,文件丢失等异常问题定位 # 1、df -h 排查服务器存储空间 # 2、根据my.php排查数据库连接是否正常 # 3、修改my.pho,debugtrue…

探索切片索引:列表反转的艺术

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言:列表反转的挑战 二、切片索引的基本概念 三、切片索引实现列表反转 …

程序员副业赚钱的底层逻辑

赚钱就像玩拼图游戏,要懂得把面包屑组装成为一面包 分享一点心得:你会发现赚钱的商机其实就像个拼图游戏,有很多面包屑、很多碎片,真的、假的、有价值的、误导的,都散落在各处。 你需要一一拾取,一一甄别…

gerrit自启动方案—windows服务

在windows系统中,想将gerrit做成开机自启动一般使用两个方法 1.用.bat脚本方法 编写.bat脚本,并将脚本文件生成快捷方式,放置在电脑的启动目录下,电脑开机或重启后,脚本会自动启动 (winR 输入 shell:start…

vs2013使用qt Linguist以及tr不生效问题

一、qt Linguist(语言家)步骤流程 1、创建翻译文件,在qt选项中 2.选择对应所需的语言,得到.ts后缀的翻译文件 3.创建.pro文件,并将.ts配置在.pro文件中 3.使用qt Linguist 打开创建好的以.ts为后缀的翻译文件,按图所示…

细粒度图像分类论文(AAM模型方法)阅读笔记

细粒度图像分类论文阅读笔记 摘要Abstract1. 用于细粒度图像分类的聚合注意力模块1.1 文献摘要1.2 研究背景1.3 本文创新点1.4 计算机视觉中的注意力机制1.5 模型方法1.5.1 聚合注意力模块1.5.2 通道注意力模块通道注意力代码实现 1.5.3 空间注意力模块空间注意力代码实现 1.5.…

Git命令之江湖百晓生

Git 命令大全 第一章:Git 简介 Git 是一个开源的分布式版本控制系统,由 Linus Torvalds 于 2005 年创建,用于有效、高速地处理从小到大的项目。它是一个命令行工具,用于跟踪和管理源代码历史记录。 第二章:Git 的 1…

【软件设计师】面向对象技术

1.面向对象基础 1.1 基本概念 方法重载是函数名字相同,参数列表不同 组成 即组合,指整体与部分的关系,整体与部分生命周期相同 聚合 关联关系的一个特例,是体现整体与部分,即使has-a的关系,此时整体与部分…

C++语言学习(六)—— 类与对象(二)

目录 一、对象数组 二、对象指针 三、this 指针 四、类类型作为参数类型的三种形式 4.1 对象本身作为参数 4.2 对象指针作为参数 4.3 对象引用作为参数 五、静态成员 5.1 静态数据成员 5.2 静态成员函数 六、友元机制 6.1 友元函数 6.2 友元类 七、类的组合 八、…

【LakeHouse】Apache Iceberg + Amoro 助力网易构建云原生湖仓

Apache Iceberg Amoro 助力网易构建云原生湖仓 1.云原生湖仓背景与挑战2.Apache Iceberg 、Amoro 与云原生2.1 Apache Iceberg2.2 Amoro 简介 3.Apache Iceberg Amoro 云原生实践3.1 云上湖仓案例一3.2 云上湖仓案例二3.3 云上湖仓案例三 4.Amoro 未来发展规划 出品社区&…