预解析相关

预解析

  在js代码执行之前,js会对代码进行解析,解析时js会从所有代码中找变量和函数的定义,找到后将变量和函数的定义提升到所有代码的最前面。

1,对var关键字:

        会把var关键字和变量名提前到当前作用域的最前面,这个时候不赋值。

2,对声明式函数:

        会把函数名提前到当前作用域的最前面,并同时赋值为一个函数。

注意:赋值式函数按照var的预解析进行解析。

使用:在下面定义函数,在上面调用函数。

重名问题

1,变量名和变量名重名:以第一个为准,后面定义的没有意义。

2,函数名和函数名重名:以后面的函数为准,也就是后面定义的会把前面定义的覆盖掉。

3,变量名和函数名重名:以函数名为准。

特殊情况

1,如果if条件为假,不执行大括号后面的代码,但是不影响预解析。

2,return后面的代码是不执行的,但是会预解析。

3,预解析会提升定义,不会提升赋值。

4,函数只提升声明式函数,不提升赋值式函数。

5,函数的作用域内也会有预解析。

6,预解析时函数和变量名同名了,会将函数提升,忽略变量的定义

以上为个人总结,如有错误还望指正!谢谢!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宇夜刃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值