-6ren">
gpt4 book ai didi

JavaScript 三元运算符不接受剩余参数?

转载 作者:行者123 更新时间:2023-11-28 17:44:49 25 4
gpt4 key购买 nike

尝试使用三元运算符有条件地将两个参数之一传递给字符串的 slice 方法,如下所示:

var str = "abcdefg";
var a = 1;
var b = 2;
str.slice(a > b ? ...[b, a] : ...[a, b]);

我收到“未捕获的语法错误:意外的标记...”

我在同时使用三元运算和休息时是否做错了什么?有没有正确的方法来写这个表达式?或者,正如一位开发者 friend 所说,这是剩余参数或三元运算符的实现中的错误吗?

方法参数中的三元运算符无需其余参数即可工作:

str.slice(a > b ? a : b)

剩余参数无需三元运算符即可工作:

str.slice(...[a, b])

我在 Chrome 控制台中完成所有这些操作。还尝试了使用 array.slice 的所有相同行。

最佳答案

... 运算符是数组文字或调用表达式的一部分;作为一个独立的操作符它没有任何意义(...a 意味着什么独立?)。

您可以将其应用于任何方法调用,只要您实际应用于参数即可:

str.slice(...(a > b ? [b, a] : [a, b]));

关于JavaScript 三元运算符不接受剩余参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47003694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com