逗号是否仅应用于javascript中的console.log以连接变量和字符串?
请告诉我,因为我是javascript新手。下面是示例1和示例2,我想知道为什么在使用关键字“return”时示例2不能显示正确的预期结果。我知道加号(+)可以解决这个问题,只是想知道当涉及到变量时,在javascript中何时使用逗号(,)进行连接逗号是否仅应用于javascript中的console.log以连接变量和字符串?,javascript,Javascript,请告诉我,因为我是javascript新手。下面是示例1和示例2,我想知道为什么在使用关键字“return”时示例2不能显示正确的预期结果。我知道加号(+)可以解决这个问题,只是想知道当涉及到变量时,在javascript中何时使用逗号(,)进行连接 sample-1 var person = { firstName: "John", lastName : "Smith", fullName : function() { console.log("my name is ",t
sample-1
var person = {
firstName: "John",
lastName : "Smith",
fullName : function() {
console.log("my name is ",this.firstName +" ",this.lastName);
}
}
person.fullName(); //my name is John Smith
sample-2
var person = {
firstName: "John",
lastName : "Smith",
fullName : function() {
return "my name is ",this.firstName +" ",this.lastName;
}
}
person.fullName(); //"Smith"
标记函数调用的括号内的逗号分隔参数表达式。在外部,就像在return
语句中一样,它们是“逗号运算符”
因此,console.log()
所起的神奇作用就是基于该函数中的代码,该函数显式地查看您传递给它的所有参数
返回值
基本等同于
"my name is ";
this.firstName + " ";
return this.lastName;
示例中的逗号将整个表达式拆分为三个部分,每个部分分别求值。a、b、c
的总值仅为c
的值。
console.log("my name is ",this.firstName +" ",this.lastName);
将多个参数传递给console.log
函数。它的工作原理与任何普通函数调用一样。console.log
的参数数量或多或少是任意的,函数将知道如何处理它们(有点像Math.max
)
那
不返回多个值(看起来它将返回
this.lastName
)。函数可以返回单个值,也可以不返回任何值。如果要将上述内容合并为单个字符串,则必须采用不同的方式。例如,使用+
。逗号运算符计算其每个操作数(从左到右)并返回最后一个操作数的值。@kemotoe除了在函数调用中分离不同的参数外,返回值
并没有错误,它只是做不到OP所期望的。如果是无效语法,OP就不会注意到奇怪的返回值,因为代码不会运行。这只是不正确的语法
这是正确的语法。但是计算机做的是你让它做的,而不是你想让它做的。
return "my name is ",this.firstName +" ",this.lastName;