Javascript 简明教程

JavaScript - Comma Operator

JavaScript Comma Operator

JavaScript 中的 comma 运算符(,)从左到右求值多个表达式。你可以将左侧表达式的结果值用作右侧表达式的输入。在求值完所有表达式后,它将返回最右侧表达式的结果值。

但是,逗号运算符也用于“for”循环、数组、对象等。在本章中,你将学习逗号运算符的所有用例。

Syntax

你应当遵循以下语法,使用逗号表达式来求值多个表达式。

var answer = (exp1, exp2, exp3, ex4, ...);

Return value

它只返回最后一个表达式的结果值。

Examples

让我们通过一些示例详细了解 JavaScript 逗号运算符

Example: The Comma Operator with Strings

在下面的示例中,我们在花括号中添加了 4 个逗号分隔的字符串。在此处,每个字符串都作为表达式。代码将评估字符串并返回最后一个字符串。在输出中,可以看到它打印了“CSS”,因为它是最右边的字符串。

<html>
<body>
    <p id = "output"> </p>
    <script>
        let output = document.getElementById("output");
        let ans = ("JavaScript", "Python", "HTML", "CSS");
        output.innerHTML = "The value of the ans variable is: " + ans;
    </script>
</body>
</html>

Example: The Comma Operator with Expressions

在下面的示例中,我们定义了变量“a”并将其初始化为 5。在“ans”变量中,我们存储逗号运算符返回的结果值。第一个表达式将 a 的值更新为 8,第二个表达式将 a 的值增加 1,第三个表达式将 2 添加到变量“a”的更新值。

“ans”的值为 11,其由逗号运算符的最右边的表达式返回。

<html>
<body>
    <p id = "output"> </p>
    <script>
        let output = document.getElementById("output");
        let a = 5;
        let ans = (a = 8, a++, a += 2);
        output.innerHTML = "The value of the ans variable is: " + ans;
    </script>
</body>
</html>

Example: The comma operator with functions

在下面的示例中,我们定义了 first() 和 second() 函数。此外,它根据函数名称打印消息并从函数返回该值。

我们使用逗号运算符来执行多个函数。在输出中,可以看到它调用了这两个函数,但只打印了 second() 函数的返回值。

<html>
<body>
    <p id="output"> </p>
    <script>
        let output = document.getElementById("output");
        function first() {
            output.innerHTML += "The first function is called! <br/>";
            return 1;
        }

        function second() {
            output.innerHTML += "The second function is called! <br/>";
            return 2;
        }

        let ans = (first(), second());
        output.innerHTML += "The value of the ans variable is: " + ans;
    </script>
</body>
</html>

Other Use Cases of The Comma Operator

用于在单行中定义多个变量。

let m = 1, n = 2, x = 3;

用于用多个元素初始化数组。

const arr = [10, 20, 30, 40, 50, 60];

用于定义具有多个属性的对象。

const obj = {
   name: "tutorialspoint",
   age: 10,
   ... other properties
}

可以在 for 循环中使用逗号运算符来初始化或更新每个迭代中的多个变量。

for(let p = 0, q = 1; p < n; p++, q++) {
 // Code for the loop
}

用于将多个参数传递给函数。

function func(param1, param2, ... ) {
 // function code
 }

OR
func(10, 20, 30, ...);

用于导入或导出

import { func2, variable } from './module2.js';
OR
export {func1, variable, num};

用于解构数组或对象。

let [a, b, c] = [34, 72, 23];

用于在控制台中打印多个变量。

console.log(a, b, c) // a, b, and c are variables.