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

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

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

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

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

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

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

傳送門《JS中檢測數(shù)據(jù)類型的幾種方式及優(yōu)缺點小結(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ù)類型的自動轉(zhuǎn)換機制,在某處預期為某種類型而不是某種類型時,就會自動轉(zhuǎn)換為預期類型,這就是我們常說的隱式轉(zhuǎn)換。

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

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

Boolean() 函數(shù)

當要轉(zhuǎn)換的值是至少有一個字符的字符串、非 0 數(shù)字或?qū)ο髸r,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ù)的強制類型轉(zhuǎn)換與 parseInt() 和 parseFloat() 方法的處理方式相似,只是它轉(zhuǎn)換的是整個值,而不是部分值。

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

用 Number() 進行強制類型轉(zhuǎn)換,"1.2.3" 將返回 NaN,因為整個字符串值不能轉(zhuǎn)換成數(shù)字。如果字符串值能被完整地轉(zhuǎn)換,Number() 將判斷是調(diào)用 parseInt() 方法還是 parseFloat() 方法。

String() 函數(shù)

最后一種強制類型轉(zhuǎn)換方法 String() 是最簡單的,因為它可把任何值轉(zhuǎn)換成字符串。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相關(guān)文章

最新評論