逗号是否仅适用于javascript中的console.log以将变量与字符串连接?

时间:2019-04-16 13:24:31

标签: javascript

请多多指教,因为我是javascript新手。我下面有示例1和2,我想知道为什么当使用关键字“ return”时示例2不能显示正确的预期结果。我知道加号(+)可以解决有问题的问题,只是想知道何时在变量中使用逗号(,)在javascript中进行级联。

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"

2 个答案:

答案 0 :(得分:1)

使用

    console.log("my name is ",this.firstName +" ",this.lastName);

您将几个参数传递给console.log函数。它就像任何普通函数调用一样工作。 console.log的参数数目或多或少是任意的,该函数将知道如何处理它们(有点像Math.max)。

那个

    return "my name is ",this.firstName +" ",this.lastName;

不返回多个值(看起来它将返回this.lastName)。函数可以返回单个值,也可以根本不返回任何值。您想将以上内容合并为一个字符串,则必须以其他方式进行处理。例如,使用+

答案 1 :(得分:0)

逗号内部标记函数调用的括号将参数表达式分隔开。在外面,就像您的import concurrent.futures import time import random def register_with_delay(): time.sleep(random.randint(0, 10)) print('Im in the delayed registration') def main(): with concurrent.futures.ProcessPoolExecutor() as executor: futures = [executor.submit(register_with_delay) for _ in range(10)] for i in range(10): print('Im in the main loop') time.sleep(random.randint(0, 1)) if __name__ == '__main__': main() 语句中一样,它们是“逗号运算符”。

return的神奇之处仅在于该函数中的代码,该代码显式地查看传递给它的所有参数。

console.log()基本上等同于

return

样本中的逗号将整个表达式分成三部分,每部分都分别进行评估。 "my name is "; this.firstName + " "; return this.lastName; 的总价值就是a, b, c的价值。