前端JS学习笔记——JavaScript预解析

1、什么是JS预解析

JS代码是由浏览器的JS解析器来执行的,JS解析器在执行JS代码的步骤:预解析和代码执行

预解析:JS解析器将JS里面的 var 变量 function 提升到所在作用域的最前面,也就是变量提升函数提升(let声明没有变量提升)

代码执行:从上往下执行代码

2、具体说说预解析

变量提升:把所有的变量声明提升到它的作用域的最前面,注意只提示变量声明,如果该变量已被赋值,那么它的值不会被一起提升

console.log(num); //会输出 undefind
var num = 1;
//经过预解析,上面两行代码相当于以下面的形式执行
//var num
//console.log(num);  此时输出的num并没有值
//num = 1;
//也就是说如果要输出num,那只能把console语句写在var num = 1下面

函数提升:把所有的函数声明提升到它的作用域的最前面,在当前作用域任何地方都能调用该函数

test(2); //这里可以输出2
function test(num) {
	console.log(num);
}
test(3); //这里会输出3

注意:如果是以函数表达式的形式创建函数的话,遵循和变量预解析的规则

相关资源:函数表达式和函数声明有什么区别?

个人学习笔记,如有差误欢迎指正

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值