欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Javascript數(shù)據(jù)類型的轉(zhuǎn)換規(guī)則

 更新時(shí)間:2016年12月12日 08:53:32   作者:碧霄中游  
本文主要介紹了Javascript的基本數(shù)據(jù)類型和數(shù)據(jù)類型的轉(zhuǎn)換規(guī)則。具有很好的參考價(jià)值,需要的朋友可以看下

一、數(shù)據(jù)類型

5種基本數(shù)據(jù)類型:Null/Undefined/String/Boolean/Number

1種復(fù)雜數(shù)據(jù)類型:Object

二、數(shù)據(jù)類型檢測

傳送門《JS中檢測數(shù)據(jù)類型的幾種方式及優(yōu)缺點(diǎn)小結(jié)

1、typeof

2、instanceof/constructor

3、Object.prototype.toString.call(value)

4、Object.prototype.toString

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

JS內(nèi)部提供不同數(shù)據(jù)類型的自動(dòng)轉(zhuǎn)換機(jī)制,在某處預(yù)期為某種類型而不是某種類型時(shí),就會自動(dòng)轉(zhuǎn)換為預(yù)期類型,這就是我們常說的隱式轉(zhuǎn)換。

1、強(qiáng)制類型轉(zhuǎn)換

在了解隱式轉(zhuǎn)換的規(guī)則前先來看看強(qiáng)制類型轉(zhuǎn)換,強(qiáng)制類型轉(zhuǎn)換主要是用Boolean()/String()/Number()將各類型的數(shù)據(jù)轉(zhuǎn)換成布爾、字符串、數(shù)值型數(shù)據(jù)。

Boolean() 函數(shù)

當(dāng)要轉(zhuǎn)換的值是至少有一個(gè)字符的字符串、非 0 數(shù)字或?qū)ο髸r(shí),Boolean() 函數(shù)將返回 true。如果該值是空字符串、數(shù)字 0、undefined 或 null,它將返回 false。

var b1 = Boolean(""); //false - 空字符串
var b2 = Boolean("hello"); //true - 非空字符串
var b1 = Boolean(50); //true - 非零數(shù)字
var b1 = Boolean(null); //false - null
var b1 = Boolean(0); //false - 零
var b1 = Boolean(new object()); //true - 對象

Number() 函數(shù)

Number() 函數(shù)的強(qiáng)制類型轉(zhuǎn)換與 parseInt() 和 parseFloat() 方法的處理方式相似,只是它轉(zhuǎn)換的是整個(gè)值,而不是部分值。

parseInt() 和 parseFloat() 方法只轉(zhuǎn)換第一個(gè)無效字符之前的字符串,因此 "1.2.3" 將分別被轉(zhuǎn)換為 "1" 和 "1.2"。

用 Number() 進(jìn)行強(qiáng)制類型轉(zhuǎn)換,"1.2.3" 將返回 NaN,因?yàn)檎麄€(gè)字符串值不能轉(zhuǎn)換成數(shù)字。如果字符串值能被完整地轉(zhuǎn)換,Number() 將判斷是調(diào)用 parseInt() 方法還是 parseFloat() 方法。

String() 函數(shù)

最后一種強(qiáng)制類型轉(zhuǎn)換方法 String() 是最簡單的,因?yàn)樗砂讶魏沃缔D(zhuǎn)換成字符串。

要執(zhí)行這種強(qiáng)制類型轉(zhuǎn)換,只需要調(diào)用作為參數(shù)傳遞進(jìn)來的值的 toString() 方法,即把 12 轉(zhuǎn)換成 "12",把 true 轉(zhuǎn)換成 "true",把 false 轉(zhuǎn)換成 "false",以此類推。

強(qiáng)制轉(zhuǎn)換成字符串和調(diào)用 toString() 方法的唯一不同之處在于,對 null 和 undefined 值強(qiáng)制類型轉(zhuǎn)換可以生成字符串而不引發(fā)錯(cuò)誤:

var s1 = String(null); //"null"
var oNull = null;
var s2 = oNull.toString(); //會引發(fā)錯(cuò)誤

2、自動(dòng)類型轉(zhuǎn)換

說完了強(qiáng)制類型轉(zhuǎn)換,再來看看自動(dòng)類型轉(zhuǎn)換,實(shí)際上自動(dòng)類型轉(zhuǎn)換是建立在強(qiáng)制類型轉(zhuǎn)換的基礎(chǔ)上,當(dāng)預(yù)期某個(gè)位置應(yīng)該是某類型(布爾、數(shù)值、字符串)的數(shù)據(jù)時(shí),就會調(diào)用相應(yīng)的強(qiáng)制類型轉(zhuǎn)換函數(shù),這個(gè)是自動(dòng)進(jìn)行的。

*當(dāng)JavaScript遇到預(yù)期為布爾值的地方(比如if語句的條件部分),就會將非布爾值的參數(shù)自動(dòng)轉(zhuǎn)換為布爾值。系統(tǒng)內(nèi)部會自動(dòng)調(diào)用Boolean函數(shù)。

因此除了以下六個(gè)值,其他都是自動(dòng)轉(zhuǎn)為true。

  • undefined
  • null
  • -0
  • 0或+0
  • NaN
  • ''(空字符串)

*當(dāng)JavaScript遇到預(yù)期為字符串的地方,就會將非字符串的數(shù)據(jù)自動(dòng)轉(zhuǎn)為字符串。系統(tǒng)內(nèi)部會自動(dòng)調(diào)用String函數(shù)。

字符串的自動(dòng)轉(zhuǎn)換,主要發(fā)生在加法運(yùn)算時(shí)。當(dāng)一個(gè)值為字符串,另一個(gè)值為非字符串,則后者轉(zhuǎn)為字符串。

*當(dāng)JavaScript遇到預(yù)期為數(shù)值的地方,就會將參數(shù)值自動(dòng)轉(zhuǎn)換為數(shù)值。系統(tǒng)內(nèi)部會自動(dòng)調(diào)用Number函數(shù)。

除了加法運(yùn)算符有可能把運(yùn)算子轉(zhuǎn)為字符串,其他運(yùn)算符都會把運(yùn)算子自動(dòng)轉(zhuǎn)成數(shù)值。

一元運(yùn)算符也會把運(yùn)算子轉(zhuǎn)成數(shù)值。

+'abc' // NaN
-'abc' // NaN
+true // 1
-false // 0

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!

相關(guān)文章

最新評論