讲讲 javascript 数据类型的一些怪异特性:javascript是一种十分灵活的脚本语言,除了众所周知的弱类型弱定义,本文再列举一些不太关于javascript 数据类型 的怪异特性:1. javascript中的String 类型是原始类型,即它是放在栈中而不是堆中的,这与其他语言不同。2. null 和 undefine ,虽然Javascript 把他们定义为相等,alert(null==undefined)试试!
但是他们的含义不同,undefined 是声明了变量但是从未对其初始化或赋值。null则是不存在的意思。如果函数或方法要返回的是对象,那么找不到该对象时,返回的都是null。3.null也是object对象。被认为是对象的占位符。alert(typeof null) 试试!4.NaN(Not a Number),表示非数。但是,奇特之处在于,它与自身不相等。alert(NaN==NaN) ,返回的是false。所以,我们一般不推荐使用NaN值本身,而是使用isNaN() 来判断。5.一般语言用双引号""表示字符串,用单引号'表示字符。而javascript不分,所以下面都是一样的。
var ss = "blue"; var ss='blue';6.javascrip所有的对象都有toString()方法,不管它是对象还是伪对象。因为String类型属于伪对象,所以一定有toString()方法(当然除了null)
alert(document.toString()) 试试!
其实null也有转为字符串的方法:强制转换(得意地笑)
var s1=String(null);
alert(s1);

解决方案 »

  1.   

    加一句toString方法无法被继承
      

  2.   

    接分的!!帮你顶!!我也学习javascript
      

  3.   

    呵呵,javascript的有些特性是有点莫名其妙
      

  4.   

    顺便说句c#也是所有的东东都有tostring
      

  5.   

    在脚本语言里面,难道用弱类型不方便?flash的as不也是弱类型的么?
    人家这么定义自然有方便的道理.
      

  6.   

    javascript中的函数还都是类呢!
    javascript中古怪离奇的事情还少么?
      

  7.   

    thank you 
    接分。。
      

  8.   

    楼主的JS真是出神入化了,我经常被一些很简单的JS错误搞得一头雾水。
      

  9.   

     javascript  一向都用怪异的眼光看他
      

  10.   

    function classFunction()
    {
      var xx;
      var yy;
      function bFun();
    }
    var ob=new classFunction();
      

  11.   

    null与undefined是不相等的,alert(null===undefined)看看吧。至于==与===运算符的区别,请参考《JavaScript权威指南》或者之类的书。
      

  12.   

    lz对script颇有研究,值得一学