Trimmer javascript,这样使用是否正确?
我不知道这个结构叫什么,但可能是修剪Trimmer javascript,这样使用是否正确?,javascript,Javascript,我不知道这个结构叫什么,但可能是修剪 someCondition ? function1() : function2(); JsHint说他期望得到一个赋值或函数,而看到的是一个表达式。 所以我想知道它是否能在所有浏览器中正常工作?这被称为,实际上相当于: if (someCondition) { function1(); } else { function2(); } JsHint不喜欢它的事实并不意味着它不是一个有效的语法,它只是意味着它是一种糟糕的样式,但
someCondition ? function1() : function2();
JsHint说他期望得到一个赋值或函数,而看到的是一个表达式。
所以我想知道它是否能在所有浏览器中正常工作?这被称为,实际上相当于:
if (someCondition) {
function1();
}
else {
function2();
}
JsHint不喜欢它的事实并不意味着它不是一个有效的语法,它只是意味着它是一种糟糕的样式,但它仍然可以工作。您可以自己尝试
true ? console.log('a') : console.log('b')
这是一个三元运算符,JSHint告诉您的是,像这样使用三元运算符可能会令人困惑。JSHint非常固执己见,它不仅会警告您可能破坏代码的事情,还会警告您作者不喜欢的事情
如果你更喜欢一个更瘦的皮棉(无针织品),你可能想试试
一般来说,应该在赋值中使用三元运算符,而不是函数调用
我的做法如下:
if (something) {
fn1();
} else {
fn2();
}
对于作业,这是可以的:
var foo = something ? 'foo' : 'bar';
第一个示例的一个可能替代方案是:
var foo = {
fn1: fn1,
fn2: fn2
};
foo[bar ? 'fn1' : 'fn2']();
然而,在大多数真实场景中,这可能更令人困惑