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