JS中有五種簡單資料型別(基本資料型別),分別是
- Undefined
- Null
- Boolean
- Number
- String
Undefined
Undefined型別只有一個值,即Undefined.在使用var宣告變數但未對其初始化時其值就是Undefined.(非物件)
var a ;
if(typeof(a) === 'undefined'){
console.log(a);
}//true
複製程式碼
未宣告的變數只能執行typeof()
操作,返回undefined
.
Null型別
Null型別只有一個值,即null.如果定義的變數在將來是用來儲存物件的,最好將該變數初始化為null,這樣可以直接判斷null值來知道是否已經儲存了一個物件的引用.
alert(null == undefined) //true
alert(null === undefined) //false
複製程式碼
Boolean型別
布林值只有兩個值,即false
與true
.因為區分大小寫,所以大小寫不一就不是布林值.
Number型別
js中數字佔64bit.其中包括:
對於極大和極小的數可以採用科學記數法,格式為:
- 十進位制
- 二進位制(前兩位是0b,只由0和一組成)
- 八進位制(第一位必須是0,其餘位基數範圍是0-7)
- 十六進位制數(前兩位必須是0x,基數範圍是0-9,a-f)
數值a(可以是整數或浮點數)+e+數值b(可正可負).意即 a乘10的b次方 .
此外還有一特殊的NaN
(Not a Number),即非數值.這個數值用於一個本來要返回數值的運算元未返回數值的情況.任何數值除以非數值都會返回 NaN
.
他有兩個特點,一個是任何涉及NaN的操作都會返回NaN.第二個特點是NaN與任何值都不相等,包括它本身
String型別
String型別用於表示由零或多個16位Unicode字元組成的字元序列,即字串.由單或雙引號包裹.字串是不可變的,一旦被建立,他們的值就不能更改(可被覆蓋).
Object型別(複雜型別)
一個物件就是一系列屬性的集合,一個屬性包含一個名和一個值。
var person = new Object();
person.name = 'dong'
person.age = 18
person.gender = 'male'
複製程式碼
就構成一個如下的物件
person{
name: 'dong'
age: 18
gender: 'male'
}
複製程式碼
物件裡也可以包含物件等屬性.
幾個操作
遍歷for in
for(var key in person){
console.log(key);
} //列印出person中的鍵值
for(var key in person){
console.log(person.key);
} //此為錯誤示範.key等價於字串'key',而person中沒有一個叫'key'的鍵
for(var key in person){
console.log(person[key]);
} //可正確打出person中的key
複製程式碼
判斷型別typeof()
- 值未定義--undefined
- 布林值--boolean
- 字串--string
- 數值--number
- 物件或null--objection
- 函式--function
刪除delete
delete person.name //鍵和值都被刪除
複製程式碼
判斷指定的屬性在指定的物件或其原型鏈中in
'name' in person //true 如果是陣列則索引其下標
'dong' in person //false 不能索引值
複製程式碼