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课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案...
根据给定的信息,我们将深入分析并提取出与JavaScript面试题相关的知识点。 ### 一、单选题 #### 1. 以下哪条语句会产生运行错误: - **选项A**: `var obj = ();` - **解析**:在JavaScript中,括号`()`通常用于...
预解析的的不同机制 预解析也叫预声明,是提前解析声明的意思;预解析是针对变量和函数来说的;但是变量和function的的预解析是两套不同的机制; 当浏览器加载我们的HTML页面的时候,首先会提供一个供JS代码执行的...
JavaScript具有"预解析"(也称为"提升")这一特殊的特性,这使得在代码执行前,解释器会先进行一次扫描,处理变量声明和函数声明。理解预解析对于编写有效的、无错误的JavaScript代码至关重要。 首先,预解析不会...
本压缩包文件“js2阶段的js第一章课后习题答案”是针对JavaScript学习者的一个资源,特别是那些正在进行js2阶段学习的学员。这个章节通常涵盖JavaScript的基础概念,包括语法、变量、数据类型、操作符、流程控制以及...
预解析:在当前作用域下,js运行之前,会把带有var和function关键字声明的变量先声明,并在内存中安排好。然后从上至下解析js语句。而且function的声明优先于var声明。 不多说,,直接上代码 正规写法: var num=10;...
当你在页面需要预加载的时候可以使用本页面,还可以在本页面放一些广告或者笑话打发时间的同时给浏览者深刻的影响。
本文将深入探讨“图片预加载js”这一主题,包括预加载的原理、实现方式以及如何使用JavaScript来优化这个过程。 一、图片预加载的原理 图片预加载是指在用户实际看到图片之前,提前将图片数据加载到浏览器的缓存中...
本项目"**H5+canvas+js实现连线题**"就是利用这些技术来创建一种互动式的在线连线题目,这在教育、测试或游戏场景中非常实用。 连线题是一种常见的认知测试形式,通常要求用户将两个相关的项目通过线条连接起来。在...
Vue.js是一种渐进式JavaScript框架,主要用于构建用户界面。它是由尤雨溪创建,并且是目前前端开发中非常流行的技术之一。Vue.js的面试题涉及到多个方面,包括路由管理、状态管理、组件通信、指令使用等,这些都是...
Javascript考试题目选择题 本资源提供了15道Javascript考试题目选择题,涵盖了Javascript的基本语法、特性、循环语句、判断语句、事件、变量、函数、字符串操作、日期操作、DOM操作等知识点。 1. 写"Hello World...
为了提高 JavaScript 的性能,需要遵循严格模式、将 js 脚本放在页面底部、将 js 脚本将脚本成组打包、使用非阻塞方式下载 js 脚本、尽量使用局部变量来保存全局变量、尽量减少使用闭包、使用 window 对象属性方法时...
JS预解释是JavaScript语言的一个重要特性,它涉及到变量和函数在代码执行前的声明和定义过程。理解JS预解释对编写正确和高效的JavaScript代码至关重要。以下是对JS预解释相关知识点的详细解读。 1. JS内存空间: ...
猿人学js逆向第二题完整补环境js文件
本资源是关于JavaScript的练习题集,涵盖了多种题型,包括单选题、多选题、判断题、填空题、阅读题、问答题和设计题。下面将对这些题型进行详细解释和分析。 单选题 1. JavaScript 中,以下哪条语句一定会产生运行...
开发者可以通过阅读这些源码来了解C#如何实现JavaScript引擎的核心功能,包括词法分析、语法解析、抽象语法树(AST)的构建以及代码的执行。 6. **Tests**:测试目录,通常包含单元测试或集成测试,用于验证Noesis....
js--预编译顺序和原理 | js--预编译顺序和原理 | js--预编译顺序和原理 | js--预编译顺序和原理 | js--预编译顺序和原理 | js--预编译顺序和原理 | js--预编译顺序和原理
【标题】"JS在线答题选择结果代码.zip"中包含的是一个使用JavaScript实现的在线选择题答题系统的基础代码。JavaScript,通常简称为JS,是一种广泛应用于客户端网页开发的脚本语言,能够实现动态交互效果,无需刷新...
本文将深入探讨如何使用JavaScript在浏览器端解析和读取Excel文件,主要基于开源库`js-xlsx`。 `js-xlsx`是一个强大的JavaScript库,专门用于解析和操作Excel文件(.xlsx和.xls格式)。它支持读取二进制文件、Base...