Jquery 基本知識(二)

來源:互聯網
上載者:User

標籤:http   不能   類型   處理   cin   種類   cell   javascrip   對象   

一、資料類型

5種基礎資料型別 (Elementary Data Type):Null/Undefined/String/Boolean/Number

1種複雜資料類型:Object

 

二、資料類型檢測

1、typeof

2、instanceof/constructor

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

4、Object.prototype.toString

 

三、資料類型轉換

JS內部提供不同資料類型的自動轉換機制,在某處預期為某種類型而不是某種類型時,就會自動轉換為預期類型,這就是我們常說的隱式轉換。

1、強制類型轉換

在瞭解隱式轉換的規則前先來看看強制類型轉換,強制類型轉換主要是用Boolean()/String()/Number()將各類型的資料轉換成布爾、字串、數值型資料。

Boolean() 函數

當要轉換的值是至少有一個字元的字串、非 0 數字或對象時,Boolean() 函數將返回 true。如果該值是Null 字元串、數字 0、undefined 或 null,它將返回 false。

123456 var b1 = Boolean("");       //false - Null 字元串var b2 = Boolean("hello");  //true - 非Null 字元串var b1 = Boolean(50);       //true - 非零數字var b1 = Boolean(null);     //false - nullvar b1 = Boolean(0);        //false - 零var b1 = Boolean(new object()); //true - 對象
Number() 函數

Number() 函數的強制類型轉換與 parseInt() 和 parseFloat() 方法的處理方式相似,只是它轉換的是整個值,而不是部分值。

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

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

String() 函數

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

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

強制轉換成字串和調用 toString() 方法的唯一不同之處在於,對 null 和 undefined 值強制類型轉換可以產生字串而不引發錯誤:

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

 

2、自動類型轉換

說完了強制類型轉換,再來看看自動類型轉換,實際上自動類型轉換是建立在強制類型轉換的基礎上,當預期某個位置應該是某類型(布爾、數值、字串)的資料時,就會調用相應的強制類型轉換函式,這個是自動進行的。

*當JavaScript遇到預期為布爾值的地方(比如if語句的條件部分),就會將非布爾值的參數自動轉換為布爾值。系統內部會自動調用Boolean函數。

因此除了以下六個值,其他都是自動轉為true

  • undefined
  • null
  • -0
  • 0+0
  • NaN
  • ‘‘(Null 字元串)

*當JavaScript遇到預期為字串的地方,就會將非字串的資料自動轉為字串。系統內部會自動調用String函數。

字串的自動轉換,主要發生在加法運算時。當一個值為字串,另一個值為非字串,則後者轉為字串。

 

*當JavaScript遇到預期為數值的地方,就會將參數值自動轉換為數值。系統內部會自動調用Number函數。

除了加法運算子有可能把運運算元轉為字串,其他運算子都會把運運算元自動轉成數值。

一元運算子也會把運運算元轉成數值。

1234 +‘abc‘ // NaN-‘abc‘ // NaN+true // 1-false // 0

  

Jquery 基本知識(二)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.