微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – JS中的半结肠问题

参见英文答案 > When should I use a semicolon after curly braces?8个
我碰巧遇到了以下奇怪的情况:

其中一个网络调用返回了这样的响应:

window.function1 = function() {
  console.log('function 1');
} window.project = 'test';

但是,当对以下脚本进行评估时,它将返回错误

Unexpected Identifier

在function1定义之后添加分号时,此问题得到修复所以正确的修复是:

window.function1 = function() {
  console.log('function 1');
}; window.project = 'test';

我很想知道这背后的原因.

解决方法

window.function1 = function() {
  console.log('function 1');
} window.project = 'test';

js引擎将这整个事件作为一个语句读取,因为它无法为匿名函数赋值找到任何分号,它继续解析只找到window.project =’test,因此它会给你一个错误.

window.function1 = function() {
  console.log('function 1');
}; window.project = 'test';

这里因为你在匿名函数之后有一个分号,js引擎可以弄清楚这些是两个不同的语句.

原文地址:https://www.jb51.cc/js/156971.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐