javascript中=,==,与===的区别;以及特殊值NaN的讲解
1.在js中“=”是作为赋值。var a; a=3;给a赋值为3。
2.“==”称作相等,“===”被称作严格相等。当使用“==”进行比较的时候允许进行类型转换,它用来检测两个操作数是否相等。而“===”会先比较类型,然后再比较具体的值是否相等。
var a = "10"; var b = 10; alert(a==b); //true alert(a===b); //false;
var a = 0; var b = false; alert(a==b); //true alert(a===b); //false;
var a = null; var b = undefined; alert(a==b); //true alert(a===b); //false;
3.在js中NaN是个特例,它是是代表非数字值的特殊值,它本身与本身比较(等于,大于等于,小于等于等等)均不相等。isNaN()函数可以判断一个值是否是非数字。但有两个特殊情况,如这个值是空字符串或者1/0这种分母为0的情况。
var a = NaN; alert(a==a); //false alert(a===a); //false; alert(a!=a); //true,这两种是仅有的判断自身是否是NaN的方法 alert(a!==a); //true;
var a = NaN; var b = 3; alert(a>=b); //false alert(a<=b); //false; alert(a>b); //false; alert(a<b); //false;
var a = "liebage"; var b = 7; var c = " "; var d = "6"; var e = 1/0; alert(isNaN(a));//true alert(isNaN(b)); //false alert(isNaN(c));//false,空格或者空字符串转化为数字0 alert(isNaN(d)); //false,字符转换为数字 alert(isNaN(e)); //false,分母为0,弹出Infinity,表示正无穷大的数值,所以此处弹出false alert(e); //Infinity,
4.请大家在不复制代码运行的情况下猜下下面几道题的答案,欢迎在我的评论群,进行讨论交流。
var a = "37"; var b = 7; alert(a+b); alert(b+a); alert(a-b); alert(b-a); alert(b*a); alert(a/b);