亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

《javascript高級程序設計》筆記:valueOf() / toString() 對比

yzzz / 3493人閱讀

摘要:中這樣描述和調(diào)用方法用來把對象轉(zhuǎn)換成原始類型的值數(shù)值字符串和布爾值。你很少需要自己調(diào)用此函數(shù)當遇到一種需要轉(zhuǎn)換成一個原始值情況時候,會自動調(diào)用此函數(shù)。默認情況下會被每個對象繼承。

MDN 中這樣描述 valueOf()toString():

  JavaScript 調(diào)用 valueOf() 方法用來把對象轉(zhuǎn)換成原始類型的值(數(shù)值、字符串和布爾值)。
你很少需要自己調(diào)用此函數(shù);當遇到一種需要轉(zhuǎn)換成一個原始值情況時候, JavaScript 會自動調(diào)
用此函數(shù)。

  默認情況下, valueOf() 會被每個對象Object繼承。每一個內(nèi)置對象都會覆蓋這個方法為了返回
一個合理的值,如果對象沒有原始值,valueOf() 就會返回對象自身;

  每個對象都有一個 toString() 方法,當對象被表示為文本值時或者當以期望字符串的方式引用
對象時,該方法被自動調(diào)用。默認情況下,toString() 方法被每個繼承自Object的對象繼承。如
果此方法在自定義對象中未被覆蓋,toString() 返回 "[object type]",其中type是對象類型

簡單的說:
valueOf()函數(shù)用于返回指定對象的原始值;
toString()函數(shù)用于返回指定對象的字符串;

對象 valueOf() 返回值 toString() 返回值
Number 數(shù)字值(number) 數(shù)字值(string)
String 字符串值 字符串值
Boolean 布爾值 字符串值
Object 對象本身 字符串值
Function 函數(shù)本身 字符串值
Date 以毫秒數(shù)存儲的時間值(number) 標準時間輸出(string)
// Number
var num = 15.26540,
    num2 = new Number(15.26540);
console.log( "valueOf", num.valueOf() === num ); // true number類型 
console.log( "toString", num.toString() === num );// false string類型
console.log( "valueOf", num2.valueOf() === num2 ); // false number類型 
console.log( "toString", num2.toString() === num2 );// false string類型
console.log( num.valueOf() === num.toString());// false
console.log( num2.valueOf() === num2.toString());// false

// String
var str = "abcd",
    str2 = new String("abcd");
console.log( "valueOf", str.valueOf() === str );// true string類型
console.log( "toString", str.toString() === str );// true string類型
console.log( "valueOf", str2.valueOf() === str2 );// false string類型
console.log( "toString", str2.toString() === str2 );// false string類型
console.log( str.valueOf() === str.toString());// true
console.log( str2.valueOf() === str2.toString());// true

// Boolean
var bool = true,
    bool2 = new Boolean(true);
console.log( "valueOf", bool.valueOf() === bool );// true string類型
console.log( "toString", bool.toString() === bool );// false string類型
console.log( "valueOf", bool2.valueOf() === bool2 );// false boolean類型
console.log( "toString", bool2.toString() === bool2 );// false string類型
console.log( bool.valueOf() === bool.toString());// false
console.log( bool2.valueOf() === bool2.toString());// false

// Object
var obj = {name: "張三", age: 18};
console.log( "valueOf", obj.valueOf() === obj );// true object類型
console.log( "toString", obj.toString() === obj );// false string類型
console.log( obj.valueOf() === obj.toString());// false

// Function
var fn = function(){},
    fn2 = new Function("x", "y", "return x+y")
console.log( "valueOf", fn.valueOf() === fn );// true object類型
console.log( "toString", fn.toString() === fn );// false string類型
console.log( "valueOf", fn2.valueOf() === fn2 );// true object類型
console.log( "toString", fn2.toString() === fn2 );// false string類型
console.log( fn.valueOf() === fn.toString());// false
console.log( fn2.valueOf() === fn2.toString());// false

// Date
var date = new Date();
console.log( "valueOf", date.valueOf() );// 1501830320383 number類型
console.log( "toString", date.toString() );// Fri Aug 04 2017 15:05:45 GMT+0800 (中國標準時間) string類型
console.log( date.valueOf() === date.toString());// false

移步:valueOf() / toString()深入分析對比

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/84658.html

相關(guān)文章

  • JavaScript高級程序設計筆記:基本概念

    摘要:一寫在前面最近重讀高級程序設計,總結(jié)下來,查漏補缺。但這種影響是單向的修改命名參數(shù)不會改變中對應的值。這是因為對象的長度是由傳入的參數(shù)個數(shù)決定的,不是由定義函數(shù)時的命名參數(shù)的個數(shù)決定的。實際改變會同步,改變也會同步 一、寫在前面 最近重讀《JavaScript高級程序設計》,總結(jié)下來,查漏補缺。 二、JS簡介 2.1 JS組成 ECMAscript:以ECMA-262為基礎的語言,由...

    ygyooo 評論0 收藏0
  • JavaScript高級程序設計》讀書筆記

    摘要:為了每個對象都能通過來檢測,需要以或者的形式來調(diào)用,傳遞要檢查的對象作為第一個參數(shù),稱為。對象都是動態(tài)的,這就意味著每次訪問對象,都會運行一次查詢。是語言中立的用于訪問和操作和文檔。 一、第三章 基本概念: 1.理解參數(shù) 1.1 可以向函數(shù)中傳遞任意數(shù)量的參數(shù),并且可以通過arguments對象來訪問這些參數(shù)。 1.2 arguments對象只是類似數(shù)組,它通過length來確定傳進來...

    dayday_up 評論0 收藏0
  • 讀書筆記(06) - 語法基礎 - JavaScript高級程序設計

    摘要:寫在開頭本篇是小紅書筆記的第六篇,也許你會奇怪第六篇筆記才寫語法基礎,筆者是不是穿越了??梢撇焦P者的文章中替換方式參考文檔高級程序設計作者以樂之名本文原創(chuàng),有不當?shù)牡胤綒g迎指出。 showImg(https://segmentfault.com/img/bVblGMc?w=600&h=400); 寫在開頭 本篇是小紅書筆記的第六篇,也許你會奇怪第六篇筆記才寫語法基礎,筆者是不是穿越了。...

    iOS122 評論0 收藏0
  • JS的String()、toString()、valueOf()的一些隱秘特性

    摘要:默認情況下,方法以十進制格式返回數(shù)值的字符串表示。注意,默認的沒有參數(shù)的輸出值與指定基數(shù)時的輸出值相同。但是,在上,他們兩個表現(xiàn)出了截然不同的形式,在對一個對象類型進行時,直接返回原對象,而則返回。 toString()方法 要把一個值轉(zhuǎn)換為一個字符串,最常用的就是,使用幾乎每個值都有的toString()方法,這個方法唯一要做的就是返回相應值的字符串表現(xiàn)。 數(shù)值、布爾值、對象和字符串...

    姘擱『 評論0 收藏0
  • javascript高級程序設計筆記:關(guān)系運算符與相等運算符

    摘要:要比較相等性之前,不能將和轉(zhuǎn)換成其他任何值。如果有一個操作數(shù)是,則相等操作符返回,而不相等操作符返回。重要提示即使兩個操作數(shù)都是,相等操作符也返回因為按照規(guī)則,不等于。 關(guān)系運算符 關(guān)系運算符有小于()、小于等于(=)四種,它們都返回一個布爾值 《javascript高級程序設計》書中的規(guī)則是這樣描述運算規(guī)則: (1)如果兩個操作數(shù)都是數(shù)值,則執(zhí)行數(shù)值比較; (2)如果兩個操作數(shù)都是字...

    Blackjun 評論0 收藏0

發(fā)表評論

0條評論

yzzz

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<