JS 類型轉(zhuǎn)換

JavaScript中的類型有:

  1. 原始類型:Boolean、Null、String、Number、Symbol、Undefined、BigInt
  2. 對象:Object

一、顯式類型轉(zhuǎn)換

  • Number函數(shù)
    1. 原始類型轉(zhuǎn)換
      數(shù)值:轉(zhuǎn)換后還是原來的值
      字符串:如果可以被解析為數(shù)值,則轉(zhuǎn)換為相應(yīng)的數(shù)值,否則得到NaN;空字符串轉(zhuǎn)為0
      布爾值:true轉(zhuǎn)為1,false轉(zhuǎn)為0
      undefined:轉(zhuǎn)為NaN
      null:轉(zhuǎn)為0
    2. 對象類型轉(zhuǎn)換
      先調(diào)用對象自身的valueOf方法,如果該方法返回原始類型的值(數(shù)值、字符串和布爾值),則直接對該值使用Number方法,不再進行后續(xù)步驟。
      如果valueOf返回的是復(fù)合類型的值,再調(diào)用對象自身的toString方法,如果toString方法返回原始類型的值,則對該值使用Number方法,不再進行后續(xù)步驟。
      如果toString方法返回的是復(fù)合類型的值,則報錯。
  • String函數(shù)
    1. 原始類型轉(zhuǎn)換
      數(shù)值:轉(zhuǎn)換為相應(yīng)的字符串
      字符串:轉(zhuǎn)換后還是原來的值
      布爾值:true轉(zhuǎn)為"true",false轉(zhuǎn)為"false"
      undefined:轉(zhuǎn)為"undefined"
      null:轉(zhuǎn)為"null"
    2. 對象類型轉(zhuǎn)換
      先調(diào)用toString方法,如果該方法返回原始類型的值,則直接對該值使用String方法,不再進行后續(xù)步驟。
      如果toString方法返回的是復(fù)合類型的值,再調(diào)用valueOf方法,如果valueOf方法返回原始類型的值,則對該值使用String方法,不再進行后續(xù)步驟。
      如果valueOf方法返回的是復(fù)合類型的值,則報錯。
  • Boolean函數(shù)
    undefined、null、0、NaN、''(空字符串)轉(zhuǎn)換為false
    其他的都為true

二、隱式類型轉(zhuǎn)換

  1. 以下情況會發(fā)生類型轉(zhuǎn)換
    四則元素(加減乘除)
    判斷語句
    Native調(diào)用(console.log()、alert()等會自動將內(nèi)容轉(zhuǎn)換為String類型)
[] + [] // ''
[] + {} // '[object Object]'
{} + [] //0
{} + {} //'[object Object][object Object]'
true + true //2
1 + {a: 1} //'1[object Object]'

相關(guān)資料:
https://2ality.com/2012/01/object-plus-object.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • js類型轉(zhuǎn)換 1 用于類型轉(zhuǎn)換的valueOf和toString valueOf()的意義是,返回這個對象邏輯上對...
    Super曲江龍Kimi閱讀 402評論 0 0
  • 前言:js的類型轉(zhuǎn)換真是容易讓人一頭霧水,接下來我將會好好整理一下。 原始值到原始值(數(shù)字,字符串,布爾值)的轉(zhuǎn)換...
    tency小七閱讀 335評論 0 0
  • 本文是lhyt本人原創(chuàng),希望用通俗易懂的方法來理解一些細(xì)節(jié)和難點。轉(zhuǎn)載時請注明出處。文章最早出現(xiàn)于本人github...
    lhyt閱讀 391評論 0 1
  • 寫在前面的話 近期刷了點js的面試題,發(fā)現(xiàn)很多基礎(chǔ)知識已經(jīng)模糊,于是重新回去看了一下《javascript權(quán)威指南...
    栗子酥小小閱讀 861評論 0 0
  • 原文 有意思的 JavaScript 原始值到原始值的轉(zhuǎn)換 原始值轉(zhuǎn)化為布爾值所有的假值(undefined、nu...
    蠻吉大人123閱讀 332評論 0 0

友情鏈接更多精彩內(nèi)容