美文网首页JavaScript技术
JavaScript 类型比较

JavaScript 类型比较

作者: 暴躁程序员 | 来源:发表于2022-06-27 16:11 被阅读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
    

    相关文章

      网友评论

        本文标题:JavaScript 类型比较

        本文链接:https://www.haomeiwen.com/subject/tsfovrtx.html