成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

關于JS類型轉換的筆記

Cc_2011 / 2266人閱讀

摘要:文獻權威指南類型轉換章節(jié)對象到的具體代碼跟對象到的類似,只不過是方法的優(yōu)先級變換了,跟規(guī)則是吻合的。

javascript是一門弱類型語言,不同的基礎數(shù)據(jù)之間的運算自己會進行一個相關的類型轉換,如常見的
var t = "test", b = t + 12 //"test12"

這些常見的類型轉換比較熟悉,但是涉及到關于對象與原始值之間的運算,類型轉換規(guī)則比較特殊

基礎知識點:
var t = {a: 1, b: 2}
t.toString() //"[object Object]"
t.valueOf() //{a: 1, b: 2}即對象本身
var arr = [1,2,3,4]
arr.toString() //"1,2,3,4"類似arr.join(",")

對象均有toString,valueOf兩個方法

轉換規(guī)則: 對象->String

1:如果對象的toString方法存在,那么調(diào)用toString,若該對象返回的值為原始值,則將該原始值轉換為字符串返回(若該值不為字符串的話)
2:如果對象的toString方法返回的不是原始值,且valueOf方法存在,調(diào)用valueOf方法,若該對象返回的值為原始值,則將該原始值轉換為字符串返回(若該值不為字符串的話)
3:若對象的toString與valueOf方法返回的值均不為原始值,那么Throw TypeError的錯誤。

//規(guī)則1
function t(){
    return 1
}
console.log(t + 3) //"function t(){? return 1?}3"
//修改toString方法
t.toString = function(){
    return "bbbbbb"
}
console.log(t + 3) //"bbbbbb3"

console.log(t.valueOf())
/*
function t(){
    return 1
}
*/
//不為原始值

//再次修改toString方法,使其返回的值不為原始值
t.toString = function(){
    return {a:1}
}

console.log(t + 3) // Uncaught TypeError: Cannot convert object to primitive value

//那么重寫valueOf方法
t.valueOf = function(){
    return "ffffdffffd"
}

console.log(t + 3) //"ffffdffffd3"
//這時,再修改toString

t.toString = function(){
    return "3333dd"
}

console.log( t + 3 ) //"3333dd3"

    
對象->number

1:如果對象的valueOf方法存在,那么調(diào)用valueOf,若該對象返回的值為原始值,則將該原始值轉換為數(shù)字返回(若該值不為數(shù)字的話)
2:如果對象的valueOf方法返回的不是原始值,且toString方法存在,調(diào)用toString方法,若該對象返回的值為原始值,則將該原始值轉換為數(shù)字返回(若該值不為數(shù)字的話)
3:若對象的toString與valueOf方法返回的值均不為原始值,那么Throw TypeError的錯誤。

文獻:javascript權威指南 類型轉換章節(jié)

對象到number的具體代碼跟對象到string的類似,只不過是方法的優(yōu)先級變換了,跟規(guī)則是吻合的。

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

轉載請注明本文地址:http://systransis.cn/yun/97865.html

相關文章

  • JS關于JS一些知識點(JS基礎,純記錄)

    摘要:如何讓根據(jù)拆箱轉換,以及的隱式轉換,可以如下寫為什么計算機中所有的數(shù)據(jù)都是以二進制存儲的,所以在計算機計算時要把數(shù)據(jù)先轉換成二進制進行計算,然后把計算結果轉換成十進制。會存在精度丟失問題和的二進制都是以無線循環(huán)的小數(shù)的二進制的二進制 本想著記筆記里,但是筆記里沒有分類,還是以文章的形式,當個人總結吧,這一篇就當作JS基礎篇的記錄吧,有修改的和新增的持續(xù)更新~ 關于JS的一些小技巧 1:...

    SwordFly 評論0 收藏0
  • JavaScript高級程序設計學習筆記三(基本語法)

    摘要:數(shù)據(jù)類型中有種簡單數(shù)據(jù)類型也稱為基本數(shù)據(jù)類型和。在中非空字符串,非零數(shù)字,任意對象,都被認為。而空字符串,和,,認為是。用于表示整數(shù)和浮點數(shù)。標識符由數(shù)字字母下劃線美元符組成,但首字母不能是數(shù)字。變量方法對象命名推薦駝峰法。 JavaScript語法 一.語法簡介 因為JavaScript語法和Java等語法非常類似。所以只是簡單介紹一下。 大小寫 JavaScript是大小寫敏感的語...

    Mike617 評論0 收藏0
  • JS. ES5重點筆記】數(shù)據(jù)類型

    摘要:是最特殊的類型,表示沒有意義的數(shù),例如。十六進制數(shù)八進制數(shù)十進制數(shù)十六進制數(shù)對于部分情況,和存在分歧。例如,表示希臘字符關于字符串的轉換,其實核心就是函數(shù),如果是數(shù)字型,還可以添加參數(shù),使之變?yōu)槎M制八進制十進制十六進制數(shù)。 雖然目前已經(jīng)算是ES6的時代,然是ES5的尾巴仍在眾多框架中出現(xiàn),JS我雖然通過視頻等方式學習,曾經(jīng)做過項目,但是仍對部分細節(jié)和原理不了解,通過閱讀這本書,希望能...

    Yu_Huang 評論0 收藏0
  • 重學前端學習筆記(六)--JavaScript類型有哪些你不知道細節(jié)?

    摘要:的碼點被稱為基本字符區(qū)域。關于的介紹,我準備用文檔阮一峰來做一些介紹,具體的可以參考文檔引入的原因的對象屬性名都是字符串,這容易造成屬性名的沖突。其他的一些屬性可以去看文檔阮一峰注意函數(shù)前不能使用命令,否則會報錯。 筆記說明 重學前端是程劭非(winter)【前手機淘寶前端負責人】在極客時間開的一個專欄,每天10分鐘,重構你的前端知識體系,筆者主要整理學習過程的一些要點筆記以及感悟,完...

    Lsnsh 評論0 收藏0
  • 重學前端學習筆記(六)--JavaScript類型有哪些你不知道細節(jié)?

    摘要:的碼點被稱為基本字符區(qū)域。關于的介紹,我準備用文檔阮一峰來做一些介紹,具體的可以參考文檔引入的原因的對象屬性名都是字符串,這容易造成屬性名的沖突。其他的一些屬性可以去看文檔阮一峰注意函數(shù)前不能使用命令,否則會報錯。 筆記說明 重學前端是程劭非(winter)【前手機淘寶前端負責人】在極客時間開的一個專欄,每天10分鐘,重構你的前端知識體系,筆者主要整理學習過程的一些要點筆記以及感悟,完...

    joyvw 評論0 收藏0

發(fā)表評論

0條評論

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