JavaScript資料類型

來源:互聯網
上載者:User

標籤:func   相互轉換   編程   重要   ==   儲存   value   prototype   資料   

JS一共為我們定義了6中資料類型,分別是:undefined、null、boolean(布爾)、number(數字)、string(字串)、object(對象)。(ES6中定義了另外其他的資料類型)。其中前5中為單一資料型別、object為複雜資料類型

在理解每一種資料類型之前,我們說一下變數,在任何語言中變數都是儲存資訊的容器。比如:在數學中 x = 5;那x就是數字5的容器,x就是變數。在JS中使用var關鍵字定義一個變數。例如:var x = 5;

說到這裡,我們就很好理解什麼是資料類型了。在數學中數字還分為整數、小數、負數。。。等等好幾種類型,每一種類型適合什麼樣的運演算法則,都有明確的規定。那麼在JS這門語言中,就定義了這6中資料類型,以及每種類型的使用規則和使用情境。接下來我們一一查看。

在講每種類型之前我們先介紹一個js操作符:typeof    (用來檢測變數的資料類型)。

var a; 

typeof(a);    //undefined

var b = 123;

typeof b ;  //number

上面的代碼可以看出typeof的()是可選項。

undefined

只有一個值就是undefined;

那我們先來定義一個undefined的變數:

var a = undefined; 

我們知道undefined是未定義的意思,那這個變數有什麼意義呢?其實undefined並不是用來定義一個變數,而是當變數未被初始化的時候,自動賦予undefined的值。例如:var a;這個時候a就被自動賦予undefined的值。

那為什麼要這麼做呢?我們想一想數學上當我們唯寫一個x的時候,我們能說這個x是整數或者小數或者負數嗎?肯定不能吧!同樣的道理,如果沒有undefined這個資料類型,我們定義一個變數 var a;我們能說這個變數是數字?字串?還是對象?肯定不能吧?現在有了undefined我們就可以說這個a是undefined類型的。這就是undefined資料類型的意義。

null

也只有一個值就是null;   

var b = null;

邏輯角度上看,null表示的是一個null 指標對象。那null的用途是什麼呢?我們可以用typeof null;發現返回的並不是null,而是object,呵呵 你個騙子你不是說typeof可以檢測資料類型嗎?其實這恰恰就能說明null的用途。如果我們定義一個變數將來準備儲存對象。那我們最好將這個變數初始化為null。

在這裡要另外提一點的是:undefined是派生自null值的。所以

undefined == null;    //true

boolean

有兩個值,分別是:true和false;    

var  c = true;    

var d = false;

雖然boolean類型只有兩個值,但是js中所有的資料類型都可以和boolean值相互轉換。轉換規則如下:

                    資料類型                    true                                      false

                    string                      非Null 字元串                           Null 字元串

                    number             非0數字值(包括無窮大)          0/NaN

                     object                       任何對象                                null

                    undefined                   不適用                                undefined     

這些轉換規則對於學習後面的流程式控制制語句將會非常重要。

number

這種類型表示數字: 

var f = 1234566;  

var g = 1.2356;

另外number類型還有一個特殊的值:NaN(非數值 Not a Number)

這個數值用於表示一個本來要返回數值的運算元未返回數值的情況(這樣就不會拋出錯誤了)。例如,在其他程式設計語言中,任何數值除以0都會導致錯誤,從而停止代碼執行。但在JavaScript中,任何數值除以0會返回NaN,因此不會影響其他代碼的執行。

string

用這種類型表示字串:

var s = "abcdef";

var t = "北京";

字串可以有單引號(‘)或者雙引號(")表示。只要變數是由單引號或者雙引號表示的,那這個變數就是字串。看下面幾個例子:

var a = "true";    typeof a;    //"string"

var b = "5689";    typeof b;    //"string"

object

對象是一組資料和功能的集合。

var o =new Object();

o.name="beijing";     //對象的屬性

o.run = function(){};    //對象的方法

當你建立一個對象的時候,js會自動為這個對象執行個體添加下列預設屬性和方法。

constructor——儲存著用於建立當前對象的函數。

hasOwnProperty(propertyName)——用於檢查給定的屬性在當前對象執行個體中(而不是在執行個體的原型中)是否存在。其中,作為參數的屬性名稱(propertyName)必須以字串形式指定(例如:o.hasOwnProperty("name"))。

isPrototypeOf(object)——用於檢查傳入的對象是否是另一個對象的原型。

propertyIsEnumerable(propertyName)——用於檢查給定的屬性是否能夠使用for-in語句來枚舉。

toString()——返回對象的字串表示。

valueOf()——返回對象的字串、數值或布爾值表示。通常與toString()方法的傳回值相同。

JavaScript資料類型

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.