Javascript定义对象,逗号大小写

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

当我用Javascript尝试一些FundeMantel时,我遇到了一个令我吃惊的问题,我找不到答案。 我得到了以下结果,效果非常好:

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无法正确完成工作的罕见案例之一。