JavaScript 加號(hào)(+)運(yùn)算符號(hào)
更新時(shí)間:2009年12月06日 00:48:42 作者:
在一些框架中看到了類似這樣的寫法:+new Date();感覺有些怪,查閱了相關(guān)資料和一些網(wǎng)友的幫助.對(duì)此用法解釋如下,希望對(duì)大家有所幫助,不合適的地方請(qǐng)大家指正!
一,對(duì)于引用類型對(duì)象(我指的是String,Date,Object,Array,Function,Boolean)的+運(yùn)算符運(yùn)算過程如下!
1,首先調(diào)用此對(duì)象的valueOf方法,得到返回?cái)?shù)值A(chǔ)
2,然后把此數(shù)值A(chǔ)轉(zhuǎn)換成數(shù)字,得到的是最終數(shù)值
我的測(cè)試如下:
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
二,對(duì)于基本數(shù)據(jù)數(shù)據(jù)類型,其值轉(zhuǎn)換成數(shù)字
w(+5);//輸出5
w(+true);//輸出1
w(+false);//輸出0
w(+"ss");//輸出NaN
w(+"111");//輸出111
1,首先調(diào)用此對(duì)象的valueOf方法,得到返回?cái)?shù)值A(chǔ)
2,然后把此數(shù)值A(chǔ)轉(zhuǎn)換成數(shù)字,得到的是最終數(shù)值
我的測(cè)試如下:
復(fù)制代碼 代碼如下:
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
二,對(duì)于基本數(shù)據(jù)數(shù)據(jù)類型,其值轉(zhuǎn)換成數(shù)字
復(fù)制代碼 代碼如下:
w(+5);//輸出5
w(+true);//輸出1
w(+false);//輸出0
w(+"ss");//輸出NaN
w(+"111");//輸出111
相關(guān)文章
bootstrap treeview 樹形菜單帶復(fù)選框及級(jí)聯(lián)選擇功能
這篇文章主要介紹了bootstrap treeview 樹形菜單帶復(fù)選框及級(jí)聯(lián)選擇功能,代碼超簡(jiǎn)單,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧2018-06-06JavaScript設(shè)計(jì)模式策略模式案例分享
這篇文章主要介紹了JavaScript設(shè)計(jì)模式策略模式案例分享,策略設(shè)計(jì)模式就是指一個(gè)問題匹配多個(gè)解決方法,不一定要用到哪一個(gè),而且有可能隨時(shí)增加多個(gè)方案2022-06-06IE6、IE7、Firefox javascript 無提示關(guān)閉窗口的代碼
2009-03-03JavaScript進(jìn)階教程之函數(shù)的定義、調(diào)用及this指向問題詳解
這篇文章主要給大家介紹了關(guān)于JavaScript進(jìn)階教程之函數(shù)的定義、調(diào)用及this指向問題的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-09-09BootStrap框架中的data-[ ]自定義屬性理解(推薦)
這篇文章主要介紹了BootStrap框架中的data-[ ]自定義屬性理解(推薦),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02JS實(shí)現(xiàn)獲取鍵盤按下的按鍵并顯示在頁面上的方法
這篇文章主要介紹了JS實(shí)現(xiàn)獲取鍵盤按下的按鍵并顯示在頁面上的方法,涉及JavaScript針對(duì)鍵盤事件及頁面元素的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11