在尝试使用三元运算符有条件地将两个参数之一传递给字符串的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)
并且rest参数在没有三元运算符的情况下工作:
str.slice(...[a, b])
我正在Chrome控制台中完成所有这些工作 . 还使用array.slice尝试了所有相同的行 .
1 回答
...
运算符是数组文字或调用表达式的一部分;它作为一个独立的运算符没有任何意义(...a
意味着什么是独立的?) .只要您实际应用于参数,就可以将其应用于任何方法调用: