`
yanzhihong23
  • 浏览: 60127 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于JS预解析一道题

 
阅读更多

 

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

分享到:
评论

相关推荐

    前端面试题-手写代码实现

    1. **快手.js**:这可能是一道关于快手App特定功能或技术问题的手写代码实现。例如,可能要求实现一个短视频播放器的控制逻辑,或者是一段处理用户上传图片和视频的代码。也可能涉及到性能优化,如图片懒加载或视频...

    2021-2022计算机二级等级考试试题及答案No.11927.docx

    - **题目解析**:本题考查JavaScript中获取接近指定数字的整数的方法。 - **选项分析**: - A. `round(7.25)` 不是标准方法。 - B. `rnd(7.25)` 不是JavaScript的标准方法。 - C. `Math.round(7.25)` 是...

    暴雪面试题整理

    预防SQL注入的方法包括使用预编译语句(参数化查询)、输入验证、限制数据库权限、避免显示详细的错误信息以及使用最新的安全库和框架。 【进程与线程的区别】 进程是资源分配的基本单位,拥有独立的内存空间,而...

    淘宝校园招聘笔试试题.doc

    这是一道编程题,要求使用Java编写程序统计武侠花名的出处。首先,我们需要读取文本文件,文件中包含了花名及其出处。可以使用Java的`Scanner`类来读取文件,然后使用HashMap来存储每个出处对应的花名数量。伪代码...

    .net面试题.docx

    以下是对一些常见面试题的详细解析: 1. **不使用第三方变量交换a、b的值**: 这是一道常见的编程题,可以使用异或操作来实现: ```csharp a = a ^ b; b = a ^ b; a = a ^ b; ``` 或者使用加减法: ```...

    HTML5移动端答题卡切换代码

    5. **动态内容加载**:通过AJAX技术,可以实现答题卡的动态加载,即加载当前题目的信息,同时预加载下一道题目,提高用户体验。利用`fetch` API或jQuery的`$.ajax()`方法可以实现异步数据请求。 6. **导航控制**:...

Global site tag (gtag.js) - Google Analytics