关于三目运算 ESlint报错

taurus_wood
  • 482
var checkboxShow = function checkboxShow(first, second) {
    var $feedType = $webForm.find('[data-rule=fade-type]');
    var $checkbox = $feedType.find('input[type = checkbox]');
    var i;
    for (i = 0; i < arguments.length; i++) {
      arguments[i] === 0 ? $checkbox.eq(i).prop('disabled', true) : $checkbox.eq(i).prop('checked', true);
    }
  };

这个函数是要根据参数判断两个复选框是选择还是禁用

这么写三目运算符有什么问题啊?ESlint报错no-unused-expressions,明明生效了,但是报错了,应该怎么写?

回复
阅读 5.4k
3 个回答
✓ 已被采纳

要么用if-else,要么用void运算符:

void(arguments[i] === 0 ? $checkbox.eq(i).prop('disabled', true) : $checkbox.eq(i).prop('checked', true));

首先我记得 三目表达式 是 C++里面的叫法 ;js里面这个叫 三元表达式。 为什么会出错呢?其他的不说,我就觉得你的写法很奇怪 var checkboxShow = function checkboxShow(first, second) {};为什么要这样写呀?? 你都有个函数名了 checkboxShow ;然后 又把它赋给一个变量!直接这样写 var checkboxShow = function (first, second) {};不就可以了,或者直接写 function checkboxShow(first, second) {};。具体你再看看你的代码,是不是要定义个变量接受函数返回值什么的。

宣传栏