Muitas vezes vejo código JavaScript que verifica parâmetros indefinidos, etc., desta maneira:
if (typeof input !== "undefined") {
// do stuff
}
Isso parece meio desperdício, pois envolve uma pesquisa de tipo e uma comparação de cadeias, sem mencionar sua verbosidade. É necessário porque undefined
pode ser renomeado, no entanto.
Minha pergunta é:
como esse código é melhor do que essa abordagem:
if (null != input) {
// do stuff
}
Tanto quanto eu sei, você não pode redefinir null
, então não vai quebrar inesperadamente. E, devido à coerção de tipo do !=
operador, isso verifica os dois undefined
e null
... o que geralmente é exatamente o que você deseja (por exemplo, parâmetros de função opcionais).
No entanto, esse formulário não parece generalizado e até faz com que o JSLint grite com você por usar o !=
operador incorreto .
Por que isso é considerado um estilo ruim?
if (null != input)
é apenas "Yoda Speak" para o falante de inglês (de um eu sou .... uuammmmm), portanto, se eles equivalem à mesma coisa, é realmente apenas semântica. NA MINHA HUMILDE OPINIÃO.