Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Trimmer javascript,这样使用是否正确?_Javascript - Fatal编程技术网

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']();
然而,在大多数真实场景中,这可能更令人困惑