请问javascript对象类型的问题?
document.write (typeof(Object(123)));显示的是object
document.write (typeof(Object("123")));显示的是object
document.write (typeof(Object(true)));显示的是object
document.write (typeof(Array(0)));显示的是object
document.write (typeof(String("123")));显示的是头个字母小写的string
document.write (typeof(Number(123)));显示的是头个字母小写的number
发现只有Object和Array返回的类型才是对象,而从String和Number返回的类型显示的就不是object,可是String("123")和Number(123)又可以写成String("123").constructor和Number(123).constructor那么就是说只有对象才有constructor构造函数,而他们的类型却不是显示object,请问返回值的类型为string和number算不算对象?

解决方案 »

  1.   

    只有function才有constructor.
    从对象的角度来看,js中一切都是对象
    从函数的角度来看,js中一切都是值.
    联想下波粒二象性,就觉得没什么奇怪的了.
      

  2.   


    <script type="text/javascript">
    <!--
    document.write (typeof(new String("123")));//显示的是头个字母小写的string 
    document.write (typeof(new Number(123)));//显示的是头个字母小写的number 
    //-->
    </script>引用类型和原始类型是不一样的