javascript不同類型數(shù)據(jù)之間的運(yùn)算的轉(zhuǎn)換方法
基礎(chǔ)數(shù)據(jù)之間的轉(zhuǎn)換
| 原始數(shù)據(jù)類型 | 目標(biāo)類型Number |
| undefined | NaN |
| null | 0 |
| false | 0 |
| true | 1 |
| 數(shù)字串 | 相應(yīng)的數(shù)字 |
| 不能轉(zhuǎn)化的字符串 | NaN |
| 原始數(shù)據(jù)類型 | 目標(biāo)類型String |
| undefined | undefined |
| null | null |
| false | false |
| true | true |
| 數(shù)字 | 數(shù)字字符串 |
不同類型的基礎(chǔ)數(shù)據(jù)之間的加法,數(shù)據(jù)先轉(zhuǎn)換為number,然后轉(zhuǎn)換為string(如果有string類型數(shù)據(jù)參與運(yùn)算)
null + undefined // 0+NaN
null + false // 0+0
1 + true // 1+1
1 + '1' //'11';數(shù)字與字符串相加結(jié)果是字符串
1 + 2 + '3' //'33';(1+2)的結(jié)果然后與'3'相加;這里要把每一步加法單獨(dú)拆開來看,否則變成和下面一樣的結(jié)果了.
1 + (2 +'3') //'123';先運(yùn)算2+'3',然后1+'23'
's' + null //'snull'
's' + undefined // 'sundefined'
's' + true //'strue'
1 + true + undefined + 's' // 1+1+NaN+'s'=2+NaN+'s'=NaN+'s'=NaNs
對(duì)象參與加減法運(yùn)算
對(duì)象參與基礎(chǔ)類型數(shù)據(jù)運(yùn)算,先轉(zhuǎn)化為基礎(chǔ)類型。先調(diào)用其valueOf方法,如果返回的不是基礎(chǔ)類型,再調(diào)用其toString方法,如果返回的還不是基礎(chǔ)類型,則拋出錯(cuò)誤。但是,Date數(shù)據(jù)剛好相反
//為了便于觀察重寫Date的toString方法和valueOf方法
Date.prototype.toString = function(){
return 1;
}
Date.prototype.valueOf = function(){
return 2;
}
var a = new Date,
b = new Date;
a + b; // 調(diào)用toString,1 + 1,結(jié)果是2
// 再重寫toString方法
Date.prototype.toString = function(){
return {};
}
var c = new Date,
d = new Date;
c + d; // 調(diào)用toString方法返回的不是基礎(chǔ)類型,再調(diào)用valueOf,2 + 2,結(jié)果是4
// 再重寫valueOf方法
Date.prototype.valueOf = function(){
return {};
}
var e = new Date,
f = new Date;
e + f; // 報(bào)錯(cuò)
把上面的例子換成Object或者其他類型能得到相應(yīng)的結(jié)果,不過是先調(diào)用valueOf,再調(diào)用toString。
'+'號(hào)的神奇功效
數(shù)據(jù)前有加號(hào)‘+',可以讓字符串轉(zhuǎn)化為數(shù)字
+'1'+1 // 2
+'s'+2 // NaN
注:第一次,格式不好,紕漏多,歡迎大家拍磚
- js 數(shù)據(jù)類型轉(zhuǎn)換總結(jié)筆記
- JavaScript中數(shù)據(jù)類型轉(zhuǎn)換總結(jié)
- js整數(shù)字符串轉(zhuǎn)換為金額類型數(shù)據(jù)(示例代碼)
- 簡(jiǎn)單介紹JavaScript數(shù)據(jù)類型之隱式類型轉(zhuǎn)換
- js數(shù)值計(jì)算時(shí)使用parseInt進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換(jquery)
- JavaScript的數(shù)據(jù)類型轉(zhuǎn)換原則(干貨)
- JavaScript轉(zhuǎn)換數(shù)據(jù)庫DateTime字段類型方法
- javascript 數(shù)據(jù)類型轉(zhuǎn)換(parseInt,parseFloat)
- JavaScript中的數(shù)據(jù)類型轉(zhuǎn)換方法小結(jié)
- JavaScript數(shù)據(jù)類型轉(zhuǎn)換實(shí)例(其他類型轉(zhuǎn)字符串、數(shù)值型、布爾類型)
相關(guān)文章
JavaScript中使用arguments獲得函數(shù)傳參個(gè)數(shù)實(shí)例
這篇文章主要介紹了JavaScript中使用arguments獲得函數(shù)傳參個(gè)數(shù)實(shí)例,本文用了多個(gè)例子來講解arguments的使用,需要的朋友可以參考下2014-08-08
JS項(xiàng)目中對(duì)本地存儲(chǔ)進(jìn)行二次的封裝的實(shí)現(xiàn)
這篇文章主要介紹了JS項(xiàng)目中對(duì)本地存儲(chǔ)進(jìn)行二次的封裝,這里我們將要使用到的key存儲(chǔ)下來,新建一個(gè)叫constant-storage.js的文件,對(duì)外暴露一些key的鍵名,也方便后期統(tǒng)一修改,這里因?yàn)槎际呛懔?,所以名稱我們都用大寫表示,需要的朋友可以參考下2022-07-07
在JavaScript中添加css樣式(js追加類)代碼示例
這篇文章主要給大家介紹了關(guān)于在JavaScript中如何添加css樣式,也就是js追加類的相關(guān)資料,JavaScript是一種廣泛應(yīng)用于互聯(lián)網(wǎng)開發(fā)的編程語言,它能夠幫助網(wǎng)頁實(shí)現(xiàn)動(dòng)態(tài)效果和交互性,需要的朋友可以參考下2024-01-01
Javascript從數(shù)組中隨機(jī)取出不同元素的兩種方法
這篇文章給大家分享了兩種Javascript從數(shù)組中隨機(jī)取出不同元素的方法,大家可以都學(xué)習(xí)學(xué)習(xí),這樣更能有助于大家的學(xué)習(xí)和理解,下面來一起看看吧2016-09-09

