数据类型与全等于

数据类型与全等于

PS:重要的知识 不可忘却

常见的基本数据类型
Undefined、Null、Boolean、Number、String、Symbol;
复合数据类型
Object、Array、Function

全等于(===)
不会进行类型转换:当使用全等于进行比较时,如果两个操作数的类型不同,则直接返回 false,不会尝试转换类型。
值和类型都必须相等:仅当两个操作数在没有类型转换的情况下相等时,才返回 true**得知在全等于时,只要数据类型不同 则始终为false**
接下来做测试在==状况时,各基本数据类型之间的结果(没有太大意义可选择阅读)
// Undefined 与 Null 比较
// 特殊!按照 ECMAScript 规范,它们被视为等价的空值。
console.log(undefined == null); // 输出:true
// Undefined 与 Boolean 比较
console.log(undefined == true); // 输出:false
console.log(undefined == false); // 输出:false
// Undefined 与 Number 比较
console.log(undefined == 0); // 输出:false
console.log(undefined == 1); // 输出:false
// Undefined 与 String 比较
console.log(undefined == ''); // 输出:false
console.log(undefined == 'some string'); // 输出:false

// Null 与 Boolean 比较
console.log(null == true); // false
console.log(null == false); // false
// Null 与 Number 比较
console.log(null == 0); // false
console.log(null == NaN); // false
// Null 与 String 比较
console.log(null == ""); // false
console.log(null == "null"); // false

// Boolean 与 Number 比较
console.log(true == 1); // true
console.log(false == 0); // true
// Boolean 与 String 比较
console.log(true == "1"); // true
console.log(false == "0"); // true

// Number 与 String 比较
console.log(0 == "0"); // true
console.log(1 == "1"); // true
console.log(NaN == "NaN"); // false (特殊情况: NaN 不等于任何值,包括它自己)
**
得出除Boolean与Number(数字非0和非负数时为真,否则为假)
Boolean与String(只要不为空字符串即为真)
Number与String(数字和字符串内容一样即为真)
其余情况都为假
复合数据类型测试(过程不再写),得出结果都为false
**


总结:在实际开发中,最好使用全等于,有时需要根据后台数据
先进行判断某项属性是否有值再渲染视图,
这时一定要明确根据数据类型什么情况下是true什么情况下是false。
比如:常见的会有null[]{}或是undefined"",
if(''){console.log(123)}//undefined
if('1'){console.log(123)}//123
if({}){console.log(123)}//123
if([]){console.log(123)}//123
数组可以根据length的来判断不为空、
对象可以根据obj && Object.keys(obj).length > 0来判断不为空。

拓展:在对比数字精度时,例如:1.00===1是为true的
(JavaScript中,所有的数字都是以64位浮点数形式存储的(遵循IEEE 754标准)
实际上是在比较两个相同类型(Number)且值相等的变量)。
NaNNaN是一个特殊的值,代表"Not-a-Number"(不是一个数字)。
尽管NaN用于表示非数字,但它本身按照技术定义,却是属于数字类型(Number)。
产生的原因:无法返回具体数字结果的数学运算中。例:
非数字与数字进行算术运算:
console.log("abc" * 2); // NaN
对非数字应用数学函数:
console.log(Math.sqrt(-1)); // NaN
0除以0的结果:
console.log(0 / 0); // NaN
Infinity除以Infinity的结果:
console.log(Infinity / Infinity); // NaN
特性:有一些独特的特性,最重要的是它与任何值都不相等,包括它自身。
console.log(NaN === NaN); // false
因此,JavaScript提供了isNaN()函数来检查一个值是否是NaN。isNaN()会尝试将其参数转换为数字,如果转换后的值是NaN,则返回true
  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值