为了账号安全,请及时绑定邮箱和手机立即绑定

初学es6有一些 babel 转换的疑问

初学es6有一些 babel 转换的疑问

收到一只叮咚 2019-03-15 18:14:22
本来在浏览器(Chrome 65)里直接运行会报ReferenceError错误,但是经过babel转换后,再运行,就会是undefined,这两种错误完全不一样,是说babel转换的不完全么?转换后
查看完整描述

3 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

转换后变量名都不一样了,一个是tmp,一个是_tmp。并且是var定义的,变量提升,打印_tmp就是undefined


查看完整回答
反对 回复 2019-03-23
?
HUWWW

TA贡献1874条经验 获得超12个赞

因为它优先对let进行转换了(这就是为什么很多时候要对代码严谨(比如使用'use strict'),你不可以先赋值,再声明。),导致if区块内那个tmp其实是个新的变量,而且相对于es6报错,es5不会对不声明的东西报错,只会说它undefined


查看完整回答
反对 回复 2019-03-23
  • 3 回答
  • 0 关注
  • 593 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信