JSLint错误:"中断后不必要"

Ila*_*Ila 5 javascript if-statement function jslint

我想知道如何重新编写此函数来解决JSLint错误"中断后不必要的其他问题".我理解这个错误的基础知识,并且已经重写了像这样的模型的功能

 myFunction.doThing = function () {
   if (user.likesCats) {
     return patCat;
   }
   else (user.likesDogs {
     return patDog;
   }
 };
Run Code Online (Sandbox Code Playgroud)

反而是:

 myFunction.doThing = function () {
   if (user.likesCats) {
     return patCat;
   }
   return patDog;
 }; 
Run Code Online (Sandbox Code Playgroud)

但我不确定如何修复此函数中的if,else if,else构造,以使其符合JSLint的"在休息后不再继续使用不必要的其他"规则:

myFunction.getRange = function () {
  if (this.settings.allowedValues) {
    return {
      min: Min,
      max: Max
    };
  } else if (this.settings.range) {
    return {
      min: range[0],
      max: range[1]
    };
  } else {
    return {
      min: 0,
      max: 1
    };
  }
};
Run Code Online (Sandbox Code Playgroud)

epa*_*llo 5

你不是只设置一个变量而不是返回它

myFunction.getRange = function () {
    var range;
    if (this.settings.allowedValues) {
        range = {
            "min": Min,
            "max": Max
        };
    } else if (this.settings.range) {
        range = {
            "min": range[0],
            "max": range[1]
        };
    } else {
        range = {
            "min": 0,
            "max": 1
        };
    }
    return range;
};
Run Code Online (Sandbox Code Playgroud)


geo*_*org 3

基本上有两种方法:单一退出点提前退出。我个人更喜欢后者:

myFunction.getRange = function () {

  if (this.settings.allowedValues) {
    return {
      min: Min,
      max: Max
    };
  } 

  if (this.settings.range) {
    return {
      min: range[0],
      max: range[1]
    };
  }

  return {
    min: 0,
    max: 1
  };

};
Run Code Online (Sandbox Code Playgroud)

在这种情况下,这并不重要,但具有早期退出(等)的现实生活代码returnbreak具有许多分支和临时变量的“单一退出”代码更容易阅读和维护else