书中说 当一个非空对象用在布尔环境中的时候, 它都转换为true。
并举例说 new String("")  new Array() 会转换为true。 《犀牛书第五版》50页。
这两个不是空对象吗?

解决方案 »

  1.   

    这个不是空对象,new String("") 或 new Array()都是有对象实例的,书上说的空对象是指对象的值是:null 或 undefined 。 证明方式是new String("") 或 new Array()调用相应的对象方法都是可以成功的。例如 array 的 push,pop方法等。
      

  2.   

    空对象是指的“纯粹的、干净的Object”,而不是其他对象的实例{} 
    new Object()
    null
      

  3.   

    空对象一般理解为 null  , 与undefined还是有点区别的你可以试一下:var o = null;alert(o == undefined);     //true
    alert(typeof(o) == undefined); // false   因为o的类型是object