通过Javascript问号运算符多个语句?

时间:2015-12-03 11:22:17

标签: javascript

我有一个变量,我想检查它是否为空。我想知道如果检查为真或假,我是否可以传递多个语句,如:

var checkme = '';

if(checkme == ''){
     checkme = 'something new';
     do_this();
}else{
     checkme = '';
     something_else();
}

但请改用?运算符。类似的东西:

checkme == '' ? (checkme = 'something new') (do_this()) :
                (checkme = '') (something_else());

我希望你明白我的意思。我实际上有类似的工作,但浏览器的控制台不喜欢它。有没有办法正确地做到这一点,还是我需要写出if...else声明?

4 个答案:

答案 0 :(得分:4)

你能做到的。以下示例& fiddle

var a = true;

a ? (console.log(1 + 1),console.log(2+2)): 
    (console.log(false), console.log(false))

你的案子:

checkme == '' ? (checkme = 'something new', do_this()) :
                (checkme = '', something_else());

将命令与昏迷分开。 的 Mozilla Doc

感谢。

答案 1 :(得分:3)

checkme == '' ? ((checkme = 'something new') && (do_this())) :
            ((checkme = '') && (something_else()));

如图沙尔所说

答案 2 :(得分:2)

如果函数调用的位置不重要,它的工作时间会更短。

checkme = checkme ? (something_else(), '') : (do_this(), 'something new');

答案 3 :(得分:0)

如果你真的需要玩得那么开心:

window[checkme == '' ? (checkme = 'something new') &&  'do_this' : (checkme = '') && 'something_else']()

这将按字符串查找函数并执行它并分配新值