`
maria3905
  • 浏览: 21752 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

js中=,==,===区别

    博客分类:
  • js
 
阅读更多
  • =是赋值的意思,是让左边的值等于右边的值,比如:var a=1;那么现在alert(a)就是1,当然右边可以是变量,如:var a=1; var b也是1;
  • ==是判断等于的意思,返回的是一个布尔值,如:alert(1==1);将返回true,因为1等于1,如果 alert(1=='1');也返回true,虽说后面的1是字符串类型,但是==是不判断类型的,所以还是true,如果:alert(1=='2') 就是false了,因为1不等于2;
  • ===也是判断的,但是它要比==判断的严谨一点,它的判断必须什么都相等,比如说类型,值;如: alert(1===1);将返回true,因为它们都是1,而且都是数字类型,如果:alert(1==='1');将返回false,因为前面的1是 数字类型,后面的1是字符串类型。

        在使用中尽量采用===判断,因为这样更严谨一些,当然有的时候你得用==了,这分情况,适当的运用。上面提到'1'是字符串类型,为什么呢?因为他外面 加 引号 了,只要加引号就会是字符串类型,如果是数字类型可以直接写数字,如果:var a=b1;就会出错,因为如果=的右边没有加 引号,且还不是纯数字,它会认为你是变量,而其中b1变量又不存在就会报错,当然如果存在就没事。

 

如果数让字符串类型的1跟数字类型的1做算术是会报错的。如果 var a='1',b=2,c=a+b; 你必须得把a转成数字类型,学习吧提示你将字符串转成数字最快的方式就是让本身*1,当然你必须确保里面没有字母,如 var a='1',b=2,c=a*1+b;

       一般情况下,本身是等于本身的,比如alert(undefined===undefined);//true  alert(1===1)//true ,有一个例外,它连自己都不等于自己,alert(NaN===NaN)不管你是==还是===,它都是false,这个是个特殊。

其实 == 在判断的时候对数值做了 "隐式转换", 比如 0 ==false

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics