【发布时间】:2017-10-29 18:24:13
【问题描述】:
尝试使用三元运算符有条件地将两个参数之一传递给字符串的 slice 方法,如下所示:
var str = "abcdefg";
var a = 1;
var b = 2;
str.slice(a > b ? ...[b, a] : ...[a, b]);
我得到“Uncaught SyntaxError: Unexpected token ...”
我在使用三元运算和休息时做错了什么?有没有写这个表达式的正确方法?或者,正如一位开发者朋友所说,这是在实现其余参数还是三元运算符时出现的错误?
方法参数中的三元运算符在没有剩余参数的情况下工作:
str.slice(a > b ? a : b)
而rest参数在没有三元运算符的情况下也可以工作:
str.slice(...[a, b])
我在 Chrome 控制台中执行所有这些操作。还用 array.slice 尝试了所有相同的行。
【问题讨论】:
标签: javascript ternary-operator