В операторе if приведение к логическому значению через двойное отрицание (!!) не требуется, потому что эти операторы if, например, эквивалентны:
if (!!foo) {
// ...
}
if (foo) {
// ...
}
Но что, если приведение к логическому через !! находится в заявлении о возврате? Как здесь:
nameToSomething : function(someName){
if (someName) {
return !!this._var[someVar] ? this._var: undefined;
}
return undefined;
},
!!this._mServicesByName[someName]
здесь то же самое, что и this._mServicesByName[someName]
? Почему?
Объяснение на простом английском, почему это отличается/одинаково, а также примеры, как обойти это правило в JavaScript, чтобы мой линтер не «увидел», будет очень признателен.
Спасибо заранее.
~~sServiceName
- person adeneo   schedule 27.04.2015!!func
недействителен. - person adeneo   schedule 27.04.2015