JavaScript技术

JavaScript 类型比较

2022-06-27  本文已影响0人  暴躁程序员

1. 基础类型比较(不同类型数据比较)

  1. === 比较,必须在值和数据类型都相同的情况下,结果才为 true,否则为 false
console.log(100 === 100); // 结果:true
console.log(100 === '100'); // 结果:false
  1. == 比较,几种特殊情况
// 数字和字符串可以直接比较值,不看类型
console.log(100 == '100'); // 结果:true

// 1 和 true比较的结果为 true,0 和 false比较的结果为 true
console.log(true == '1'); // 结果:true
console.log(true == 1); // 结果:true
console.log(false == '0'); // 结果:true
console.log(false == 0); // 结果:true

// 1 和 true比较的结果为 true,0 和 false比较的结果为 true
console.log(false == ''); // 结果:true
console.log(undefined == null); // 结果:true

// false 和 空字符串比较的结果为true,undefined 和 null比较的结果为true
console.log(false == ''); // 结果:true
console.log(undefined == null); // 结果:true

// undefined、null、''、0转化成布尔类型的时候结果为 false,字符串'0'转化成布尔类型的时候结果为 true
console.log(!!undefined == false); // 结果:true
console.log(!!null == false); // 结果:true
console.log(!!'' == false); // 结果:true
console.log(!!0 == false); // 结果:true
console.log(!!'0' == false); // 结果:false,字符串0转化成布尔类型结果为false

2. 引用类型比较

两个引用类型比较,比较的不是值而是引用地址,只有引用地址相同才相等

  1. 引用类型比较引用地址
const a = { name: 'a' }
const b = { name: 'a' }
const c = a
console.log(a === b); // 结果:false ,就算值相等但是引用地址不同也不相等
console.log(a === c); // 结果:true 
  1. 引用类型比较值
const a = { name: 'a', age: 20 }
const b = { name: 'a', age: 20 }
console.log(a.name === b.name && a.age === b.age); // 结果:true
上一篇 下一篇

猜你喜欢

热点阅读