成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一篇搞懂 toString()函數與valueOf()函數

開發 前端
引用類型在轉化為number的時候,首先會判斷對象是否含有valueOf函數,如果有,那就調用valueOf函數,把它的返回值轉為數字,然后返回;如果沒有valueOf函數,就調用toString函數,將返回值轉為數字并返回。如果toString或者valueOf都不能獲取到原始值的話,那就拋出類型轉換異常。

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

比如我們定一個 Object 類型數據:

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

toString()

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 函數:

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

valueOf()

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

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

在發生數據類型轉換的時候,有liang兩種場景:

  1. 引用數據類型轉為String,先是調用toString函數,有值的話,就直接返回該字符串;如果對象沒有toString,那就調用valueOf函數,然后將原始值轉為字符串并且返回;如果toString或者valueOf都不能獲取原始值,那就拋出類型轉換異常;
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函數,它的返回值也是一個空數組,也不能轉為字符串,那就只能拋出類型轉換異常了。

  1. 引用類型在轉化為number的時候,首先會判斷對象是否含有valueOf函數,如果有,那就調用valueOf函數,把它的返回值轉為數字,然后返回;如果沒有valueOf函數,就調用toString函數,將返回值轉為數字并返回。如果toString或者valueOf都不能獲取到原始值的話,那就拋出類型轉換異常。
責任編輯:武曉燕 來源: 讀心悅
相關推薦

2022-04-12 08:30:52

回調函數代碼調試

2021-12-01 11:33:21

函數Min

2022-07-06 08:17:50

C 語言函數選型

2021-01-29 18:41:16

JavaScript函數語法

2021-08-06 17:47:46

Kotin高階函數函數

2019-08-13 15:36:57

限流算法令牌桶

2020-06-03 11:06:26

DNS域名緩存

2019-07-09 14:17:28

Linux內存管理進程

2021-04-24 10:19:41

Python函數指向

2023-06-15 10:11:08

JavaScript函數表達式

2025-02-19 10:39:26

Python高階函數函數名

2021-05-15 10:16:14

Python匿名函數

2024-04-17 13:21:02

Python匿名函數

2021-03-24 10:00:32

Python遞歸函數Python基礎

2020-10-17 08:48:12

搞懂“智能聯接”

2020-11-06 10:01:06

Nginx

2021-05-21 09:01:29

JavaScript 前端函數閉包

2021-03-06 10:05:03

Python函數變量

2021-05-27 07:12:19

Python函數裝飾器

2022-07-06 12:07:06

Python函數式編程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黄色大片在线播放 | 777zyz色资源站在线观看 | 婷婷久久综合 | 国产成人精品午夜视频免费 | 久久精品视频在线观看 | 日本a∨视频 | 亚洲精品天堂 | 欧美精品1区2区3区 精品国产欧美一区二区 | 日韩欧美在线视频 | 亚洲国产精品网站 | 欧美成视频 | 999久久| 欧美视频三级 | 午夜tv免费观看 | 在线看亚洲 | 亚洲人免费视频 | 欧美激情国产精品 | 亚洲综合一区二区三区 | 日本成人中文字幕 | 亚洲视频免费观看 | 国产精品视频一区二区三区 | 国产二区在线播放 | 国产一区二区免费在线 | 欧美综合在线视频 | 中文字幕不卡 | 在线一级片 | 青青久久av北条麻妃海外网 | 偷派自拍 | 久久久www | 日日夜夜精品视频 | 欧美一级毛片久久99精品蜜桃 | 毛片区| 黑人一级黄色大片 | 久草电影网 | 日韩在线欧美 | 国产精品久久二区 | 久久久精品网站 | 久久99精品久久久 | 欧美精品成人 | 91九色在线观看 | 欧美一区|