javascript isnan x
导读:JavaScript中的isNaN()函数是用来判断一个值是否是非数字(NaN)的。该函数的返回值是一个布尔值,值为true表示传入的值是非数字,而值为false表示传入的值是数字或者能够被转换成数字。//isNaN的使用isNaN(1 ;...
JavaScript中的isNaN()函数是用来判断一个值是否是非数字(NaN)的。该函数的返回值是一个布尔值,值为true表示传入的值是非数字,而值为false表示传入的值是数字或者能够被转换成数字。
//isNaN的使用isNaN(1); //falseisNaN("123"); //falseisNaN(true); //falseisNaN(undefined); //trueisNaN(NaN); //trueisNaN(null); //false
从以上代码可以看出,如果传入的参数不是数字、可以转换成数字的字符串、false、空格或者null,isNaN()函数都会返回true。NaN是计算过程中出现错误或不合理结果的标记,在使用isNaN()函数时要注意区别0/0的情况。
isNaN(0/0); //trueisNaN("not a number"); //trueisNaN("1+2"); //trueisNaN(" "); //falseisNaN(""); //false
这里需要特别提醒的是,使用全局isNaN()函数时,有可能会出现一个悖论现象。当传入的参数是一个对象时,全局isNaN()函数会将该参数转换成一个字符串后再进行判断。
isNaN({ } ); //trueisNaN([]); //false
由于{ } 转换成字符串后是"[Object object]",而"[Object object]"并不是数字所以会返回true。而[]转换成字符串后的值是"",这是可以转换成数字的,所以会返回false。
因此,在实际编程的过程中,建议使用Number.isNaN()函数。这个函数只对number类型的值进行判断,不会对其他类型的值进行转换。这能避免上述悖论的出现。
Number.isNaN(1); //falseNumber.isNaN(NaN); //trueNumber.isNaN("123"); //falseNumber.isNaN(true); //falseNumber.isNaN(0/0); //trueNumber.isNaN("not a number"); //falseNumber.isNaN("1+2"); //falseNumber.isNaN({ } ); //falseNumber.isNaN([]); //false
使用Number.isNaN()函数,我们可以避免出现上述的悖论现象。同时,也要注意使用的环境是否支持该函数。
总结来说,isNaN()函数是一个用来判断非数字的实用函数。我们需要区分JavaScript中的NaN和传统的NaN,同时也需要注意使用全局isNaN()函数时的悖论现象。建议使用Number.isNaN()函数来判断一个值是否为NaN。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: javascript isnan x
本文地址: https://pptw.com/jishu/512311.html