tostring 和 valueOf 函數是解決值的顯示和運算的問題。所有的 Object 類型的數據都自帶 toString 和 valueOf 函數。
比如我們定一個 Object 類型數據:
const obj = { name: "duxin"}console.log(obj.valueOf()); // { name: 'duxin' }
toString 函數的作用是把一個邏輯轉換為字符串,并且返回 Object 類型數據的 toString()默認的返回值"[object Object]"。
如果我們在定義對象的時候,可以重寫 tosString 函數,這樣 toString 的返回值可讀性會更好一些,比如:
const obj = { name: "duxin", toString:function(){ return this.name; }}console.log(obj.valueOf()); // { name: 'duxin' }console.log(obj.toString()); // duxin
以下這些函數都是有自定義的 toString 函數:
valueOf 函數返回引用類型的原始值,如果沒有原始值,就返回"{}",就是空對象的字面量。
在發生數據類型轉換的時候,有liang兩種場景:
var arr = [];arr.toString = function () { console.log('調用了toString()函數'); return [];};arr.valueOf = function () { console.log('調用了valueOf()函數'); return [];};console.log(String(arr));
在執行String(arr)的時候,是先將數組轉為字符串,調用的是toString,它的結果不能轉為string;
那就調用valueOf函數,它的返回值也是一個空數組,也不能轉為字符串,那就只能拋出類型轉換異常了。
本文鏈接:http://www.www897cc.com/showinfo-26-38114-0.html一篇搞懂 toString()函數與valueOf()函數,
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: Python中的單例模式,這些你都會嗎?