欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解JavaScript中的類型判斷與類型轉(zhuǎn)換

 更新時間:2023年07月31日 10:04:05   作者:布魯斯要藍調(diào)  
這篇文章主要給大家講解一下JavaScript中的類型判斷與類型轉(zhuǎn)換的基本概念和使用方法,對我們的學(xué)習(xí)JavaScript的類型判斷與轉(zhuǎn)換有一定的幫助,需要的朋友可以參考下

類型判斷

  • typeof:只能判斷原始類型,并且判斷null的時候會判斷出null為'object';使用typeof判斷 引用類型時:只能判斷出function

  • Object.prototype.toString(): 因為區(qū)別對象、數(shù)組、函數(shù)單純使用 typeof 只能判斷為object對象,但是可以通過Object.prototype.toString方法,判斷某個對象值屬于哪種內(nèi)置類型。 例:[object String] 1).如果this值是undefined,就會返回 [object Undefined] 2).如果this值是null,就會返回 [object Null] 3).生成變量 o,讓 o 成為ToObject(this)的結(jié)果 4).讓class成為 o 的內(nèi)部屬性[[class]]的值 5).最后返回由"[object 和 class 和 "]" 三個部分組成的字符串

例: console.log(Object.prototype.toString.call(new Date())); //[object Date]

  • 數(shù)組身上的判斷方法:Array.isArray()

Array.isArray()方法用來判斷某個方法是否是數(shù)組并且返回一個布爾值

  • instanceof:只能判斷引用類型,不能判斷原始類型,它是順著原型鏈找的 ;但是數(shù)組也是屬于Object 也可以判斷出它是Object;instanceof用于檢測構(gòu)造函數(shù)的 prototype 屬性是否出現(xiàn)在某個實例對象的原型鏈上。

類型轉(zhuǎn)換

對象轉(zhuǎn)原始類型

js的類型轉(zhuǎn)換只有三種類型的轉(zhuǎn)換: to string, to boolean, to number

轉(zhuǎn)number

調(diào)用 ToPrimitive (obj,Number)

  • 如果obj是基本類型,直接返回
  • 否則,調(diào)用ValueOf方法,如果得到一個原始類型.則返回
  • 否則,調(diào)用toString方法,如果得到一個原始類型.則返回
  • 否則報錯 []==![] Number({})//NaN

轉(zhuǎn)string

調(diào)用ToPrimitive (obj,String)

  • 如果obj是基本類型,直接返回
  • 否則,調(diào)用toString方法,如果得到一個原始類型.則返回
  • 否則,調(diào)用ValueOf方法,如果得到一個原始類型.則返回
  • 否則報錯

隱式轉(zhuǎn)換

一元操作符 : +'1'=>Number(1)=1 '+'會觸發(fā)Number()

當(dāng)+運算作為一元操作符時,會調(diào)用ToString()處理該值

二元操作符

v1+v2

  • lprim=ToPrimitive(v1)
  • rprim=ToPrimitive(v2)
  • 如果lprim或rprim是字符串,那么返回 ToString(lprim)和ToString(rprim)的拼接結(jié)果
  • 否則返回ToNumber(lprim)和否則ToNumber(rprim)的相加結(jié)果

==

當(dāng)執(zhí)行 x == y 時,

  • 如果x和y是同一類型,

    如果x是undefined,返回true

    如果x是null,返回true

    x是數(shù)字 x是NaN,返回false

    如果x和y指向同一個對象,返回true,否則返回fasle

  • 特例: null == undefined //true

  • 1 == 'h' 會先ToNumber('h')再判斷

  • false == '1' 會先ToNumber('false') ToNumber('1')

  • true == {a:1} // ToPrimitive({a:1})

[] == ![]

!運算符優(yōu)先級更高 先執(zhí)行![] !為布爾 ![]為false []==false 然后有==將這兩個向Number靠近 []為引用類型,調(diào)用ToPrimitive() 然后先調(diào)用valueOf()沒有 再調(diào)用toString()轉(zhuǎn)換成'' ''再轉(zhuǎn)換成0 false轉(zhuǎn)換成0 所以[] == ![]

到此這篇關(guān)于詳解JavaScript中的類型判斷與類型轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)JavaScript類型判斷與轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JS實現(xiàn)小米輪播圖

    JS實現(xiàn)小米輪播圖

    這篇文章主要為大家詳細介紹了JS實現(xiàn)小米輪播圖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • 一起來學(xué)習(xí)JavaScript的BOM操作

    一起來學(xué)習(xí)JavaScript的BOM操作

    這篇文章主要為大家詳細介紹了JavaScript BOM操作,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • JavaScript實現(xiàn)復(fù)制文章自動添加版權(quán)

    JavaScript實現(xiàn)復(fù)制文章自動添加版權(quán)

    自己辛辛苦苦寫的文章,輕易就被別人復(fù)制-粘貼去了,是不是很傷心呢?小編今天給大家整理了兩個方法,讓別人復(fù)制自己的文章時,自動在文章的結(jié)尾添加自己的版權(quán)信息。
    2016-08-08
  • 微信小程序自定義模態(tài)框

    微信小程序自定義模態(tài)框

    這篇文章主要為大家詳細介紹了微信小程序自定義模態(tài)框,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • js獲取客戶端外網(wǎng)ip的簡單實例

    js獲取客戶端外網(wǎng)ip的簡單實例

    這篇文章主要介紹了js獲取客戶端外網(wǎng)ip的簡單實例,有需要的朋友可以參考一下
    2013-11-11
  • javascript使用canvas實現(xiàn)餅狀圖效果

    javascript使用canvas實現(xiàn)餅狀圖效果

    這篇文章主要為大家詳細介紹了javascript使用canvas實現(xiàn)餅狀圖效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • webpack實用小功能介紹

    webpack實用小功能介紹

    這篇文章主要介紹了webpack實用小功能,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-01-01
  • typescript+react實現(xiàn)移動端和PC端簡單拖拽效果

    typescript+react實現(xiàn)移動端和PC端簡單拖拽效果

    這篇文章主要為大家詳細介紹了typescript+react實現(xiàn)移動端和PC端簡單拖拽效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • javascript addLoadEvent函數(shù)說明

    javascript addLoadEvent函數(shù)說明

    網(wǎng)頁加載完整后會觸發(fā)一個onload事件,默認(rèn)地一個事件只能和一個函數(shù)綁定。
    2010-01-01
  • JS URL傳中文參數(shù)引發(fā)的亂碼問題

    JS URL傳中文參數(shù)引發(fā)的亂碼問題

    今天的項目中碰到了一個亂碼問題,從JS里傳URL到服務(wù)器,URL中有中文參數(shù),服務(wù)器里讀出的中文參數(shù)來的全是“?”,查了網(wǎng)上JS編碼相關(guān)資料得以解決。
    2009-09-09

最新評論