obj1={a:1,b:2}
obj2={a:1,b:2}
if(obj1==obj2){alert('相等')}

解决方案 »

  1.   

    首先obj1和obj2都是object类型,它们的type一样。所以==转变为===,然后根据===的规则处理。对于两边都是object类型,===的规则是,如果两边是同一个object,则它们相等,返回true。
    如果是不同的object,即使是两个object有完全相同的properties,则不相等,返回false。上面的obj1和obj2就是有着完全相同的properties的两个不同object。
      

  2.   

    因为你的obj1和obj2不是字符串,而是对象,对象好像不能比较吧,要先转才能比较,所以才不相等
      

  3.   

    引用类型比较的是内存地址,不是内容
    建议使用 .equal()
      

  4.   

    对于复合类型  引用相同时才相等  否则是不想等的  你的两个对象虽然值相等,但他们在内存中处在不同的位置,所以引用他们的obj1和obj2指向不同的对象  所以不相等
      

  5.   

    .equal?楼上这些人是在说的js吗?搞笑呢吧