title: No extra Boolean cast in JavaScript
body: <p>In if statement's casting to a Boolean via double negation (!!) is unnecessary, because these if statements, for example, are equivalent:</p>
  
  <pre><code>if (!!foo) {
      // ...
  }
  
  if (foo) {
      // ...
  }
  </code></pre>
  
  <p>But what if casting to a Boolean via !! is in return statement? Like here: </p>
  
  <pre><code>nameToSomething : function(someName){
              if (someName) {
                  return !!this._var[someVar] ? this._var: undefined;
              }
              return undefined;
          },
  </code></pre>
  
  <p><code>!!this._mServicesByName[someName]</code>  in return is the same as <code>this._mServicesByName[someName]</code> here? Why?</p>
  
  <p>An explanation in plain English why it is different/the same as well as examples how to circumvent this rule in JavaScript, so my linter will not "see" it will be very appreciated.</p>
  
  <p>Many thanks in advance.</p>