Javascript定义对象,逗号大小写
当我用Javascript尝试一些FundeMantel时,我遇到了一个令我吃惊的问题,我找不到答案。 我得到了以下结果,效果非常好:Javascript定义对象,逗号大小写,javascript,object,Javascript,Object,当我用Javascript尝试一些FundeMantel时,我遇到了一个令我吃惊的问题,我找不到答案。 我得到了以下结果,效果非常好: var obj= new Object (); obj.test = "Hello" obj.testTwo= function (){ console.log(this.test) },obj.testTwo(); 当我尝试不使用逗号时,它不起作用 var obj= new Object (); obj.t
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();
现在我很困惑。为什么要使用逗号以及它为什么与中断符一起工作?逗号运算符计算其两个操作数(从左到右)并返回第二个操作数的值 因此,它会计算两个代码。但当你把它们放在一起的时候,就没有了 读 例如: 这和你做的时候一样
var a = 10, b = 40;
逗号运算符计算其两个操作数(从左到右)并返回第二个操作数的值 因此,它会计算两个代码。但当你把它们放在一起的时候,就没有了 读 例如: 这和你做的时候一样
var a = 10, b = 40;
您看到的是逗号运算符的作用 您看到的是逗号运算符的作用 新行(
\n
或\r\n
)和逗号(,
)充当语句分隔符。新行(\n
或\r\n
)和逗号(,
)充当语句分隔符。在第一个代码段中,逗号运算符履行其记录的职责:“计算其两个操作数(从左到右)并返回第二个操作数的值。
”
基本上,您的第二个代码段是一个赋值。赋值应该始终以分号终止,即使它们的最后一个表达式是一个语句块。但是,这对您来说并不明显。因此,如果在块和对象方法调用之间没有分号或换行符,则此代码段将失败,因为解释器希望看到一个操作或赋值的终止。如果未找到任何一个标记,将抛出一个
意外标记
错误。同样的解释说明了第三个代码段工作的原因。在第一个代码段中,逗号运算符在记录时履行其职责:“计算其两个操作数(从左到右)并返回第二个操作数的值。
”
基本上,您的第二个代码段是一个赋值。赋值应该始终以分号终止,即使它们的最后一个表达式是一个语句块。但是,这对您来说并不明显。因此,如果在块和对象方法调用之间没有分号或换行符,则此代码段将失败,因为解释器希望看到一个操作或终止赋值。如果未找到任何一个标记,将抛出一个
意外标记
错误。同样的解释说明了第三个代码段工作的原因。JavaScript基本:使用分号,即使您认为它是可选的。在搜索@jbabey的StackOverflow时,有很多答案:这不是JavaScript f基本原则。JavaScript基本原则是ASI,开发人员可以自己决定是否以及何时利用它。在MDN.JavaScript基本原则:使用分号,即使您认为它是可选的。当您搜索StackOverflow@jbabey时,有很多答案:这不是JavaScript基本原则。JavaScript基本原则是ASI,一个开发人员可以自己决定是否以及何时利用它。在MDN。但是为什么只需要在匿名函数上使用它呢?中断呢?@ChristophHa,因为行中断(有时)结束陈述。那么,在这种情况下,休息也会安静下来吗?好的,看起来很复杂,但谢谢你的快速帮助reply@ATOzTOA确切地说,var
中的逗号运算符在这里不是一个好例子。在您链接的MDN页面上,他们说:“注意var语句中的逗号不是逗号运算符…”
。这是一种罕见的情况,ASI无法正确完成任务。但为什么只需要在匿名函数上使用它,而换行呢?@Christopha,因为换行符(有时)结束陈述。那么,在这种情况下,休息也会安静下来吗?好的,看起来很复杂,但谢谢你的快速帮助reply@ATOzTOA确切地说,var
中的逗号运算符在这里不是一个好例子。在您链接的MDN页面上,他们说:“注意var语句中的逗号不是逗号运算符…”
。这是ASI无法正确完成工作的罕见案例之一。