zoukankan      html  css  js  c++  java
  • javascript 隐性类型转换步骤

    这里说的隐性类型转换,是==引起的转换。

    1. 如果存在NaN,一律返回false
    2. 再看有没有布尔,有布尔就将布尔转换为数字
    3. 接着看有没有字符串, 有三种情况,对方是对象,对象使用toString进行转换;对方是数字,字符串转数字;对方是字符串,直接比较;其他返回false
    4. 如果是数字,对方是对象,对象取valueOf进行比较, 其他一律返回false
    5. null, undefined不会进行类型转换, 但它们俩相等

    这个顺序一定要死记。

    下面是一些例子,自己跑一下:

    0 == undefined      //false
     
    1 == true           //true
     
     
    2 == {valueOf: function(){return 2}}    //true
     
     
    NaN == NaN          //false
     
    8 == undefined      //false
     
    1 == undefined      //false
     
    null == {toString: function(){return 2}}   //false
      
    0 == null          //false
     
    null == 1          //false
    
    { toString:function(){ return 1 } , valueOf:function(){ return [] }} == 1

  • 相关阅读:
    多项式牛顿迭代
    小明A+B
    分拆素数和
    选课时间
    今年暑假不AC
    Lowest Common Multiple Plus
    大小写转换问题(java程序)
    VS 中输入带空格的两个字符串
    整除的尾数
    不要62
  • 原文地址:https://www.cnblogs.com/webbest/p/7251721.html
Copyright © 2011-2022 走看看