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);

 

posted @ 2017-09-09 01:06  猎八哥FLY  阅读(638)  评论(1编辑  收藏  举报