var foo = 1
(function foo () {})()
为什么会报错啊?这个不是函数表达式嘛?函数表达式难道也会提升吗?求解,谢谢大佬们 ~
var foo = 1
(function foo () {})()
为什么会报错啊?这个不是函数表达式嘛?函数表达式难道也会提升吗?求解,谢谢大佬们 ~
9 回答9.4k 阅读
6 回答5.1k 阅读✓ 已解决
5 回答3.6k 阅读✓ 已解决
4 回答8k 阅读✓ 已解决
7 回答10k 阅读
5 回答7.4k 阅读✓ 已解决
5 回答8.3k 阅读
1 后面没有跟
;
,在解析的时候会变成下面这样报错
1 is not a function
一般无分号党都会知道一个基本规则,就是在
([/+-
这些符号作为一行开头的时候,会在前面加一个;
写成下面这样就是为避免这种错误
这里面涉及到 js 的 ASI 机制,看后面的参考文章
参考文章
JavaScript ASI 机制详解
JS魔法堂:ASI(自动分号插入机制)和前置分号
彻底放弃javascript句尾分号是怎样的一种体验?
JavaScript 语句后应该加分号么?
如何看待现在TC39委员会推荐JS语句末尾写分号?