我有一个变量,我想检查它是否为空。我想知道如果检查为真或假,我是否可以传递多个语句,如:
var checkme = '';
if(checkme == ''){
checkme = 'something new';
do_this();
}else{
checkme = '';
something_else();
}
但请改用?
运算符。类似的东西:
checkme == '' ? (checkme = 'something new') (do_this()) :
(checkme = '') (something_else());
我希望你明白我的意思。我实际上有类似的工作,但浏览器的控制台不喜欢它。有没有办法正确地做到这一点,还是我需要写出if...else
声明?
答案 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']()
这将按字符串查找函数并执行它并分配新值