javascript - 在三元运算符中执行函数

标签 javascript jquery jshint

<分区>

我正在使用 JSHint 检查我的 JS 文件以查找错误。

我刚收到这个警告:

Expected an assignment or function call and instead saw an expression.

(mandatEngagementExists)
    ? $('.mandat-type[value=1]').prop('checked', false).prop('disabled', true)
    : $('.mandat-type[value=1]').prop('disabled', false);

mandatEngagementExists 是一个 bool 值。 我所有的 JS 都处于严格模式。

这段代码有效,所以我想知道 JSHint 是否有点过于严格,或者我是否应该切换到经典的 if/else。

最佳答案

直接在 .prop("property", boolean) 中使用 bool 值

$(el).prop('checked', myBoolean);

使用返回

function myFn() {
    /* Code here */
    return myBoolean ? $(el).doThis() : $(el).doThat();
    /* !!!!!!!!! >>> Cannot have more code here since `return` was used */
}

使用 IIFE

function myFn() {
     /* Code here */
    (function(){
       return myBoolean? $(el).doThis() : $(el).doThat();
    }());
     /* Code here */
}

使用var

var someVar;
function myFn() {
    /* Code here */
    someVar = myBoolean? $(el).doThis() : $(el).doThat();
    /* Code here */
}

使用if else

function myFn() {
    /* Code here */
    if(myBoolean) {
        $(el).doThis();
    } else {
        $(el).doThat();
    }
    /* Code here */
}

关于javascript - 在三元运算符中执行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32994592/

相关文章:

javascript - 无法让我的 JavaScript babel 工作

javascript - 如何使用 selenium webdriver 选择下拉值

javascript - 如何在reactJs中做webRTC

javascript - 单击子动态内容

jslint - 实用且广泛认可的jshint设置

javascript - 如何使用 gradle-js-plugin 设置 jshint.options?

javascript - 如何将 fixmyjs 与 EsLint 一起使用?

javascript - 如何在nodejs中正确使用域

javascript - 使用 CSS 选择器在特定属性下查找不包含特定属性的 div

javascript - 动画播放状态不适用于 Safari