日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
一篇搞懂 toString()函數(shù)與valueOf()函數(shù)

tostring 和 valueOf 函數(shù)是解決值的顯示和運算的問題。所有的 Object 類型的數(shù)據(jù)都自帶 toString 和 valueOf 函數(shù)。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名與空間、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、隆昌網(wǎng)站維護(hù)、網(wǎng)站推廣。

比如我們定一個 Object 類型數(shù)據(jù):

const obj = {
    name: "duxin"
}
console.log(obj.valueOf()); // { name: 'duxin' }

toString()

toString 函數(shù)的作用是把一個邏輯轉(zhuǎn)換為字符串,并且返回 Object 類型數(shù)據(jù)的 toString()默認(rèn)的返回值"[object Object]"。

如果我們在定義對象的時候,可以重寫 tosString 函數(shù),這樣 toString 的返回值可讀性會更好一些,比如:

const obj = {
    name: "duxin",
    toString:function(){
        return this.name;
    }
}
console.log(obj.valueOf()); // { name: 'duxin' }
console.log(obj.toString()); // duxin

以下這些函數(shù)都是有自定義的 toString 函數(shù):

  1. Array 的 toString 函數(shù)返回值是以逗號分隔的字符串;
  2. Function 的 toString 函數(shù)返回值是函數(shù)自身的文本定義;
  3. Date 的 toString 函數(shù)返回值是時間字符串;

valueOf()

valueOf 函數(shù)返回引用類型的原始值,如果沒有原始值,就返回"{}",就是空對象的字面量。

  1. Array的valueOf函數(shù)返回的值數(shù)組本身;
  2. Function的valueOf函數(shù)返回的是函數(shù)本身;
  3. Date的valueOf函數(shù)返回的值時間戳。

在發(fā)生數(shù)據(jù)類型轉(zhuǎn)換的時候,有l(wèi)iang兩種場景:

  1. 引用數(shù)據(jù)類型轉(zhuǎn)為String,先是調(diào)用toString函數(shù),有值的話,就直接返回該字符串;如果對象沒有toString,那就調(diào)用valueOf函數(shù),然后將原始值轉(zhuǎn)為字符串并且返回;如果toString或者valueOf都不能獲取原始值,那就拋出類型轉(zhuǎn)換異常;
var arr = [];

arr.toString = function () {
     console.log('調(diào)用了toString()函數(shù)');
     return [];
};

arr.valueOf = function () {
     console.log('調(diào)用了valueOf()函數(shù)');
     return [];
};

console.log(String(arr));

在執(zhí)行String(arr)的時候,是先將數(shù)組轉(zhuǎn)為字符串,調(diào)用的是toString,它的結(jié)果不能轉(zhuǎn)為string;

那就調(diào)用valueOf函數(shù),它的返回值也是一個空數(shù)組,也不能轉(zhuǎn)為字符串,那就只能拋出類型轉(zhuǎn)換異常了。

  1. 引用類型在轉(zhuǎn)化為number的時候,首先會判斷對象是否含有valueOf函數(shù),如果有,那就調(diào)用valueOf函數(shù),把它的返回值轉(zhuǎn)為數(shù)字,然后返回;如果沒有valueOf函數(shù),就調(diào)用toString函數(shù),將返回值轉(zhuǎn)為數(shù)字并返回。如果toString或者valueOf都不能獲取到原始值的話,那就拋出類型轉(zhuǎn)換異常。

標(biāo)題名稱:一篇搞懂 toString()函數(shù)與valueOf()函數(shù)
標(biāo)題網(wǎng)址:http://m.5511xx.com/article/cojpeoo.html