首頁  >  文章  >  web前端  >  javascript不同類型資料之間的運算的轉換方法_javascript技巧

javascript不同類型資料之間的運算的轉換方法_javascript技巧

WBOY
WBOY原創
2016-05-16 17:00:06938瀏覽

js中不同類型的基礎資料之間可以轉換,這種轉換是有規則可尋的,並非隨意的隨機的。在js中有5種基礎型別資料:string、number、boolean、null、undefined,其中,常用於計算或比較的型別是前面三種。

基礎資料之間的轉換

其它类型转化数字
原始数据类型 目标类型Number
undefined NaN
null 0
false 0
true 1
数字串 相应的数字
不能转化的字符串 NaN
其它类型转化为字符串
原始数据类型 目标类型String
undefined undefined
null null
false false
true true
数字 数字字符串

 

不同類型的基礎資料之間的加法,資料先轉換為number,然後轉換為string(如果有string型資料參與運算)

複製程式碼 程式碼如下:

null undefined // 0 Na>

null undefined // 0 Na>

null undefined // 0 Na> null false // 0 0

1 true // 1 1

1 '1' //'11';數字與字串相加結果是字串

1 2 '3'  //'33';(1 2)的結果然後與'3'相加;這裡要把每一步加法單獨拆開來看,否則變成和下面一樣的結果了.

1 (2 '3') //'123';先運算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

對象參與加減法運算

物件參與基礎類型資料運算,先轉換為基礎型別。先呼叫其valueOf方法,如果傳回的不是基礎類型,再呼叫其toString方法,如果傳回的還不是基礎類型,則拋出錯誤。但是,Date資料剛好相反

複製程式碼
程式碼如下:


//為了便於觀察重寫和Date的toString方法和Date的toString方法和Date的toString方法和Date的toString方法和Date的toString方法和Date的toString方法和Date的toString方法和Date的toString方法和Date的toString方法valueOf方法

Date.prototype.toString = function(){
    return 1;
}

Date.prototype.valueOf = function(){
return 2;
}

var a = new Date,
    b = new Date;

a b; // 呼叫toString,1 1,結果是2

a b; // 呼叫toString,1 1,結果是2

// 再重寫toString方法

Date.prototype.toString = function(){

    return {};
}

var c = new Date ,
    d = new Date;

c d; // 呼叫toString方法回傳的不是基礎型,再呼叫valueOf,2 2,結果是4

//再重寫valueOf方法
Date.prototype.valueOf = function(){

    return {};
}

var e = new Date,
}
var e = new Date,

 >

e f; // 報錯

把上面的例子換成Object或其他型別能得到對應的結果,不過是先呼叫valueOf,再呼叫toString。

複製程式碼


程式碼如下:

'1' 1 // 2 '1' 1 // 2 '1' 1 > 's' 2 // NaN 註:第一次,格式不好,紕漏多,歡迎大家拍磚
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn