var i=10; var j=3; function a() { console.log(i);//undefined console.log(j);//3 var i = 2; console.log(i);//2 }; a();
原来JS在执行过程之前,会对【var】和【function】定义做“预解析”。
解析引擎以块为单位级别,执行所有Var变量的创建,并赋予一个初始值undefined。
当a执行时,它的执行环境中有i的声明,所以不会使用作用域链上的全局变量i——这个i是初始化了,但是不用它。当运行第一个console.log(i)时,i么有初始化,故为undefined。
Refer: Jessica's Blog
相关推荐
### JavaScript上机实验题知识点概览 #### 一、JavaScript表达式和逻辑控制语句的使用 ##### 实验目的 1. **理解变量**: 学习如何声明变量、初始化变量及变量的作用范围。 2. **数据类型掌握**: 包括基本数据类型...
根据给定的信息,我们将深入分析并提取出与JavaScript面试题相关的知识点。 ### 一、单选题 #### 1. 以下哪条语句会产生运行错误: - **选项A**: `var obj = ();` - **解析**:在JavaScript中,括号`()`通常用于...
预解析的的不同机制 预解析也叫预声明,是提前解析声明的意思;预解析是针对变量和函数来说的;但是变量和function的的预解析是两套不同的机制; 当浏览器加载我们的HTML页面的时候,首先会提供一个供JS代码执行的...
JavaScript具有"预解析"(也称为"提升")这一特殊的特性,这使得在代码执行前,解释器会先进行一次扫描,处理变量声明和函数声明。理解预解析对于编写有效的、无错误的JavaScript代码至关重要。 首先,预解析不会...
本示例"在线考试连线题 js demo"显然是一个用JavaScript编写的用于创建连线题的演示项目。 JavaScript是网页开发中的主要脚本语言,负责处理页面的动态行为。在本demo中,JavaScript将用于创建交互式的连线界面,...
本压缩包文件“js2阶段的js第一章课后习题答案”是针对JavaScript学习者的一个资源,特别是那些正在进行js2阶段学习的学员。这个章节通常涵盖JavaScript的基础概念,包括语法、变量、数据类型、操作符、流程控制以及...
json3.js 【JS / JavaScript 中解析JSON的js包,JSON官方的JSON解析包】。JavaScript中解析JSON的js包,页面中引入json3.js,即可使用。 使用方法:JSON.parse(str), JSON.stringify(obj) 更多详情请参考博文: ...
当你在页面需要预加载的时候可以使用本页面,还可以在本页面放一些广告或者笑话打发时间的同时给浏览者深刻的影响。
JavaScript 面试题知识点总结 JavaScript 面试题是前端开发领域中常见的面试题,涵盖了 JavaScript 基础、Web 前端开发等方面的知识点。本文将对 JavaScript 面试题的知识点进行总结,包括 Object.create、...
本项目"**H5+canvas+js实现连线题**"就是利用这些技术来创建一种互动式的在线连线题目,这在教育、测试或游戏场景中非常实用。 连线题是一种常见的认知测试形式,通常要求用户将两个相关的项目通过线条连接起来。在...
资源为js文件,下载后直接用script标签引入,需要解析时调用该js第一个方法,参数为cron定时器表达式字符串,例如:translateCRONToChinese("0 0 12 */1 * ?");
练完这100题,随便找个月入1W工作不闹着玩?
为了提高 JavaScript 的性能,需要遵循严格模式、将 js 脚本放在页面底部、将 js 脚本将脚本成组打包、使用非阻塞方式下载 js 脚本、尽量使用局部变量来保存全局变量、尽量减少使用闭包、使用 window 对象属性方法时...
JS预解释是JavaScript语言的一个重要特性,它涉及到变量和函数在代码执行前的声明和定义过程。理解JS预解释对编写正确和高效的JavaScript代码至关重要。以下是对JS预解释相关知识点的详细解读。 1. JS内存空间: ...
猿人学js逆向第二题完整补环境js文件
1,引入二维码解析的js插件llqrcode.js 2,解析的图片,这里采取的是上传图片解析(可以采用扫一扫输出的图片解析) //获取图片路径 let getObjectURL = function(file){ let url = null ; if (window....
预解析是 JavaScript 中的一个重要概念,它指的是在 JavaScript 文件或 script 标签中的代码在正式开始执行之前,进行的一些解析工作。这个工作很简单,就是在全局中寻找 var 关键字声明的变量和通过 function ...
js--预编译顺序和原理 | js--预编译顺序和原理 | js--预编译顺序和原理 | js--预编译顺序和原理 | js--预编译顺序和原理 | js--预编译顺序和原理 | js--预编译顺序和原理
了解并掌握预解析的工作原理对于编写高质量和高效的JavaScript代码至关重要。本文将详细探讨script标签中的预解析机制,以及其在实际开发中对代码执行行为的影响。 首先,预解析是指浏览器在执行JavaScript代码之前...