JavaScript解释?并且:

时间:2010-11-25 14:41:05

标签: javascript

我想了解一行Javascript。希望有人可以帮助我理解这行代码的含义。

var direction = this.hasClass('up') ? 'up' : 'down';

我有兴趣理解的是?:

3 个答案:

答案 0 :(得分:8)

这是执行条件表达式的ternary operator。相当于:

var direction;
if (this.hasClass('up'))
{
    direction = 'up';
} 
else
{
    direction = 'down';
}

采用格式

condition ? return if true : return if false

在这种情况下,返回值将分配给变量(方向)。

答案 1 :(得分:2)

这是ternary conditional operator

如果当前元素具有direction类,则表示“将up设置为up,否则将其设置为down”。

顺便说一下,你可能真的想要:

var direction = $(this).hasClass('up') ? 'up' : 'down';

答案 2 :(得分:2)

这不是特定于jQuery的,因为它是JavaScript中ifelse的快捷方式。

var direction = this.hasClass('up') ? 'up' : 'down';

表示:

var direction;
if(this.hasClass('up'))
  direction = 'up';
else
  direction = 'down';

语法:

var result = condition ? trueValue : falseValue;