所有分类
  • 所有分类
  • 后端开发
==还是===,两个数到底一样吗?

==还是===,两个数到底一样吗?

3.相等操作符”==”全等操作符在进行判断的时候,如果两个变量的类型不同,则直接返回false,而与此不同,”==”相等操作符在判断的时候,如果两个变量的类型不同,则会做一个隐式的类型转换,把要比较的两个值转化为相同的类型再做比较,那么这种

嘿小伙伴们,今天咱们来聊聊一个很有趣的话题——如何判断两个数是不是一样。你可能会想,数学上不就用等于号么?其实编程中有两种方法判断,那就是”==”和”===”,它们都能返回布尔值~

当你的操作数类型都一样时,算术运算就随心所欲。然而,万一两边的变量类型不同或是有对象?你猜怎么着,难度瞬间升级!接下来咱们就来聊聊当操作数类型不同时运算会如何变化。

true === 1    //false
"1" === 1    //false
 
//boolean的比较
true === true  //true
true === false  //false
//string的比较
"hello" === "helloworrld" //false
"hello" === "world" //false
"hello" === " hello" //false
"hello" === "hellO" //false
"hello" === "hello" //true
//number的比较
1 === 1  //true
1 === 1.0 //true
1 === 1.2 //false
//null和undefined的比较
undefined === undefined  //true
null === null       //true
undefined === null    //false,两者在"=="时才返回true

好的,我们开始聊聊全等运算符“===”是如何判断的!首先,它会查看操作符两边的数值类型是不是一样,如果不同,那就直接表示false。只有当两方都是同样的数值类型时,“===”才会继续下一步的判断。顺便提一句要是进行对比的两个数都是对象,而非基础类型值的话,那么判断的标准就是看这两个对象是不是完全相等

var a,b,c;
a = b = {
	name : '柳轻侯',
	city : '南京'
};
c = {
	name : '柳轻侯',
	city : '南京'
};
a === b   //true
a === c   //false

咋回事?长得一样还不够!举个例子,A跟C这两个家伙,看着就像双胞胎,属性值啥的都一样无二。不过你们猜怎么着?它们根本不是”同一个人”!因为A和C其实是两个分开的玩意儿,没办法说是全等的。

==还是===,两个数到底一样吗?

“等号”跟”全等于”的区别在于,如果它们要比对的2个值类型不一样,”等号”就直接说俩货不是同款,完事儿;而”全等于”却会默默地给它们转换个造型,统一成同一种类型,然后才开始比大小。那你可能会有疑问,这俩货怎么换?

记住,转换不同数据类型时要注意以下这些事儿~比如,NaN姐俩儿相等却是给回了咱们“否”的回答!喂,啥叫NaN?那可是“乱七八糟”、无法被具体数值描述的存在这种货色当然不适合参与对比咯!既然都是这么混乱,谁也不知道NaN和NaN到底哪个大,答案自然只能是“没戏”咯!

这里咱们没法用”==”去判断NaN,所以怎么办?我们换个方式,用”!=”试试看。只需要确认这个变量到底是不是跟NaN不相等就行。接着,这回咱们变成要问0可不可以等于”,也就是空字符串喽!你可能不知道,当数字和字符串比大小的时候,系统会自动帮你把字符串换成数字,这时候空白字符”就会变成0。

//如果需要判定一个变量是不是NaN,可以如下
//a是你需要判定的变量
if((typeof a === "number") && a != NaN ){  //此处需要注意,NaN也是number类型
	//TODO 
}

好,快懂了!不管是对象还是非对象,比大小都得先变成基数再说。今天咱们就来说说怎么判断两个东东是不是一样大的问题。学到了啥?首先记住,等于号“b=”会特别严格地看我们的数值类型,而那个等于号(双引号)会自动帮我们转个小弯。另外,那些不靠谱的NaN就不能用等于号来了,得用!=这个感叹号。记住,所有东西比大小都是先变成基本类型再对比。要是还想聊这事儿或者有啥想说的,欢迎在下面留言!别忘了点个赞分享下

null == undefined  // true 
"NaN" == NaN    // false 
5 == NaN      // false 
NaN == NaN     // false 
NaN != NaN     // true 
false == 0     // true 
true == 1      // true 
true == 2      // false 
undefined == 0   // false 
null == 0      // false
"5" == 5      // true

原文链接:https://www.icz.com/technicalinformation/web/2024/03/11431.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?