摘要:類型轉換和表示一個空對象。如果有其他類型想轉換為或者類型,直接賦值就可以了。都能隱式的把數據類型轉為類型。。。時間時間二數字類型轉換為字符串默認是進制是一個對象類型,所以其他類型轉化為通常都是。
前言
javaScript是一門可以自由進行數據類型轉換的編程語言,類型轉換是javaScript很重要的特色(坑點很多!!!),大家想以后寫出更多嚴謹的代碼(少出一些莫名其妙的Bug),還是需要好好掌握這個基礎知識,下面我跟大家一起來探討下JS的類型轉換。
類型介紹我們都知道JS的數據類型總共分為兩大類原始類型和對象類型。
原始類型有 Null、Undefined、 Boolean、 String、 Number、 Symbol(ES6)。
對象類型有 Object
關于這些數據類型的定義和介紹,網絡上已經有很多的相關知識,這里就不再說了,給小伙伴推薦一個最權威的文檔 http://www.ecma-international...。
Null 和 Undefined
Null表示一個空對象。但是空對象也是一個對象,所以typeof null === "object"
Undefined表示聲明一個變量,但是卻還沒有賦值。
如果有其他類型想轉換為Undefined或者Null類型,直接賦值就可以了。
var num = 10; console.log(typeof num) // "number" num = undefined; console.log(typeof num) // "undefined"
沒啥好說的
Boolean
Boolean類型是一個基本的類型,其他類型轉換為Boolean類型規范如下
鏈接地址: http://www.ecma-international...
下面我總結了一些需要用到轉換為boolean類型的場景
A. 強轉為Boolean
var a = Boolean(1) // typeof a => "boolean", a=> true var b = Boolean(null) // b => false var d = new Boolean(false) // typeof d => "object", new Boolean 返回的是Object, 請注意Boolean 和 new Boolean的區別
B. ! ! 隱式轉換
! 會對數據進行Boolean的隱式轉換,規則如上表格。
舉個例子
var a = !0 // a => true , 0的boolean為false,!進行取反, 于是a => true
在開發中, 我們通過 ! ! 來獲取變量的boolean值
C. if 判斷
if 是一個很常見的判斷邏輯,當我們使用if去進行邏輯判斷的時候,javaScript首先會獲取數據的boolean值,規則如上表格, 然后再進行判斷
if (0) {console.log(true)} else {console.log(false)} // 打印false if ([]) {console.log("array")} // 打印 array if ({}) {console.log("object")} // 打印 object if ("") {console.log(true)} else { console.log(false)} // 打印 false
Number
Number類型是一個基本的類型,其他類型轉換為Number類型規范如下
鏈接地址: http://www.ecma-international...
除了String和Object外, 其他類型轉為Number類型都好理解。
對于理解String與Object轉Number類型,有幾點個人的的心得,希望對大家有所幫助 (PS: 如果大家有時間的話,還是好好研究官方的規范。)
一. 0個空格(即"")或者多個空格(" "),返回結果是0
二. 把字符串左右兩邊的("或者")和空格都拿掉,如果這是一個數字類型,說明此字符能轉化為Number類型,否則返回NaN
三. 對象類型,首先調用valueof方法,返回基本類型的話,就執行上表格中的轉換規則。否則,就調用toString方法,對返回的字符執行上表格中的轉換規則
示例如下:
+null // => 0。 +、- 都能隱式的把數據類型轉為Number類型 +"" // => 0。 +true // => 1。 +"0x12" // => 18。 0x12為16進制數 +"1.2e2" // =>120。 1.2e2為科學計數法 +"a" // => NaN。 +[] // => 0。 [].valueOf是[], [].toString() => "", +""=> 0 +["22"] // => 22. ["22"].toString() => "22", +"22" => 22
留一個思考題。+Date() => NaN, +new Date() => 1518332170387能拿到時間戳。大家可以想一下為什么?
String
String類型是一個基本的類型,其他類型轉換為String類型規范如下
鏈接地址: http://www.ecma-international...
其他類型在轉為為String類型時候,規則應該是很簡單明確,這里補充一些的注意事項
一. + 左右兩邊只要有一邊是字符串,另外一邊就會按照上表格的規則把轉為字符串,然后合并返回。
"1" + 1 // => "11" undefined + "a" // => "undefineda" "時間" + new Date() // => "時間Sun Feb 11 2018 15:15:42 GMT+0800 (CST)", new Date().toString() => Sun Feb 11 2018 15:15:42 GMT+0800 (CST)
二. 數字類型轉換為字符串默認是10進制
var a = 0x15; console.log(a.toString()) //=> "21" 1.2e2 + "10" // => "12010", 1.2e2 => 120, 120 + "10"=> "12010"
Object
Object是一個對象類型,所以其他類型轉化為Object通常都是new......。
下面是<
不多說了......
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/107429.html
摘要:總結通過使用和,我們能夠在數據和二進制數據中進行互相轉換。下一篇系列相關的博客,將會介紹如何通過來向后端傳遞二進制數據,以及如何處理通過收到的二進制數據。 概述 上一篇博客我們說到了如何進行數字類型(如Short、Int、Long類型)如何在JavaScript中進行二進制轉換,如果感興趣的可以可以閱讀本系列第二篇博客——WebSocket系列之JavaScript中數字數據如何轉換為...
摘要:以和為例,說明中的數字數據如何轉換為二進制數據。對象用來表示通用的固定長度的原始二進制數據緩沖區。中的數字數據如何轉換為二進制數據對和有了一個大概的了解,下面讓我們來看下它是如何進行二進制數據操作的。 概述 本文主要通過對JavaScript中數字數據與二進制數據之間的轉換,讓讀者能夠了解在JavaScript中如何對數字類型(包括但不限于Number類型)進行處理。 二進制數據在日常...
摘要:所以無論還是都會進行類型轉換,唯一的區別,就是會置否而不會。這時候,肯定會有人問,假如說我有其他的數據類型呢,又不是數字又不是字符串,比如說數組啊,對象啊,布爾值啥的,那么如果是引用數據類型,則先轉為基本數據類型,再進行比較。 上一章主要講了轉換到數字,字符串和布爾類型的一些知識點,那么這一講接著上面的繼續講。 思考下面這個問題: console.log(+123); // 123 ...
摘要:轉換為字符串規則如下圖代碼大致就是普通其他基本類型轉為字符串的話,就直接轉為其值的字符串表達形式,如果是基本類型的封裝對象,會先拆封,然后再轉為字符串,如果是普通對象,則會調用其內部的值,如果是極大數和級小數,將會進行一些轉化,具體規 轉換為字符串規則如下圖代碼: console.log(String(undefined)); // undefined console.log(Str...
摘要:抽象相等和嚴格相等。首先,也是如果有對象的話,會把對象轉為基本類型值,在進行比較。 這一節,應該算是強制類型轉換的最后一個小節了,這一部分呢,主要會講比較操作中遇到的強制類型轉換。 抽象相等(==)和嚴格相等(===)。 簡單且粗略的來說,抽象相等和嚴格相等的區別就是抽象相等在比較的時候,如果比較的兩個數類型不同,會先進行類型轉換再比較,而嚴格類型呢,比較簡單粗暴一些,直接返回fals...
閱讀 2120·2021-11-16 11:45
閱讀 1209·2021-10-22 09:53
閱讀 4013·2021-09-07 10:26
閱讀 1220·2021-09-06 15:00
閱讀 2078·2019-08-28 18:09
閱讀 2808·2019-08-26 14:06
閱讀 3967·2019-08-26 13:48
閱讀 1302·2019-08-26 12:11