最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JavaScript进阶系列—类型中的相等与比较

来源:懂视网 责编:小采 时间:2020-11-27 20:25:26
文档

JavaScript进阶系列—类型中的相等与比较

JavaScript进阶系列—类型中的相等与比较:等于操作符严格等于操作符比较对象结论JavaScript 有两种方式判断两个值是否相等。等于操作符等于操作符由两个等号组成:==JavaScript 是弱类型语言,这就意味着,等于操作符会为了比较两个值而进行强制类型转换。"" == "0&q
推荐度:
导读JavaScript进阶系列—类型中的相等与比较:等于操作符严格等于操作符比较对象结论JavaScript 有两种方式判断两个值是否相等。等于操作符等于操作符由两个等号组成:==JavaScript 是弱类型语言,这就意味着,等于操作符会为了比较两个值而进行强制类型转换。"" == "0&q

  • 等于操作符

  • 严格等于操作符

  • 比较对象

  • 结论

  • JavaScript 有两种方式判断两个值是否相等。

    等于操作符

    等于操作符由两个等号组成:==

    JavaScript 是弱类型语言,这就意味着,等于操作符会为了比较两个值而进行强制类型转换。

    "" == "0" // false
    0 == "" // true
    0 == "0" // true
    false == "false" // false
    false == "0" // true
    false == undefined // false
    false == null // false
    null == undefined // true
    " \t\r\n" == 0 // true

    上面的表格展示了强制类型转换,这也是使用 == 被广泛认为是不好编程习惯的主要原因, 由于它的复杂转换规则,会导致难以跟踪的问题。

    此外,强制类型转换也会带来性能消耗,比如一个字符串为了和一个数字进行比较,必须事先被强制转换为数字。

    严格等于操作符

    严格等于操作符由三个等号组成:===

    不像普通的等于操作符,严格等于操作符不会进行强制类型转换。

    "" === "0" // false
    0 === "" // false
    0 === "0" // false
    false === "false" // false
    false === "0" // false
    false === undefined // false
    false === null // false
    null === undefined // false
    " \t\r\n" === 0 // false

    上面的结果更加清晰并有利于代码的分析。如果两个操作数类型不同就肯定不相等也有助于性能的提升。

    比较对象

    虽然 == 和 === 操作符都是等于操作符,但是当其中有一个操作数为对象时,行为就不同了。

    {} === {}; // false
    new String('foo') === 'foo'; // false
    new Number(10) === 10; // false
    var foo = {};
    foo === foo; // true

    这里等于操作符比较的不是值是否相等,而是是否属于同一个身份;也就是说,只有对象的同一个实例才被认为是相等的。 这有点像 Python 中的 is 和 C 中的指针比较。

    注意:为了更直观的看到==和===的区别,可以参见JavaScript Equality Table

    结论

    强烈推荐使用严格等于操作符。如果类型需要转换,应该在比较之前显式的转换, 而不是使用语言本身复杂的强制转换规则。

    文档

    JavaScript进阶系列—类型中的相等与比较

    JavaScript进阶系列—类型中的相等与比较:等于操作符严格等于操作符比较对象结论JavaScript 有两种方式判断两个值是否相等。等于操作符等于操作符由两个等号组成:==JavaScript 是弱类型语言,这就意味着,等于操作符会为了比较两个值而进行强制类型转换。"" == "0&q
    推荐度:
    标签: 中的 比较 类型
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top