开关(!0)是什么意思

时间:2012-08-10 23:37:45

标签: javascript jquery jstree

我看到一段代码让我感到奇怪。 切换(!0)在javascript中的含义是什么?在这种技术有用的情况下有哪些?

jsTree在一些地方使用它,但它看起来很陌生。我确信它背后有充分的理由,但无法弄明白。

http://www.jstree.com/

这是一段代码:

switch(!0) {
    case (!s.data && !s.ajax): throw "Neither data nor ajax settings supplied.";
    case ($.isFunction(s.data)): //...
                                 break;
}

2 个答案:

答案 0 :(得分:9)

它将每个案例与boolean true进行比较。

case (!s.data && !s.ajax)

如果!s.data && !s.ajax评估为true,则会选择执行此案例。

switch(true)switch(!0)

相同

答案 1 :(得分:2)

switch(!0)switch(true)完全相同。

这种模式:

switch (true) {
  case (condition): do something; break;
  case (condition): do something; break;
  case (condition): do something; break;
}

与以下内容相同:

if (condition) {
  do something;
} else if (condition) {
  do something;
} else if (condition) {
  do something;
}