JS中的Semi-Colon问题
Semi Colon Issue in JS
我碰巧遇到了以下奇怪的情况:
其中一个网络呼叫返回如下响应:
window.function1 = function() {
console.log('function 1');
} window.project = 'test';
但是当下面的脚本被评估时,它返回了一个错误
意外标识符
当在函数1定义后添加semi-colon
时,此问题得到了解决。因此,正确的解决方案是:
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引擎可以计算出这是两个不同的语句。
在Javascript中,如果语句后面有换行符,则可以省略分号。
这里有两个语句在同一行,所以第一个分号是必须的。
但你可以写这样的东西:
window.function1 = function() {
console.log('function 1');
}; window.project = 'test'
(不带最后一个分号)
更多详细信息请点击此处:https://www.codecademy.com/forum_questions/507f6dd09266b70200000d7e
function1
是一个变量,它似乎不会在window.project
之前结束;CCD_ 5将两个变量解释为CCD_。可以在function1
声明后添加逗号,
运算符,以避免两个变量function1
、project
之间的语法错误
window.function1 = function() {
console.log('function 1');
}, window.project = 'test';
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 将PHP变量传递给jQuery时遇到问题
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 参数变量出现ngTable指令问题
- 剑道网格jQuery动画()问题
- 我的jQuery插件参数没有正确启动,遇到了问题
- Phonegap-(安卓/iphone)多个图像的图像库出现问题
- TableExport jquery插件:文件名和扩展名问题
- JavaScript Pub/Sub属性访问问题
- JavaScript异步问题
- 如何解决Yii中的页面刷新问题
- Safari(Mac OS)上的jQuery平滑滚动问题
- jqGrid树网格问题
- 使用正则表达式评估电子邮件地址时出现性能问题
- 如何消除代码中的未定义和其他问题
- JavaScript代码问题:我正在将对象转换为数组
- 三星智能电视应用程序;Brightcove示例应用程序远程控制问题
- 由于iframe导致的问题
- ReactJS和SpringDataRest缓存问题可能与websocket有关
- JS中的Semi-Colon问题