憨厚生

          ----Java's Slave----
          ***Java's Host***

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            165 隨筆 :: 17 文章 :: 90 評論 :: 0 Trackbacks
               在一些框架中看到了類似這樣的寫法:+new Date();感覺有些怪,查閱了相關資料和一些網友的幫助.對此用法解釋如下,希望對大家有所幫助,不合適的地方請大家指正!
          一,對于引用類型對象(我指的是String,Date,Object,Array,Function,Boolean)的+運算符運算過程如下!
              1,首先調用此對象的valueOf方法,得到返回數值A
              2,然后把此數值A轉換成數字,得到的是最終數值 

              我的測試如下:
             
          function w(s){
                document.writeln("<br/>");
                document.writeln(s);
                document.writeln("<br/>-----------------------------");
                }
             String.prototype.valueOf=function(){return 1;};
             w(+new String("sss"));//輸出1
             String.prototype.valueOf=function(){return "a";};
              w(+new String("sss"));//輸出NaN
            
            
             Date.prototype.valueOf=function(){return 1;};
             w(+new Date());//輸出1
             Date.prototype.valueOf=function(){return "a";};
              w(+new Date());//輸出NaN
            
             Object.prototype.valueOf=function(){return 1;};
             w(+{});//輸出1
             Object.prototype.valueOf=function(){return "a";};
              w(+{});//輸出NaN
            
             Array.prototype.valueOf=function(){return 1;};
             w(+[]);//輸出1
             Array.prototype.valueOf=function(){return "a";};
              w(+[]);//輸出NaN
            
             var s=function(){};
             Function.prototype.valueOf=function(){return 1;};
             w(+s);//輸出1
             Function.prototype.valueOf=function(){return "a";};
              w(+s);//輸出NaN
            
             Boolean.prototype.valueOf=function(){return 1;};
             w(+new Boolean());//輸出1
             Boolean.prototype.valueOf=function(){return "a";};
             w(+new Boolean());//輸出NaN
          二,對于基本數據數據類型,其值轉換成數字
              w(+5);//輸出5
              w(+true);//輸出1
              w(+false);//輸出0
              w(+"ss");//輸出NaN
              w(+"111");//輸出111

          posted on 2009-12-04 10:00 二胡 閱讀(1143) 評論(0)  編輯  收藏 所屬分類: JS
          主站蜘蛛池模板: 枝江市| 若尔盖县| 南丹县| 荣昌县| 聂拉木县| 诸暨市| 来宾市| 霍城县| 洪泽县| 西充县| 甘肃省| 繁峙县| 同仁县| 南安市| 西华县| 盐源县| 新乡县| 张家口市| 惠安县| 海晏县| 永福县| 南部县| 锡林郭勒盟| 大宁县| 广昌县| 于田县| 恩施市| 兴城市| 咸丰县| 东乡族自治县| 泰和县| 荣昌县| 宁强县| 平凉市| 武平县| 柘荣县| 惠安县| 介休市| 怀来县| 陇南市| 天水市|