我看到一段代码让我感到奇怪。 切换(!0)在javascript中的含义是什么?在这种技术有用的情况下有哪些?
jsTree在一些地方使用它,但它看起来很陌生。我确信它背后有充分的理由,但无法弄明白。
这是一段代码:
switch(!0) {
case (!s.data && !s.ajax): throw "Neither data nor ajax settings supplied.";
case ($.isFunction(s.data)): //...
break;
}
答案 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;
}