期望一个赋值或函数,却看到了一个表达式

Expected an assignment or function and instead saw an expression

本文关键字:一个 表达式 赋值 期望 函数      更新时间:2023-09-26

下面是我遇到问题的一段代码。我得到了JShint "期望一个赋值或函数,而不是看到一个表达式"。

function checkVal(inputField) {
        ( inputField.val() === '' ) ? inputField.prev('.cd-label').removeClass('float') : inputField.prev('.cd-label').addClass('float');
    }
});

警告告诉您下面一行可能是错误或错误:

( inputField.val() === '' ) ? inputField.prev('.cd-label').removeClass('float') : inputField.prev('.cd-label').addClass('float');

是一个使用三元运算符的表达式,如果它之前的表达式为真,则返回?后面的值,否则返回:后面的值。所以基本上,它就像一个简短的if语句,结果是一个赋值。

要删除警告,您需要将其分配给如下变量:

var yourVariable = ( inputField.val() === '' ) ? inputField.prev('.cd-label').removeClass('float') : inputField.prev('.cd-label').addClass('float');

但是,对于您的情况,您可能真的不想将其分配给任何东西,因此您应该只使用if语句。

您应该在这里使用if块。

if( inputField.val() === '' ){
    inputField.prev('.cd-label').removeClass('float');
}
else{
    inputField.prev('.cd-label').addClass('float');
}

三元操作符(?:)只能在返回值的上下文中使用。如:

var x = condition ? 'a' : 'b';
相关文章: