成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

JavaScript 數(shù)據(jù)類型轉(zhuǎn)換

waltr / 2444人閱讀

摘要:數(shù)據(jù)類型轉(zhuǎn)換原文鏈接是一種弱類型語(yǔ)言,即不需要明確聲明變量的類型,可以隨時(shí)賦予任意類型的值。強(qiáng)制轉(zhuǎn)換顯式轉(zhuǎn)換強(qiáng)制轉(zhuǎn)換主要指使用和三個(gè)構(gòu)造函數(shù),手動(dòng)將各種類型的值,轉(zhuǎn)換成數(shù)字字符串或者布爾值。如果該值不能完全轉(zhuǎn)換為整型或浮點(diǎn)型,則返回。

JavaScript 數(shù)據(jù)類型轉(zhuǎn)換

原文鏈接

JavaScript 是一種弱類型語(yǔ)言,即不需要明確聲明變量的類型,可以隨時(shí)賦予任意類型的值。

強(qiáng)制轉(zhuǎn)換(顯式轉(zhuǎn)換)

強(qiáng)制轉(zhuǎn)換主要指使用Number()、String()Boolean() 三個(gè)構(gòu)造函數(shù),手動(dòng)將各種類型的值,轉(zhuǎn)換成數(shù)字、字符串或者布爾值。

轉(zhuǎn)換成 Boolean 值

Boolean( [value] ) 根據(jù) value 的值返回一個(gè)布爾值

返回 false 的 value 值(共6種): false、""(空字符串)、0、NaN、null、undefined

Boolean(undefined)     // false
Boolean("")            // false
Boolean(null)          // false
Boolean("12345hello")  // true
Boolean({})            // true
轉(zhuǎn)換成數(shù)字

Number(arg) 把給定的值(任意類型)轉(zhuǎn)換成數(shù)字(可以是整數(shù)或浮點(diǎn)數(shù)),它轉(zhuǎn)換的是整個(gè)值,而不是部分值,和 parseInt() 、parseFloat()不一樣。如果該值不能完全轉(zhuǎn)換為整型或浮點(diǎn)型,則返回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、BooleanString

當(dāng) Number() 的參數(shù)是一個(gè)對(duì)象時(shí),內(nèi)部處理步驟如下:

調(diào)用對(duì)象自身的valueOf方法。如果返回原始類型的值,則直接對(duì)該值使用Number函數(shù),不再進(jìn)行后續(xù)步驟。

如果valueOf方法返回的還是對(duì)象,則改為調(diào)用對(duì)象自身的toString方法。如果返回原始類型的值,則對(duì)該值使用Number函數(shù),不再進(jìn)行后續(xù)步驟。

如果toString方法返回的是對(duì)象,就報(bào)錯(cuò)。

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 都是全局函數(shù),不屬于任何對(duì)象

parseInt(string, radix);

將給定的字符串以指定基數(shù)(radix/base)解析成為整數(shù),字符串開(kāi)頭的空白符將會(huì)被忽略,它是逐個(gè)對(duì)字符進(jìn)行解析的。

parseInt("  123 Hello",10)   // 123

parseFloat(string)

將參數(shù)中指定的字符串解析成為一個(gè)浮點(diǎn)數(shù)字并返回,它也是逐個(gè)對(duì)字符進(jìn)行解析的

parseFloat(" 1.2.3.sds")     // 1.2

下面來(lái)跳一個(gè)坑:

parseInt(0.000001)          // 0
parseInt(0.0000001)         // 1
parseFloat(0.000001)        // 0.000001
parseFloat(0.0000001)       // 1e-7

JavaScript 中精度小于0.000001的數(shù)字會(huì)自動(dòng)轉(zhuǎn)化為科學(xué)計(jì)數(shù)的字符串

轉(zhuǎn)換成字符串

String() 可以把 nullundefined 轉(zhuǎn)換為字符串,而用 toString() 轉(zhuǎn)換的話,會(huì)報(bào)錯(cuò)

null 和 undefined 沒(méi)有 toString() 方法,會(huì)報(bào)錯(cuò)

所有的對(duì)象都有toString()方法,作用就是返回一個(gè)反映這個(gè)對(duì)象的字符串。下面列出了一些:

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"

當(dāng) String() 的參數(shù)是一個(gè)對(duì)象時(shí),內(nèi)部處理步驟如下:

先調(diào)用對(duì)象自身的toString方法。如果返回原始類型的值,則對(duì)該值使用String函數(shù),不再進(jìn)行以下步驟。

如果toString方法返回的是對(duì)象,再調(diào)用valueOf方法。如果返回原始類型的值,則對(duì)該值使用String函數(shù),不再進(jìn)行以下步驟。

如果valueOf方法返回的是對(duì)象,就報(bào)錯(cuò)。

String({name: "percy",age: 21})               // "[object Object]"

// 等同于

String(({name: "percy",age: 21}).toString())  // "[object Object]"
隱式轉(zhuǎn)換

將任何數(shù)據(jù)轉(zhuǎn)換為數(shù)字的最簡(jiǎn)單辦法就是 對(duì)它進(jìn)行“一元加”運(yùn)算

+ "12"    // 12
+ "a12"   // NaN
+ true    // 1

字符串和數(shù)字相加結(jié)果是字符串

2 + "3"     // "23"
"2" + 3     // "23"
2 + "3ab"   // "23ab"

字符串和數(shù)字相減結(jié)果是字符串

2 - "3"    // -1
"2" - 3    // -1
2 - "3ab"  //NaN

數(shù)字與布爾值相加減會(huì)自動(dòng)轉(zhuǎn)換

3 - true    // 2
3 + true    // 4
參考資料

【文章】有趣的JavaScript隱式類型轉(zhuǎn)換(推薦)

【文章】數(shù)據(jù)類型轉(zhuǎn)換

【文章】JavaScript類型轉(zhuǎn)換的迷糊事兒(推薦)

【文章】JavaScript 對(duì)象轉(zhuǎn)換之toString、valueOf

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/87896.html

相關(guān)文章

  • JavaScript核心語(yǔ)法——數(shù)據(jù)類型

    摘要:原始類型分別有類型類型和類型三種。類型中存在一個(gè)特殊的值叫。也可以把其他類型的數(shù)據(jù)自動(dòng)轉(zhuǎn)換為類型運(yùn)算符運(yùn)算符判斷原始類型語(yǔ)法結(jié)構(gòu)變量名稱。 數(shù)據(jù)類型 1.數(shù)據(jù)類型的概述;在JavaScript代碼中,能夠表示并且操作值的類型就叫做數(shù)據(jù)類型數(shù)據(jù)類型可以分成可變類型和不可變類型,可變類型的值是可以修改的。相反不可變類型的值是不可以修改的。數(shù)據(jù)類型還有原始類型(原始值)與引用類型(內(nèi)置對(duì)象)...

    wfc_666 評(píng)論0 收藏0
  • WebSocket系列之JavaScript中數(shù)字數(shù)據(jù)如何轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)

    摘要:以和為例,說(shuō)明中的數(shù)字?jǐn)?shù)據(jù)如何轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)。對(duì)象用來(lái)表示通用的固定長(zhǎng)度的原始二進(jìn)制數(shù)據(jù)緩沖區(qū)。中的數(shù)字?jǐn)?shù)據(jù)如何轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)對(duì)和有了一個(gè)大概的了解,下面讓我們來(lái)看下它是如何進(jìn)行二進(jìn)制數(shù)據(jù)操作的。 概述 本文主要通過(guò)對(duì)JavaScript中數(shù)字?jǐn)?shù)據(jù)與二進(jìn)制數(shù)據(jù)之間的轉(zhuǎn)換,讓讀者能夠了解在JavaScript中如何對(duì)數(shù)字類型(包括但不限于Number類型)進(jìn)行處理。 二進(jìn)制數(shù)據(jù)在日常...

    MASAILA 評(píng)論0 收藏0
  • 數(shù)據(jù)類型 - Javascript語(yǔ)法基礎(chǔ) - Javascript核心

    摘要:在編程語(yǔ)言中,能夠表示并操作的值的類型稱做數(shù)據(jù)類型。中的原始類型包括數(shù)字,字符串和布爾值。日期與時(shí)間語(yǔ)言核心包括構(gòu)造函數(shù),用來(lái)創(chuàng)建表示日期和時(shí)間的對(duì)象。其規(guī)則為如果是布爾值,和分別被轉(zhuǎn)換為和如果是數(shù)字值,返回本身。 源代碼: https://github.com/RobinQu/Programing-In-Javascript/blob/master/chapters/Javas...

    sevi_stuo 評(píng)論0 收藏0
  • Front-end developmenter必看,超實(shí)用的javaScript隱式類型轉(zhuǎn)換規(guī)則記憶

    摘要:下面先看看涉及到的幾個(gè)函數(shù)以及他們的轉(zhuǎn)換規(guī)則,這個(gè)是需要記憶的內(nèi)容類型轉(zhuǎn)換需要使用到的函數(shù)對(duì)于布爾值用到的是對(duì)于數(shù)值,用到的是當(dāng)然還有但是對(duì)于隱式類型轉(zhuǎn)換的時(shí)候,調(diào)用的是前者。 javaScript類型轉(zhuǎn)換規(guī)則 javaScript的類型轉(zhuǎn)換其實(shí)一直是很多前端開(kāi)發(fā)人員很迷的地方,一會(huì)兒這里要轉(zhuǎn)換,一會(huì)兒那里又要轉(zhuǎn)換,總之就是一個(gè)大寫(xiě)的迷,因?yàn)樗[式類型轉(zhuǎn)換的地方實(shí)在是太多了。 但其實(shí)...

    fuchenxuan 評(píng)論0 收藏0
  • WebSocket系列之字符串如何與二進(jìn)制數(shù)據(jù)間進(jìn)行互相轉(zhuǎn)換

    摘要:總結(jié)通過(guò)使用和,我們能夠在數(shù)據(jù)和二進(jìn)制數(shù)據(jù)中進(jìn)行互相轉(zhuǎn)換。下一篇系列相關(guān)的博客,將會(huì)介紹如何通過(guò)來(lái)向后端傳遞二進(jìn)制數(shù)據(jù),以及如何處理通過(guò)收到的二進(jìn)制數(shù)據(jù)。 概述 上一篇博客我們說(shuō)到了如何進(jìn)行數(shù)字類型(如Short、Int、Long類型)如何在JavaScript中進(jìn)行二進(jìn)制轉(zhuǎn)換,如果感興趣的可以可以閱讀本系列第二篇博客——WebSocket系列之JavaScript中數(shù)字?jǐn)?shù)據(jù)如何轉(zhuǎn)換為...

    stackfing 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<