写了个 str ="s"++; 然后出现Nan,找了一会。 收集资料如下判断:
var tmp = undefined;
if (typeof(tmp) == "undefined"){
alert("undefined");
}
说明:typeof 返回的是字符串,有六种可能:"number"、"string"、"boolean"、"object"、"function"、"undefined"
var tmp = null;
if (!tmp && typeof(tmp)!="undefined" && tmp!=0){
alert("null");
}
var tmp = 0/0;
if(isNaN(tmp)){
alert("NaN");
}
说明:如果把 NaN 与任何值(包括其自身)相比得到的结果均是 false,所以要判断某个值是否是 NaN,不能使用 == 或 === 运算符。
提示:isNaN() 函数通常用于检测 parseFloat() 和 parseInt() 的结果,以判断它们表示的是否是合法的数字。当然也可以用 isNaN() 函数来检测算数错误,比如用 0 作除数的情况。
var tmp = undefined;
if (tmp== undefined) {
alert("null or undefined");
}
var tmp = undefined;
if (tmp== null){
alert("null or undefined");
}
说明:null==undefined
5.判断undefined、null与NaN:
var tmp = null;
if (!tmp){
alert("null or undefined or NaN");
}
提示:一般不那么区分就使用这个足够。
isNaN判断传入的参数是否能转换成数字,并不是严格的判断是否等于NaN。Number.isNaN判断传入的参数是否严格的等于NaN(也就是 ===)。
NaN,即 not a number,从字面意思上可以理解为非数字,但是在 JavaScript 的数据类型划分的时候,我们还是将其划分进 number 类型:在 JavaScript NaN 有一个其它类型数据都不具备的特性,这个数据与它本身不相等:
avaScript 中的数字类型是所有数字值的集合,包括 “Not A Number”,正无穷和负无穷。可以使用特殊表达式 NaN 、全局对象或 Number 函数的属性来访问“Not A Number”:
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!