(Frontend Newbie)JavaScript基礎之常見數據類型
JavaScript中的數據類型分為兩種,一種是簡單數據類型,包括Undefined、Null、Boolean、Number和String,另一種是復雜數據類型,即Object,也可稱作為引用類型。本篇主要介紹常見的引用類型以及對應的操作。
Object類型
Object類型是JavaScript中最常見的數據類型了。它表示一系列的屬性和值的集合。我們可以這樣創建一個Object:
var obj = new Object();
更常用的方式是這樣:
var obj = {a: "a"};
Array類型
數組類型也是非常常用的一種數據類型,與其他語言不同的是,JavaScript中的數組的每一項都可以保存任意類型的值。而且,JavaScript數組的大小是可以動態調整的,隨著數據的添加而自動增長。
下面是JavaScript數組的常用操作匯總。

Date類型
Date類型是基于Java語言的Date類構建的,使用自UTC時間1970年1月1日零時開始經過的毫秒數來保存日期。
下面是JavaScript日期類型的常用操作匯總。

RegExp類型
我們在日常開發過程中經常要用到正則表達式,JavaScript通過RegExp類型來支持正則表達式。常見正則表達式通常有一下兩種方式:
var expression = / pattern / flags
其中的模式(pattern)可以應用任何簡單或復雜的正則表達式(參考 正則表達式30分鐘入門教程 ),可以包含字符類、限定符、分組、向前查找以及反向引用。每個正則表達式可以帶有一個或多個標識(flags),用以標明正則表達式的行為。正則表達式的模式匹配支持下面三種標識:
- g: 表示全局(global )模式,即模式將被應用于所有字符串,而非在發現第一個匹配項時立即停止
- i:表示不區分大小寫(case-insensitive )模式,即在確定匹配項時忽略模式與字符串的大小寫
- m:表示多行(multiline )模式,即在到達一行文本末尾時還會繼續查找下一行中是否存在與模式匹配的項。
另一種創建正則表達式的方式是通過構造函數:
var pattern2 = new RegExp("[bc]at", "i");
傳遞給構造函數的都是字符串,所以如果正則表達式字符串中包含元字符,則需要進行雙重轉義。比如 \ 在字符串中通常為 \\ ,但是在正則表達式字符串中,要轉移成 \\\\
通常我們在使用正則表達式的時候,會使用到如下兩種方法:
- exec() 該函數接受一個字符串參數作為應用模式的字符串。返回包含第一個匹配信息的數組,或者在沒有匹配的情況下返回null。
- test() 該函數接受一個字符串參數,在模式與該參數匹配的情況下返回true,否則返回false。
String類型
String類型是字符串的對象包裝類型。
var strObj = new String("This is a String Object.");
以下是常見的字符串操作:

小結
除了上面介紹的幾種數據類型外,還有Number、Boolean這樣的對象包裝類型,Math這樣的單體內置對象,由于使用頻率相對較低一點,且使用方法都較為簡單,所以不在此處一一羅列,需要使用的時候,參考一下工具書就可以了。本篇有意避開了Function函數類型沒有說,并不是函數類型不重要,相反,函數是JavaScript中的一等公民。之所以沒有說,一是受篇幅限制,二是函數確實有太多的細節需要注意,所以后面會有一篇單獨介紹JavaScript中的函數,以及作用域、閉包等概念。