摘要:同樣,也可以將數(shù)字轉(zhuǎn)換為其他進制數(shù),如轉(zhuǎn)換結(jié)果轉(zhuǎn)換結(jié)果轉(zhuǎn)換結(jié)果對象類型中對象到字符串的轉(zhuǎn)換經(jīng)過了如下步驟如果對象具有方法,則調(diào)用這個方法。如果它返回一個基本類型值,將這個值轉(zhuǎn)換為字符串,并返回這個字符串。
ToString
其他類型值轉(zhuǎn)化為字符串類型的值通常使用String()或者toString()方法
基本類型基本類型的字符串轉(zhuǎn)化規(guī)則為:null轉(zhuǎn)化為"null",undefined轉(zhuǎn)化為"undefined",true轉(zhuǎn)化為"true",數(shù)字遵循通用規(guī)則。注意除了null和undefined的任何值都具有toString方法。
Number類定義的toString()方法可以接受表示轉(zhuǎn)換基數(shù)的可選參數(shù),如果不指定此參數(shù),轉(zhuǎn)換規(guī)則將是基于十進進制。同樣,也可以將數(shù)字轉(zhuǎn)換為其他進制數(shù),如:
var num = 20; console.log(num.toString(2)) //轉(zhuǎn)換結(jié)果"10100" console.log(num.toString(8)) //轉(zhuǎn)換結(jié)果"24" console.log(num.toString(16))//轉(zhuǎn)換結(jié)果"14"對象類型
js中對象到字符串的轉(zhuǎn)換經(jīng)過了如下步驟:
如果對象具有toString()方法,則調(diào)用這個方法。如果它返回一個基本類型值,js將這個值轉(zhuǎn)換為字符串,并返回這個字符串。
如果對象沒有toString()方法,或者這個方法返回的不是一個基本類型值,那么js將調(diào)用valueOf()方法。如果存在這個方法,則調(diào)用,如果返回值是基本類型值,轉(zhuǎn)換為字符串并返回
否則,js無法從toString()或valueOf()獲得一個基本類型值,此時將會拋出類型錯誤異常
例如:
console.log([1].toString()) //轉(zhuǎn)換結(jié)果"1" console.log(({x:1}).toString()) //轉(zhuǎn)換結(jié)果[object Object] console.log(({x:1}).valueOf()) //轉(zhuǎn)換結(jié)果"{ x: 1 }"ToNumber
其他類型值轉(zhuǎn)化為字符串類型的值通常使用Number()、parseInt()、parseFloat方法
基本類型基本類型的數(shù)字轉(zhuǎn)化規(guī)則為:null轉(zhuǎn)化為0,undefined轉(zhuǎn)化為NaN,true轉(zhuǎn)化為1,fale轉(zhuǎn)化0,字符串遵循通用規(guī)則,處理失敗時返回NaN。
通過Number()傳入一個字符,它會試圖將其轉(zhuǎn)換為一個整數(shù)或者浮點數(shù)的直接量,這個方法只能基于十進制進行轉(zhuǎn)換,并且不能出現(xiàn)非法的尾隨字符。
parseInt()函數(shù)和parseFloat()函數(shù)更加靈活,parseInt()只解析整數(shù),可以傳遞第二個參數(shù)作為轉(zhuǎn)換基數(shù),parseFloat()可以解析整數(shù)和浮點數(shù),parseInt()和parseFloat()都會跳過前導(dǎo)空格,盡可能解析更多數(shù)值字符,并忽略后面內(nèi)容。
如果第一個非空格字符是非法的數(shù)字直接量,將返回NaN,例如:
console.log(parseInt("11",2)) //轉(zhuǎn)換結(jié)果3 console.log(parseFloat("0.1")) //轉(zhuǎn)換結(jié)果0.1 console.log(parseInt("a12")) //轉(zhuǎn)換結(jié)果NaN console.log(parseFloat(" 4.2aa")) //轉(zhuǎn)換結(jié)果4.2對象類型
js對象轉(zhuǎn)數(shù)字的過程和對象轉(zhuǎn)字符串過程類似,只是它會首先嘗試使用valueOf()方法:
如果對象具有valueOf()方法,后者返回一個基本類型值,則js將這個基本類型值轉(zhuǎn)換為數(shù)字并返回
否則,如果對象具有toString()方法,后者返回一個基本類型值,則js將這個基本類型值轉(zhuǎn)換為數(shù)字并返回
否則,將拋出類型錯誤異常
例如:
console.log(Number([])) //轉(zhuǎn)換結(jié)果0 console.log([].valueOf()) //轉(zhuǎn)換結(jié)果[] console.log([].toString()) //轉(zhuǎn)換結(jié)果""ToBoolean
假值列表:undefined、null、false、+0、-0、NaN、""
假值列表以為的值都是真值。例如:
var a = []; var b = {}; var c = function () {}; console.log(Boolean( a && b && c)) //true
以上內(nèi)容是個人的一點總結(jié),如果有錯誤或不嚴(yán)謹?shù)牡胤?,歡迎批評指正,如果喜歡,歡迎點贊收藏
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/85186.html
摘要:顯示的調(diào)用轉(zhuǎn)換過程稱為顯式強制類型轉(zhuǎn)換,隱式的情況稱為隱式強制類型轉(zhuǎn)換。隱式強制類型轉(zhuǎn)換讓代碼變得晦澀難懂而又便捷而奇妙。事實上,允許在比較中進行強制類型轉(zhuǎn)換,而不允許。如果有并且返回基本類型值,就使用該值進行強制類型轉(zhuǎn)換。 JavaScript是一種非常靈活的現(xiàn)代編程語言,靈活到使用者極其容易被忽視的它那廣闊的世界以及它帶給我們的無限遐想空間。本文將對JavaScript最最基礎(chǔ)也最...
摘要:包裝對象即,與數(shù)值字符串布爾值相對應(yīng)的三個原生對象。顯示類型轉(zhuǎn)換強制轉(zhuǎn)換即,顯示調(diào)用函數(shù)進行類型轉(zhuǎn)換。返回對象的字符串?dāng)?shù)值或布爾值表示,通常與返回的值相同。 一、類型與包裝對象 1. 類型 原始類型: number string boolean null undefined Symbol 對象類型: Object Array Function 原始類型(基本類型)和對象類型(引...
摘要:我們首先了解一下中有關(guān)類型轉(zhuǎn)換的知識。新增類型拋出異常從列表可以明顯看到少了一個類型轉(zhuǎn)換為的規(guī)則。這里要強調(diào)一點第二個表達式?jīng)]有涉及到強制類型轉(zhuǎn)換。如果文中有錯誤或者有某些強制轉(zhuǎn)換的情形沒有涉及到請及時留言告知,我會修改并補充進去。 javascript是一門非常奇特的語言,它有時候奇特的會讓人懷疑人生。比如讓我們看一下下面的一些奇葩例子: false == 0 ...
摘要:這樣導(dǎo)致結(jié)果不一致,等解析語句為,對空對象強制轉(zhuǎn)為數(shù)字類型,即為,將非空字符串轉(zhuǎn)換為數(shù)字類型,結(jié)果為。綜上,右邊表達式轉(zhuǎn)換為。 首先從一系列讓JavaScript初學(xué)者抓狂的運算說起。 1 + {} {} + 1 [] + {} {} + [] [] + [] {} + {} 能全部答對上面的運算結(jié)果,不必浪費時間繼續(xù)閱讀本文了。如果對某一些的結(jié)果還不確定,請慢慢往下看。 上面列的所有...
摘要:函數(shù)類型檢測是的子類型,其屬性為參數(shù)個數(shù),但是判斷結(jié)果有內(nèi)建函數(shù)原生函數(shù)常見的有,可能被當(dāng)作構(gòu)造函數(shù)來使用,創(chuàng)建出來的是封裝了的基本類型值。構(gòu)造函數(shù)可以不帶關(guān)鍵字。建議使用和來進行顯示強制轉(zhuǎn)換。 前言 此篇小結(jié)來源與《你不知道的JavaScript》和《JavaScript高級程序設(shè)計》的結(jié)合??或許是的,龜速總結(jié)中... 七種內(nèi)置類型 null undefined boolean ...
閱讀 1466·2021-09-02 13:57
閱讀 1882·2019-08-30 15:55
閱讀 2419·2019-08-30 15:54
閱讀 2259·2019-08-30 15:44
閱讀 2741·2019-08-30 13:18
閱讀 491·2019-08-30 13:02
閱讀 660·2019-08-29 18:46
閱讀 1673·2019-08-29 11:25