最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript顯式數(shù)據(jù)類型轉(zhuǎn)換詳解

 更新時(shí)間:2019年03月18日 09:22:10   作者:為愛心太軟  
這篇文章主要介紹了JavaScript顯式數(shù)據(jù)類型轉(zhuǎn)換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

基本概念

將值從一種類型轉(zhuǎn)換為另一種類型稱為類型轉(zhuǎn)換,類型轉(zhuǎn)換總是返回基本類型值,如字符串、數(shù)字和布爾值,不會(huì)返回引用類型值。
類型轉(zhuǎn)換分為“顯式”和“隱式”:“顯式”轉(zhuǎn)換發(fā)生在靜態(tài)類型語(yǔ)言的編譯階段,而“隱式”轉(zhuǎn)換則發(fā)生在動(dòng)態(tài)類型語(yǔ)言的運(yùn)行時(shí)。

顯式類型轉(zhuǎn)換

非字符串到字符串的類型轉(zhuǎn)換

toString() 方法
數(shù)字、布爾值、字符串和對(duì)象都有 toString() 方法,但 null 和 undefined 沒有。
例子:

var name = "Tom",
  age = 19,
  isStudent = true;
console.log(name.toString()); //輸出:"Tom"
console.log(age.toString()); //輸出:"19"
console.log(isStudent.toString()); //輸出:"true"

var obj = {
    name: "Tom"
  },
  arr = [19, 20];
console.log(obj.toString()); //輸出:"[object Object]"
console.log(arr.toString()); //輸出:"19,20"

*基本類型值不能直接使用 toString() 方法,所以 JavaScript 引擎會(huì)自動(dòng)為基本類型值創(chuàng)建一個(gè)封裝對(duì)象,然后對(duì)該對(duì)象調(diào)用 toString()。

String() 方法

這個(gè)方法能夠?qū)⑷魏晤愋偷闹缔D(zhuǎn)換為字符串,基本的轉(zhuǎn)換規(guī)則是:

1、如果值有toString()方法,則調(diào)用該方法進(jìn)行轉(zhuǎn)換;
2、如果值是null,則返回“null”;
3、如果值是undefined,則返回“undefined”。

例子:

console.log(String(11)); //輸出:"11"
console.log(String(true)); //輸出:"true"
console.log(String("love")); //輸出:"love"
console.log(String(null)); //輸出:"null"
console.log(String(undefined)); //輸出:"undefined"
console.log(String({
  name: "Tom"
})); //輸出:"[object Object]"
console.log(String([1, 2])); //輸出:"1,2"

非數(shù)字到數(shù)字的類型轉(zhuǎn)換

Number() 方法

這個(gè)方法可以用于任何數(shù)據(jù)類型,基本的轉(zhuǎn)換規(guī)則是:
1、如果是Boolean值,true和false將分別被轉(zhuǎn)換為1和0;
2、如果是數(shù)字值,只是簡(jiǎn)單的傳入和返回;
3、如果是null值,返回0;
4、如果是undefined值,返回NaN;
5、如果是字符串,遵循下列規(guī)則:

  1. 如果字符串中只包含數(shù)字,將其轉(zhuǎn)換為十進(jìn)制。即“123”轉(zhuǎn)換為123,“011”轉(zhuǎn)換為11(忽略前導(dǎo)0);
  2. 如果字符串中包含有效的浮點(diǎn)格式,如“1.1”將其轉(zhuǎn)換為對(duì)應(yīng)的浮點(diǎn)數(shù)值(同樣忽略前導(dǎo)0);
  3. 如果字符串是空的,不包含任何字符,則將其轉(zhuǎn)換為0;
  4. 如果字符串中包含除上述以外的字符,則將其轉(zhuǎn)換為NaN。

 6、如果是對(duì)象,會(huì)首先檢查該值是否有 valueOf() 方法。如果有,并且可以成功返回基本類型值,那么就使用該方法的返回值進(jìn)行強(qiáng)制類型轉(zhuǎn)換;如果沒有就使用 toString() 的返回值來(lái)進(jìn)行強(qiáng)制類型轉(zhuǎn)換。如果 valueOf() 和 toString() 均不返回基本類型值,會(huì)產(chǎn)生 TypeError 錯(cuò)誤。

*valueOf() 和 toString() 都屬于 Object 的原型方法,valueOf() 返回類型不變的原始值而非值的字符串形式。

例子:

console.log(Number(true)); //輸出:1
console.log(Number(10)); //輸出:10
console.log(Number(null)); //輸出:0
console.log(Number(undefined)); //輸出:NaN
console.log(Number("123")); //輸出:123
console.log(Number("01")); //輸出:1
console.log(Number("1.1")); //輸出:1.1
console.log(Number("")); //輸出:0
console.log(Number("love")); //輸出:NaN
//轉(zhuǎn)換過(guò)程:{name: "Tom"} => "[object Object]" => NaN
console.log(Number({
  name: "Tom"
})); //輸出:NaN
//轉(zhuǎn)換過(guò)程:[1,2] => "1,2" => NaN
console.log(Number([1, 2])); //輸出:NaN
//轉(zhuǎn)換過(guò)程:[999] => "999" => 999
console.log(Number([999])); //輸出:999
console.log(Number(new Date)); //以微秒為單位的數(shù)字時(shí)間

parseInt() 方法

這個(gè)方法是專門用于把字符串轉(zhuǎn)換成整數(shù)的,非字符串參數(shù)會(huì)首先被強(qiáng)制轉(zhuǎn)換為字符串,它的基本轉(zhuǎn)換規(guī)則是:
1、如果第一個(gè)字符不是數(shù)字或者負(fù)號(hào),返回NaN;
2、如果第一個(gè)字符是數(shù)字,會(huì)繼續(xù)解析第二個(gè)字符,直到解析完所有后續(xù)字符或者遇到了一個(gè)非數(shù)字字符。
例子:

例子:

//非字符串類型
//轉(zhuǎn)換過(guò)程:10.1 => "10.1" => 10
console.log(parseInt(10.1)); //輸出:10
//轉(zhuǎn)換過(guò)程:0.0000008 => "8e-7" => 8
console.log(parseInt(0.0000008)); //輸出:8

//字符串類型
console.log(parseInt("10abc")); //輸出:10
console.log(parseInt("abc")); //輸出:NaN

*從 ES5 開始,parseInt() 默認(rèn)轉(zhuǎn)換為十進(jìn)制數(shù),如果需要轉(zhuǎn)換其他基數(shù)(即多少進(jìn)制),可以為這個(gè)函數(shù)提供第二個(gè)參數(shù),例如:parseInt( “0xAF”, 16 ) 。

parseFloat() 方法與 parseInt() 類似,用于解析浮點(diǎn)數(shù)。字符串中的第一個(gè)小數(shù)點(diǎn)是有效的,而第二個(gè)小數(shù)點(diǎn)是無(wú)效的。除此之外,parseFloat() 方法只能解析十進(jìn)制數(shù)。

例子:

console.log(parseFloat("10abc")); //輸出:10
console.log(parseFloat("11.22.33")); //輸出:11.22
console.log(parseFloat("011.22")); //輸出:11.22

非布爾值到布爾值的類型轉(zhuǎn)換

Boolean() 方法

可以對(duì)任何數(shù)據(jù)類型的值調(diào)用 Boolean() 方法,而且總會(huì)返回一個(gè) Boolean 值,基本的轉(zhuǎn)換規(guī)則是:
1、以下這些是可以被轉(zhuǎn)換為 false 的值:

  1. undefined
  2. null
  3. false
  4. +0、-0 和 NaN
  5. “”

2、上面列舉之外的值都是可以被轉(zhuǎn)換為 true 的值。

例子:

console.log(Boolean(undefined)); //輸出:false
console.log(Boolean(null)); //輸出:false
console.log(Boolean(false)); //輸出:false
console.log(Boolean(0)); //輸出:false
console.log(Boolean(-0)); //輸出:false
console.log(Boolean(NaN)); //輸出:false
console.log(Boolean("")); //輸出:false

所有的對(duì)象都是可以被轉(zhuǎn)換為 true 的值,包括使用Boolean、 Number 和 String 來(lái)創(chuàng)建的基本包裝類型的對(duì)象。

例子:

console.log(Boolean(new Boolean(false))); //輸出:true
console.log(Boolean(new Number(0))); //輸出:true
console.log(Boolean(new String(""))); //輸出:true
console.log(Boolean([])); //輸出:true
console.log(Boolean({})); //輸出:true

如有錯(cuò)誤,歡迎指正,本人不勝感激。

以上所述是小編給大家介紹的JavaScript顯式數(shù)據(jù)類型轉(zhuǎn)換詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • document.all的一個(gè)比較完整的總結(jié)及案例

    document.all的一個(gè)比較完整的總結(jié)及案例

    document.all想必學(xué)習(xí)javascript的同學(xué)們都很了解吧,本文主要是針對(duì)一些剛?cè)腴T的童鞋們做一下有關(guān)document.all的相關(guān)總結(jié),感興趣的朋友可以了解下,或許本文對(duì)你有所幫助
    2013-01-01
  • javascript作用域和閉包使用詳解

    javascript作用域和閉包使用詳解

    這篇文章主要介紹了javascript作用域和閉包使用詳解,需要的朋友可以參考下
    2014-04-04
  • Javascript基礎(chǔ)回顧之(一) 類型

    Javascript基礎(chǔ)回顧之(一) 類型

    本系列所有內(nèi)容都是涉及Javascript基礎(chǔ)的,沒有時(shí)髦的玩意兒,但是我相信這些基礎(chǔ)的東西會(huì)有助于你理解那些有趣的東西的
    2017-01-01
  • JavaScript基礎(chǔ)重點(diǎn)(必看)

    JavaScript基礎(chǔ)重點(diǎn)(必看)

    下面小編就為大家?guī)?lái)一篇JavaScript基礎(chǔ)重點(diǎn)(必看)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07
  • 告訴你什么是javascript的回調(diào)函數(shù)

    告訴你什么是javascript的回調(diào)函數(shù)

    在javascript中回調(diào)函數(shù)非常重要,它們幾乎無(wú)處不在。像其他更加傳統(tǒng)的編程語(yǔ)言都有回調(diào)函數(shù)概念,但是非常奇怪的是,完完整整談?wù)摶卣{(diào)函數(shù)的在線教程比較少,倒是有一堆關(guān)于call()和apply()函數(shù)的,或者有一些簡(jiǎn)短的關(guān)于callback的使用示例。
    2014-09-09
  • 簡(jiǎn)介JavaScript中POSITIVE_INFINITY值的使用

    簡(jiǎn)介JavaScript中POSITIVE_INFINITY值的使用

    這篇文章主要介紹了簡(jiǎn)介JavaScript中POSITIVE_INFINITY值的使用,是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-06-06
  • javascript中的幾個(gè)運(yùn)算符

    javascript中的幾個(gè)運(yùn)算符

    javascript中的幾個(gè)運(yùn)算符...
    2007-06-06
  • JavaScript parseInt()與Number()區(qū)別案例詳解

    JavaScript parseInt()與Number()區(qū)別案例詳解

    這篇文章主要介紹了JavaScript parseInt()與Number()區(qū)別案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • nodejs的require模塊(文件模塊/核心模塊)及路徑介紹

    nodejs的require模塊(文件模塊/核心模塊)及路徑介紹

    在nodejs中,模塊大概可以分為核心模塊和文件模塊,核心模塊是被編譯成二進(jìn)制代碼,引用的時(shí)候只需require表示符即可,文件模塊,則是指js文件、json文件或者是.node文件
    2013-01-01
  • 三張圖帶你搞懂JavaScript的原型對(duì)象與原型鏈

    三張圖帶你搞懂JavaScript的原型對(duì)象與原型鏈

    這篇文章介紹了JavaScript的原型對(duì)象與原型鏈,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07

最新評(píng)論

洞口县| 福安市| 潜江市| 保定市| 留坝县| 尉氏县| 白城市| 和龙市| 青河县| 友谊县| 玉环县| 淅川县| 驻马店市| 霍城县| 莱芜市| 昌乐县| 和平县| 丰都县| 博爱县| 广德县| 灵石县| 吉木乃县| 永福县| 淄博市| 绥阳县| 常宁市| 黄浦区| 阜平县| 若羌县| 黔江区| 甘南县| 临潭县| 葵青区| 方城县| 航空| 元朗区| 南木林县| 昂仁县| 湟源县| 尤溪县| 临沧市|