从一到面试题谈js的运行机制

本文涉及知识点:

1、提升(这里有变量提升和函数提升);

2、js的单线程特性

3、setTimeout函数的执行机制


首先我们来看一下题目,这是一道选择题,有四个选项。



这段代码在具体开始运行的时候,是怎么样呢。(为了语言精确点,我在下面摘抄了《你不知道的JS》中的表述方式。摘抄部分我用引号括起来)

1、提升

(1)Why?(为什么存在提升这么个知识点)

“引擎会在解释JS代码之前首先对其进行编译。编译阶段中的一部分工作就是找到所有的声明,并用合适的作用于将他们关联起来。”

也就是:“包括变量和函数在内的所有声明都会在任何代码被执行前首先被处理”

“比如 var a = 2;

我们执行的时候会以以下形式处理:

var a;

a=2;

所以说,你要知道JS代码在运行的时候,有两个阶段,第一个是编译阶段,会有提升,第二阶段是执行阶段,就是表达式的执行。

(2)What (什么是提升)

源代码

console.log(a); //表达式

var a = 2;//变量声明加赋值

在实际处理的过程是:

var a; //变量提升

console.log(a);//其他的表达式按顺序</

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值