簡體   English   中英

傳遞Javascript問號運算符多個語句?

[英]Pass Javascript Question Mark operator multiple statements?

我有一個要檢查的變量是否為空。 我想知道如果檢查是對還是錯,是否可以傳遞多個語句,例如:

var checkme = '';

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

但是使用? 運算符。 就像是:

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

我希望你明白我的意思。 我實際上有類似的東西可以工作,但是瀏覽器的控制台不喜歡它。 有沒有辦法正確執行此操作,或者我需要寫出if...else語句?

是的,你可以做。 實施例以下& 小提琴

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文檔

謝謝。

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

正如塔沙爾所說

如果函數調用的位置不重要,則它的作用甚至更短。

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

如果您確實需要玩得開心,可以這樣做:

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

這將通過字符串查找函數並執行它,並分配新值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM