最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

類(lèi)型判斷

  • typeof:只能判斷原始類(lèi)型,并且判斷null的時(shí)候會(huì)判斷出null為'object';使用typeof判斷 引用類(lèi)型時(shí):只能判斷出function

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

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

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

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

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

類(lèi)型轉(zhuǎn)換

對(duì)象轉(zhuǎn)原始類(lèi)型

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

轉(zhuǎn)number

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

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

轉(zhuǎn)string

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

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

隱式轉(zhuǎn)換

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

當(dāng)+運(yùn)算作為一元操作符時(shí),會(huì)調(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 時(shí),

  • 如果x和y是同一類(lèi)型,

    如果x是undefined,返回true

    如果x是null,返回true

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

    如果x和y指向同一個(gè)對(duì)象,返回true,否則返回fasle

  • 特例: null == undefined //true

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

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

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

[] == ![]

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

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

相關(guān)文章

  • 一些在TypeScript上費(fèi)過(guò)時(shí)間的地方總結(jié)

    一些在TypeScript上費(fèi)過(guò)時(shí)間的地方總結(jié)

    這篇文章主要給大家介紹了關(guān)于一些在ts上費(fèi)過(guò)時(shí)間的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2021-11-11
  • javascript多行字符串的簡(jiǎn)單實(shí)現(xiàn)方式

    javascript多行字符串的簡(jiǎn)單實(shí)現(xiàn)方式

    之前我們給大家講訴過(guò)javascript多行字符串的7種解決辦法,今天來(lái)給大家分享一個(gè)更簡(jiǎn)單的方法,非常的實(shí)用,大家一定要仔細(xì)看看哦。
    2015-05-05
  • 常常會(huì)用到的截取字符串substr()、substring()、slice()方法詳解

    常常會(huì)用到的截取字符串substr()、substring()、slice()方法詳解

    javascript中給我們提供三個(gè)截取字符串的方法,分別是:slice(),substring()和substr()。下面我們對(duì)這三個(gè)函數(shù)進(jìn)行詳細(xì)說(shuō)明和比較,需要的朋友可以參考下
    2015-12-12
  • 使用Javascript判斷瀏覽器終端設(shè)備(PC、IOS(iphone)、Android)

    使用Javascript判斷瀏覽器終端設(shè)備(PC、IOS(iphone)、Android)

    WEB開(kāi)發(fā)中如何通過(guò)Javascript來(lái)判斷終端為PC、IOS(iphone)、Android呢?可以通過(guò)判斷瀏覽器的userAgent,用正則來(lái)判斷手機(jī)是否是ios和Android客戶端,下面通過(guò)本文學(xué)習(xí)下吧
    2017-01-01
  • 通過(guò)JS動(dòng)態(tài)創(chuàng)建一個(gè)html DOM元素并顯示

    通過(guò)JS動(dòng)態(tài)創(chuàng)建一個(gè)html DOM元素并顯示

    需要通過(guò)點(diǎn)擊某個(gè)元素后, 動(dòng)態(tài)創(chuàng)建一個(gè)DOM元素并顯示,因此寫(xiě)了一些相關(guān)的js函數(shù),在此記錄下
    2014-10-10
  • JavaScript 普通函數(shù)與箭頭函數(shù)的區(qū)別小結(jié)

    JavaScript 普通函數(shù)與箭頭函數(shù)的區(qū)別小結(jié)

    在前端面試中,箭頭函數(shù)與普通函數(shù)的區(qū)別是一道出現(xiàn)頻率極高的基礎(chǔ)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2026-02-02
  • 最新評(píng)論

    忻城县| 合江县| 茂名市| 宜阳县| 乾安县| 荣成市| 巧家县| 乌苏市| 洮南市| 耿马| 五台县| 古交市| 霸州市| 报价| 区。| 曲靖市| 张掖市| 旬邑县| 视频| 青川县| 吉安市| 高阳县| 奇台县| 景洪市| 渝中区| 竹山县| 凉城县| 美姑县| 周宁县| 玛多县| 崇义县| 玉溪市| 肥西县| 崇礼县| 平舆县| 台东市| 安吉县| 兴义市| 泽州县| 南昌县| 绵竹市|