JavaScript 加號(+)運算符號
更新時間:2009年12月06日 00:48:42 作者:
在一些框架中看到了類似這樣的寫法:+new Date();感覺有些怪,查閱了相關(guān)資料和一些網(wǎng)友的幫助.對此用法解釋如下,希望對大家有所幫助,不合適的地方請大家指正!
一,對于引用類型對象(我指的是String,Date,Object,Array,Function,Boolean)的+運算符運算過程如下!
1,首先調(diào)用此對象的valueOf方法,得到返回數(shù)值A(chǔ)
2,然后把此數(shù)值A(chǔ)轉(zhuǎn)換成數(shù)字,得到的是最終數(shù)值
我的測試如下:
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
二,對于基本數(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)用此對象的valueOf方法,得到返回數(shù)值A(chǔ)
2,然后把此數(shù)值A(chǔ)轉(zhuǎn)換成數(shù)字,得到的是最終數(shù)值
我的測試如下:
復制代碼 代碼如下:
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
二,對于基本數(shù)據(jù)數(shù)據(jù)類型,其值轉(zhuǎn)換成數(shù)字
復制代碼 代碼如下:
w(+5);//輸出5
w(+true);//輸出1
w(+false);//輸出0
w(+"ss");//輸出NaN
w(+"111");//輸出111
相關(guān)文章
JavaScript實現(xiàn)非常簡單實用的下拉菜單效果
這篇文章主要介紹了JavaScript實現(xiàn)非常簡單實用的下拉菜單效果,通過定義顯示及隱藏菜單項及鼠標事件調(diào)用該函數(shù)實現(xiàn)下拉菜單功能,需要的朋友可以參考下2015-08-08
Javascript拖拽系列文章1之offsetParent屬性
這個系列文章主要是講述實現(xiàn)Javascript拖拽功能的基礎(chǔ)知識,并將在最后給出一個完整的示例。適合對拖拽完全不懂的人閱讀2008-09-09
JavaScript 開發(fā)工具webstrom使用指南
本文給大家推薦了一款非常熱門的javascript開發(fā)工具webstrom,著重介紹了webstrom的特色功能、設(shè)置技巧、使用心得以及快捷鍵匯總,非常的全面。2014-12-12
JS實現(xiàn)點擊循環(huán)切換顯示內(nèi)容的方法
這篇文章主要介紹了JS實現(xiàn)點擊循環(huán)切換顯示內(nèi)容的方法,涉及javascript鼠標事件響應及頁面元素的獲取、屬性設(shè)置等相關(guān)操作技巧,需要的朋友可以參考下2017-10-10
JavaScript實現(xiàn)跑馬燈抽獎活動實例代碼解析與優(yōu)化(一)
這篇文章主要介紹了JavaScript實現(xiàn)跑馬燈抽獎活動實例代碼解析與優(yōu)化(一)的相關(guān)資料,需要的朋友可以參考下2016-02-02

