JS中的六大資料類型

來源:互聯網
上載者:User

標籤:code   isnan   eal   組織   函數運算式   obj   類對象   表達   構造   

js中有六種資料類型,包括五種基礎資料型別 (Elementary Data Type)(Number,String,Boolean,Undefined,Null),和一種複雜資料類型(Object)。

typeof 操作符

由於js中的變數是鬆散類型的,所以它提供了一種檢測當前變數的資料類型的方法,也就是typeof關鍵字.

type of   123   //Number

type of   ‘abc‘  //String

type of    true       //Boolean

type of    undefined   //Undefined

type of    null        //Object

type of    { }           //Object

type of    [ ]           //Object

type of    console.log()       //Function

null類型進行typeof操作符後,結果是object,原因在於,null類型被當做一個Null 物件引用。

1.Number類型

Number類型包含整數和浮點數(浮點數數值必須包含一個小數點,且小數點後面至少有一位元字)兩種值。

NaN:非數字類型。特點:① 涉及到的 任何關於NaN的操作,都會返回NaN   ② NaN不等於自身。

isNaN() 函數用於檢查其參數是否是非數字值。

isNaN(123)  //false   isNaN("hello")  //true

2.String類型

字串有length屬性。

字串轉換:轉型函數String(),適用於任何資料類型(null,undefined 轉換後為null和undefined);toString()方法(null,defined沒有toString()方法)。

3.Boolean類型

該類型只有兩個值,true和false

4.Undefined類型

只有一個值,即undefined值。使用var聲明了變數,但未給變數初始化值,那麼這個變數的值就是undefined。

5.Null類型

null類型被看做Null 物件指標,前文說到null類型也是空的對象引用。

6.Object類型

js中對象是一組屬性與方法的集合。這裡就要說到參考型別了,參考型別是一種資料結構,用於將資料和功能組織在一起。參考型別有時候也被稱為對象定義,因為它們描述的是一類對象所具有的屬性和方法。

三大參考型別 1.Object類型

我們看到的大多數類型值都是Object類型的執行個體,建立Object執行個體的方式有兩種。

第一種是使用new操作符後跟Object建構函式,如下所示

var person = new Object();

person.name = "Micheal";

person.age = 24;

第二種方式是使用對象字面量標記法,如下所示

var person = {

  name : "Micheal",

  age : 24

};

2.Array類型

數組的每一項可以用來儲存任何類型的資料,也就是說,可以用數組的第一個位置來儲存字串,第二個位置儲存數值,第三個位置儲存對象....另外,數組的大小是可以動態調整的。

建立數組的基本方式有兩種

第一種是使用Array建構函式,如下所示

var colors = new Array("red","blue","yellow");

第二種是使用數組字面量標記法,如下所示

var colors = ["red","blue","yellow"];

3 Function類型

每個函數都是Function類型的執行個體,而且都與其他參考型別一樣具有屬性和方法。函數通常是使用函式宣告文法定義的,如下所示

function sum(num1,num2){

  return num1 + num2;

};

這和使用函數運算式定義函數的方式相差無幾。

var sun = function (){

  return sum1 + sum2;

};

也就是說,js按照儲存方式分為實值型別和參考型別。那麼他們的計算有什麼區別呢?

題目1: var a = 100;

    var b = a;

      a = 200;

    console.log (b);

題目2: var a = {age : 20};

    var b = a;

    b.age = 21;

    console.log (a.age);

題目1的答案是 100,題目2的答案是21,

題目1是簡單的實值型別,在從一個變數向另一個變數賦值基本類型時,會在該變數上建立一個新值,然後再把該值複製到為新變數分配的位置上。

此時,a中儲存的值為 100 ,當使用 a 來初始化 b 時,b 中儲存的值也為100,但b中的100與a中的是完全獨立的,該值只是a中的值的一個副本,此後,
這兩個變數可以參加任何操作而相互不受影響。也就是說基本類型在賦值操作後,兩個變數是相互不受影響的。

題目2是參考型別,當從一個變數向另一個變數賦值參考型別的值時,同樣也會將儲存在變數中的對象的值複製一份放到為新變數分配的空間中。

這時儲存在變數中的是對象在堆記憶體中的地址,所以,與簡單賦值不同,這個值的副本實際上是一個指標,而這個指標指向儲存在堆記憶體的一個對象。那麼賦值操作後,
兩個變數都儲存了同一個對象地址,則這兩個變數指向了同一個對象。因此,改變其中任何一個變數,都會相互影響。

因此,參考型別的賦值其實是對象儲存在棧區地址指標的賦值,因此兩個變數指向同一個對象,任何的操作都會相互影響。

本人正在學習和摸索中,如有錯誤,歡迎指正!

 

JS中的六大資料類型

相關文章

聯繫我們

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