检查NaN或<= 0

abr*_*rkn 1 javascript

Jshint对这个表达不满意:

 var amount = $('.some-input').val()
 // Check for NaN or <= 0
 if (!(+amount > 0)) {
    ...
 }
Run Code Online (Sandbox Code Playgroud)

它声称混淆使用!.有没有办法在不添加太多代码的情况下重写表达式?

Fel*_*ing 6

没有否定的等价物是:

if (amount <= 0 || isNaN(amount)) {
Run Code Online (Sandbox Code Playgroud)

所以,不要说"不大于",而是说"小于或等于".另外,不是每个人都可能知道,NaN真的不能相比的数字(即总是返回false),因此一个明确的测试可以让这个表达式更容易阅读和理解的整体.

显然人类发现否定更难以理解,我不会说它没有真相.