当我在Javascript中尝试一些fundemantels时,我遇到了一个让我感到惊讶的问题,我无法找到答案。 我得到了以下,这是完美的:
var obj= new Object ();
obj.test = "Hello"
obj.testTwo= function (){
console.log(this.test)
},obj.testTwo();
当我在没有逗号的情况下尝试它时,它不起作用。
var obj= new Object ();
obj.test = "Hello"
obj.testTwo= function (){
console.log(this.test)
}obj.testTwo();
所以我尝试了这个作为第三种选择......它有效吗?
var obj= new Object ();
obj.test = "Hello"
obj.testTwo= function (){
console.log(this.test)
}
obj.testTwo();
现在我很安静。为什么要使用逗号?为什么它会中断?
答案 0 :(得分:3)
答案 1 :(得分:2)
在第一个代码段中,逗号运算符在记录时履行其职责:“evaluates both of its operands (from left to right) and returns the value of the second operand.
”MDN。
基本上你的第二个片段是作业。分配应始终以分号结束,即使它们的最后一个表达式是一个语句块。但是,这对ASI来说并不明显。因此,在代码块和对象方法调用之间没有分号或换行符的情况下,此代码段失败,其中解释器期望查看运算符或终止赋值。如果未找到这些,则会引发Unexpected token
错误。同样的解释代表了第三个片段的工作原理。
答案 2 :(得分:0)
逗号运算符计算它的两个操作数(从左到右)并返回第二个操作数的值。
因此,它会评估您的代码。但是当你把它们组合在一起时就不会这样了。
阅读more ...
示例:
和你做的时候一样
var a = 10, b = 40;
答案 3 :(得分:0)
换行符(\n
或\r\n
)和逗号(,
)充当语句分隔符。