JavaScript 語言的每一個值,都屬于某一種數(shù)據(jù)類型。JavaScript 的數(shù)據(jù)類型,共有六種:
1. 數(shù)值(number):整數(shù)和小數(shù)(比如1和3.14)
2. 字符串(string):文本(比如Hello World)。
3. 布爾值(boolean):表示真?zhèn)蔚膬蓚€特殊值,即true(真)和false(假)
4. undefined:表示“未定義”或不存在,即由于目前沒有定義,所以此處暫時沒有任何值
5. null:表示空值,即此處的值為空。
6. 對象(object):各種值組成的集合。
通常,數(shù)值、字符串、布爾值這三種類型,合稱為原始類型(primitive type)的值,即它們是最基本的數(shù)據(jù)類型,不能再細分了。對象則稱為合成類型(complex type)的值,因為一個對象往往是多個原始類型的值的合成,可以看作是一個存放各種值的容器。至于undefined和null,一般將它們看成兩個特殊值。
對象是最復雜的數(shù)據(jù)類型,又可以分成三個子類型:
- 狹義的對象(object)
- 數(shù)組(array)
- 函數(shù)(function)
Undefined和Null
Undefined和Null類型只有一個值,那分別是undefined和null。
對于undefined來說,需要記住下面兩點:
已聲明但未初始化的變量值為undefined(參考上面代碼)
undefined和null相等
console.log(undefined == null) //true
對于null來說,需要記住兩點:
typeof null 返回"object",從邏輯上看,null為object的引用(示例見typeof)
undefined和null相等
Boolean
Boolean類型有兩個值——true和false。
任何數(shù)據(jù)可以調(diào)用布爾函數(shù)Boolean(), 會返回一個布爾值。
數(shù)值
Number類型包含整數(shù)和浮點數(shù)(浮點數(shù)數(shù)值必須包含一個小數(shù)點,且小數(shù)點后面至少有一位數(shù)字)兩種值。
字符串
字符串就是零個或多個排在一起的字符,放在單引號或雙引號之中。
對象
對象(object)是 JavaScript 語言的核心概念,也是最重要的數(shù)據(jù)類型。
什么是對象?簡單說,對象就是一組“鍵值對”(key-value)的集合,是一種無序的復合數(shù)據(jù)集合。
對象的所有鍵名都是字符串(ES6 又引入了 Symbol 值也可以作為鍵名),所以加不加引號都可以。上面的代碼也可以寫成下面這樣。
如果不同的變量名指向同一個對象,那么它們都是這個對象的引用,也就是說指向同一個內(nèi)存地址。修改其中一個變量,會影響到其他所有變量。