Javascript?操作员:如何传递多个参数

Javascript?操作员:如何传递多个参数,javascript,if-statement,operator-keyword,ternary-operator,Javascript,If Statement,Operator Keyword,Ternary Operator,编辑:我必须在IE11上完成这项工作 我有以下代码: span.classList.add(span.textContent === '\ ' ? 'char' : 'spaceChar') 它工作正常,但如果是真的,我想添加两个类,如下所示: span.classList.add(span.textContent === '\ ' ? 'char','animated' : 'spaceChar') 我尝试使用括号,但没有成功: span.classList.add(span.textCo

编辑:我必须在IE11上完成这项工作

我有以下代码:

span.classList.add(span.textContent === '\ ' ? 'char' : 'spaceChar')
它工作正常,但如果是真的,我想添加两个类,如下所示:

span.classList.add(span.textContent === '\ ' ? 'char','animated' : 'spaceChar')
我尝试使用括号,但没有成功:

span.classList.add(span.textContent === '\ ' ? ('char','animated') : ('spaceChar'))
有没有办法做到这一点?
谢谢

您可以使用
类列表添加多个类。通过传递附加参数添加
,因此一个选项是使用数组作为条件表达式,并将它们分散到
中。添加
调用:

span.classList.add(
  ...(span.textContent === '\ ' ? ['char','animated'] : ['spaceChar'])
);
这相当于

if (span.textContent === '\ ') {
  span.classList.add('char', 'animated');
} else {
  span.classList.add('spaceChar');
}
第一个版本可能更简洁,但第二个版本更具可读性

IE11类列表的多个参数。添加,因此即使您(这是将ES6+语法转换为ES5的常用工具),也必须分别添加每个类:

if (span.textContent === '\ ') {
  span.classList.add('char');
  span.classList.add('animated');
} else {
  span.classList.add('spaceChar');
}

对于较大数量的类名,您还可以使用一个helper方法,该方法接受一个数组并调用
。对每个类添加

抱歉,它必须在IE11上工作。我想我会坚持使用经典的if语句。是的,因为IE11不支持多个参数,所以没有办法使用单个
类列表。添加您正在寻找的
调用