摘要:數據類型轉換原文鏈接是一種弱類型語言,即不需要明確聲明變量的類型,可以隨時賦予任意類型的值。強制轉換顯式轉換強制轉換主要指使用和三個構造函數,手動將各種類型的值,轉換成數字字符串或者布爾值。如果該值不能完全轉換為整型或浮點型,則返回。
JavaScript 數據類型轉換
原文鏈接
強制轉換(顯式轉換)JavaScript 是一種弱類型語言,即不需要明確聲明變量的類型,可以隨時賦予任意類型的值。
轉換成 Boolean 值強制轉換主要指使用Number()、String() 和 Boolean() 三個構造函數,手動將各種類型的值,轉換成數字、字符串或者布爾值。
Boolean( [value] ) 根據 value 的值返回一個布爾值
返回 false 的 value 值(共6種): false、""(空字符串)、0、NaN、null、undefined
Boolean(undefined) // false Boolean("") // false Boolean(null) // false Boolean("12345hello") // true Boolean({}) // true轉換成數字
Number(arg) 把給定的值(任意類型)轉換成數字(可以是整數或浮點數),它轉換的是整個值,而不是部分值,和 parseInt() 、parseFloat()不一樣。如果該值不能完全轉換為整型或浮點型,則返回NaN。
Number("123.1.2.3") // NaN parseInt("123.1.2.3",10) // 123 parseFloat("123.1.2.3") // 123.1 Number("123.1") // 123.1 Number(true) // 1 Number(null) // 0 Number(undefined) // NaN
原始類型有 5 種:Undefined、Null、Number、Boolean、String
當 Number() 的參數是一個對象時,內部處理步驟如下:
調用對象自身的valueOf方法。如果返回原始類型的值,則直接對該值使用Number函數,不再進行后續步驟。
如果valueOf方法返回的還是對象,則改為調用對象自身的toString方法。如果返回原始類型的值,則對該值使用Number函數,不再進行后續步驟。
如果toString方法返回的是對象,就報錯。
var obj = {name:"percy",age:21}; Number(obj); // 等同于 var obj = {name: "percy", age:21 }; if (typeof obj.valueOf() === "object") { Number(obj.toString()); } else { Number(obj.valueOf()); }
parseInt 和 parseFloat 都是全局函數,不屬于任何對象
parseInt(string, radix);
將給定的字符串以指定基數(radix/base)解析成為整數,字符串開頭的空白符將會被忽略,它是逐個對字符進行解析的。
parseInt(" 123 Hello",10) // 123
parseFloat(string)
將參數中指定的字符串解析成為一個浮點數字并返回,它也是逐個對字符進行解析的
parseFloat(" 1.2.3.sds") // 1.2
下面來跳一個坑:
parseInt(0.000001) // 0 parseInt(0.0000001) // 1 parseFloat(0.000001) // 0.000001 parseFloat(0.0000001) // 1e-7
轉換成字符串JavaScript 中精度小于0.000001的數字會自動轉化為科學計數的字符串
String() 可以把 null、undefined 轉換為字符串,而用 toString() 轉換的話,會報錯
null 和 undefined 沒有 toString() 方法,會報錯
所有的對象都有toString()方法,作用就是返回一個反映這個對象的字符串。下面列出了一些:
Object.prototype.toString()
Number.prototype.toString()
RegExp.prototype.toString()
Function.prototype.toString()
······
String(null) // "null" String(12+11+true) // 24 (12).toString() // "12" (10).toString(16) // "a"
當 String() 的參數是一個對象時,內部處理步驟如下:
先調用對象自身的toString方法。如果返回原始類型的值,則對該值使用String函數,不再進行以下步驟。
如果toString方法返回的是對象,再調用valueOf方法。如果返回原始類型的值,則對該值使用String函數,不再進行以下步驟。
如果valueOf方法返回的是對象,就報錯。
String({name: "percy",age: 21}) // "[object Object]" // 等同于 String(({name: "percy",age: 21}).toString()) // "[object Object]"隱式轉換
將任何數據轉換為數字的最簡單辦法就是 對它進行“一元加”運算
+ "12" // 12 + "a12" // NaN + true // 1
字符串和數字相加結果是字符串
2 + "3" // "23" "2" + 3 // "23" 2 + "3ab" // "23ab"
字符串和數字相減結果是字符串
2 - "3" // -1 "2" - 3 // -1 2 - "3ab" //NaN
數字與布爾值相加減會自動轉換
3 - true // 2 3 + true // 4參考資料
【文章】有趣的JavaScript隱式類型轉換(推薦)
【文章】數據類型轉換
【文章】JavaScript類型轉換的迷糊事兒(推薦)
【文章】JavaScript 對象轉換之toString、valueOf
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/87896.html
摘要:原始類型分別有類型類型和類型三種。類型中存在一個特殊的值叫。也可以把其他類型的數據自動轉換為類型運算符運算符判斷原始類型語法結構變量名稱。 數據類型 1.數據類型的概述;在JavaScript代碼中,能夠表示并且操作值的類型就叫做數據類型數據類型可以分成可變類型和不可變類型,可變類型的值是可以修改的。相反不可變類型的值是不可以修改的。數據類型還有原始類型(原始值)與引用類型(內置對象)...
摘要:以和為例,說明中的數字數據如何轉換為二進制數據。對象用來表示通用的固定長度的原始二進制數據緩沖區。中的數字數據如何轉換為二進制數據對和有了一個大概的了解,下面讓我們來看下它是如何進行二進制數據操作的。 概述 本文主要通過對JavaScript中數字數據與二進制數據之間的轉換,讓讀者能夠了解在JavaScript中如何對數字類型(包括但不限于Number類型)進行處理。 二進制數據在日常...
摘要:在編程語言中,能夠表示并操作的值的類型稱做數據類型。中的原始類型包括數字,字符串和布爾值。日期與時間語言核心包括構造函數,用來創建表示日期和時間的對象。其規則為如果是布爾值,和分別被轉換為和如果是數字值,返回本身。 源代碼: https://github.com/RobinQu/Programing-In-Javascript/blob/master/chapters/Javas...
摘要:下面先看看涉及到的幾個函數以及他們的轉換規則,這個是需要記憶的內容類型轉換需要使用到的函數對于布爾值用到的是對于數值,用到的是當然還有但是對于隱式類型轉換的時候,調用的是前者。 javaScript類型轉換規則 javaScript的類型轉換其實一直是很多前端開發人員很迷的地方,一會兒這里要轉換,一會兒那里又要轉換,總之就是一個大寫的迷,因為它隱式類型轉換的地方實在是太多了。 但其實...
摘要:總結通過使用和,我們能夠在數據和二進制數據中進行互相轉換。下一篇系列相關的博客,將會介紹如何通過來向后端傳遞二進制數據,以及如何處理通過收到的二進制數據。 概述 上一篇博客我們說到了如何進行數字類型(如Short、Int、Long類型)如何在JavaScript中進行二進制轉換,如果感興趣的可以可以閱讀本系列第二篇博客——WebSocket系列之JavaScript中數字數據如何轉換為...
閱讀 1719·2021-11-22 15:33
閱讀 2094·2021-10-08 10:04
閱讀 3545·2021-08-27 13:12
閱讀 3423·2019-08-30 13:06
閱讀 1470·2019-08-29 16:43
閱讀 1395·2019-08-29 16:40
閱讀 788·2019-08-29 16:15
閱讀 2748·2019-08-29 14:13