JavaScript 三元运算符不接受剩余参数?
JavaScript ternary operator doesn't accept rest parameters?
在尝试使用三元运算符有条件地将两个参数之一传递给字符串的 slice 方法时,如下所示:
var str = "abcdefg";
var a = 1;
var b = 2;
str.slice(a > b ? ...[b, a] : ...[a, b]);
我得到"Uncaught SyntaxError: Unexpected token ..."
我在使用三元运算和休息时做错了什么吗?这个表达式有正确的写法吗?或者,正如开发者朋友所说,这是 rest 参数或三元运算符的实现错误吗?
方法参数中的三元运算符在没有剩余参数的情况下工作:
str.slice(a > b ? a : b)
其余参数在没有三元运算符的情况下工作:
str.slice(...[a, b])
我正在 Chrome 控制台中执行所有这些操作。还用 array.slice.
尝试了所有相同的行
...
运算符是数组文字或调用表达式的一部分;作为一个独立的运营商没有任何意义(...a
意味着独立?)。
您可以将它应用于任何方法调用,只要您实际应用于参数:
str.slice(...(a > b ? [b, a] : [a, b]));
在尝试使用三元运算符有条件地将两个参数之一传递给字符串的 slice 方法时,如下所示:
var str = "abcdefg";
var a = 1;
var b = 2;
str.slice(a > b ? ...[b, a] : ...[a, b]);
我得到"Uncaught SyntaxError: Unexpected token ..."
我在使用三元运算和休息时做错了什么吗?这个表达式有正确的写法吗?或者,正如开发者朋友所说,这是 rest 参数或三元运算符的实现错误吗?
方法参数中的三元运算符在没有剩余参数的情况下工作:
str.slice(a > b ? a : b)
其余参数在没有三元运算符的情况下工作:
str.slice(...[a, b])
我正在 Chrome 控制台中执行所有这些操作。还用 array.slice.
尝试了所有相同的行...
运算符是数组文字或调用表达式的一部分;作为一个独立的运营商没有任何意义(...a
意味着独立?)。
您可以将它应用于任何方法调用,只要您实际应用于参数:
str.slice(...(a > b ? [b, a] : [a, b]));