本文主要是介绍JS基础语法之==和===的区别以及NaN,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
==和===的区别
== 和 === 都是用来比较两个值是否相等的运算符
=== 运算符也被称为严格相等运算符,它不会进行类型转换。只有在两个操作数的值和类型完全相同时,===才会返回 true。
==比较时会进行类型转换,比较的是值
===比较时不会进行类型转换,既比较类型又比较值
详细解释:
==
0 == false
会返回true
,因为在比较之前,false
会被转换为数字0
。1 == "1"
会返回true
,因为在比较之前,字符串"1"
会被转换为数字1
。
===
0 === false
会返回false
,因为它们的类型不同。1 === "1"
会返回false
,因为一个是数字,一个是字符串。
// 使用 == 运算符比较
console.log(1 == "1"); // 输出 true,因为 "1" 被转换为数字 1,然后和数字 1 比较// 使用 === 运算符比较
console.log(1 === "1"); // 输出 false,因为一个是数字,一个是字符串,类型不同// 使用 == 运算符比较
console.log(0 == false); // 输出 true,因为 false 被转换为数字 0,然后和数字 0 比较// 使用 === 运算符比较
console.log(0 === false); // 输出 false,因为一个是数字,一个是布尔值,类型不同
NaN
NaN
是 JavaScript 中一种特殊的数值,表示 "Not a Number",通常用于表示一个无效的数值。当某个操作无法产生有效的数值时,就会返回 NaN
NaN表示不是一个数字
字符串类型的转换
字符串转换为数字:
若将14A32转换为数字,则结果为14,将A123转换为数字则结果为NaN
其他类型转换为boolean:
Number:0和NaN为false,其他的均为true
String:空字符串为false,其他均为true
Null和undefined:均为false
举个栗子:
console.log(0 / 0); // 输出 NaN,0 除以 0 会得到 NaN
console.log(Math.sqrt(-1)); // 输出 NaN,负数的平方根是无效的
console.log("Hello" / 5); // 输出 NaN,字符串除以数字会得到 NaN
console.log(parseInt("Hello")); // 输出 NaN,无法将字符串转换为整数
注意:
俩个NaN进行比较时,也会返回false,NaN在比较时被视为不相等
在处理可能产生NaN的情况时,通常可以使用 isNaN() 函数来检查一个值是否为NaN
console.log(isNaN("Hello")); // 输出 true,"Hello" 无法转换为数值,因此是 NaN
console.log(isNaN(123)); // 输出 false,123 是一个有效的数值
这篇关于JS基础语法之==和===的区别以及NaN的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!