像这样返回两个值是不行的:
return (num1, num2);
Javascript不是这样工作的。如果你想要像Python里的元组一样,Javascript没有使用该语法的数据结构。
你可以将两个值放入数组中并返回该数组,或者将两个值放入对象中并返回该对象。
然后当你调用函数时,必须将结果分配给某个变量以便使用返回的结果。
以下是返回数组的一种方法:
function getValues(){
var num1 = document.getElementById("firstNum").value;
var num2 = document.getElementById("secondNum").value;
return [num1, num2];
}
function add(){
var values = getValues();
return parseFloat(values[0]) + parseFloat(values[1]);
}
或者,您可以将这两个值放入一个带有命名属性的对象中:
function getValues(){
var num1 = document.getElementById("firstNum").value;
var num2 = document.getElementById("secondNum").value;
return {firstNum: num1, secondNum: num2};
}
function add(){
var values = getValues();
return parseFloat(values.firstNum) + parseFloat(values.secondNum);
}
对象语法更具描述性和详细,因为每个属性都有相关的名称而不仅仅是数字索引,但它也不够紧凑。在这种特定情况下,您可以使用对象或数组。
ES6解构更新
当在数组或对象中返回两个值时,您还可以使用ES6语法来缩短代码。例如,在返回对象时,您可以使用速记语法将属性名称分配为与变量相同的名称,如下所示:
return {num1, num2};
这实际上返回一个像这样的对象:
{ num1: num1, num2: num2 }
然后,当你调用那个函数时,你可以使用解构来将两个值分配给变量:
function getValues(){
var num1 = document.getElementById("firstNum").value;
var num2 = document.getElementById("secondNum").value;
return {num1, num2};
}
let {num1, num2} = getValues();
console.log(num1);
console.log(num2);
或者,你也可以像对待数组一样使用解构:
function getValues(){
var num1 = document.getElementById("firstNum").value;
var num2 = document.getElementById("secondNum").value;
return [num1, num2];
}
let [num1, num2] = getValues();
console.log(num1);
console.log(num2);