JS中的原始數(shù)據(jù)類型
- number:數(shù)字類型(整數(shù)和小數(shù))
- string:字符串類型(一般用單引號(hào)或者雙引號(hào)括起來的)
- boolean:布爾類型(值只有兩個(gè):true矗蕊,false)
- null:空類型(值只有一個(gè)正歼,即null)
- undefined:未定義(值只有一個(gè)作箍,即undefined)
- object:對(duì)象類型
- symbol:表示獨(dú)一無二的值(ES6新增)
1.number 數(shù)值
整數(shù)和浮點(diǎn)數(shù)
JavaScript 內(nèi)部狐赡,所有數(shù)字都是以64位浮點(diǎn)數(shù)形式儲(chǔ)存舰攒,即使整數(shù)也是如此鸠信。所以歹河,1與1.0是相同的勤众,是同一個(gè)數(shù)舆绎。
NaN:非數(shù)字類型。特點(diǎn):① 涉及到的 任何關(guān)于NaN的操作们颜,都會(huì)返回NaN ② NaN不等于自身吕朵。
isNaN()
函數(shù)用于檢查其參數(shù)是否是非數(shù)字值。
isNaN(123) //false isNaN("hello") //true
2.String類型
字符串就是零個(gè)或多個(gè)排在一起的字符窥突,放在單引號(hào)或雙引號(hào)之中努溃。
下面兩種字符串的寫法都是有效的:
var firstName="Marry"; var firstName='Jane';
注意:
如果要在單引號(hào)字符串的內(nèi)部,使用單引號(hào)阻问,就必須在內(nèi)部的單引號(hào)前面加上反斜杠梧税,用來轉(zhuǎn)義。雙引號(hào)字符串內(nèi)部使用雙引號(hào),也是如此第队。
字符串默認(rèn)只能寫在一行內(nèi)哮塞,分成多行將會(huì)報(bào)錯(cuò)。如果要分成多行凳谦,在每一行的尾部加上反斜杠\
忆畅。
連接運(yùn)算符+
可以連接多個(gè)單行字符串,將長字符串分成多行尸执,輸出時(shí)也是單行家凯。
String類型包含了一些特殊的字符字面量,也叫轉(zhuǎn)義序列剔交。
字面量 | 含義 |
---|---|
\n | 換行 |
\t | 制表 |
\b | 空格 |
\r | 回車 |
\f | 進(jìn)紙 |
\ | 斜杠 |
' | 單引號(hào) |
" | 雙引號(hào) |
\xnn | 以十六進(jìn)制代碼 nn 表示的一個(gè)字符(0~F)肆饶。例:\x41 |
\unnn | 十六進(jìn)制代碼nnn表示的一個(gè)Unicode字符(0~F)。例:\u03a3 |
字符串一旦創(chuàng)建岖常,它們的值就不能改變驯镊。要改變某個(gè)變量保存的字符串,首先要銷毀原來的字符串竭鞍,然后再用另一個(gè)包含新值的字符串填充該變量板惑。
length
屬性返回字符串的長度,該屬性也是無法改變的偎快。
s.length // 5
s.length = 3;
s.length // 5
3.null和undefined
- Undefined 類型只有一個(gè)值冯乘,即特殊的undefined。 在使用var聲明變量晒夹,但沒有對(duì)其初始化裆馒,這個(gè)變量的值就是undefined。
- null 只有一個(gè)值null
null與undefined都可以表示“沒有”,相等運(yùn)算符(==)甚至報(bào)告兩者相等
區(qū)別:有一個(gè)對(duì)象丐怯,還不想賦值喷好,推薦給一個(gè)空值null
非對(duì)象,還不想賦值读跷,推薦給一個(gè)undefined
4.布爾值(boolean)
布爾值只有兩個(gè)true和false梗搅,在條件表達(dá)式中,會(huì)將表達(dá)式轉(zhuǎn)換為布爾值效览,以進(jìn)行下一步操作无切。除了以下六個(gè)falsy值外,其它一切轉(zhuǎn)換為布爾值都為true丐枉。
undefined
null
false
0
NaN
空字符串
小技巧:要將其它值轉(zhuǎn)換為布爾值可使用雙重取反!!xxx
object類型
對(duì)象哆键,就是一組“鍵值對(duì)”(key-value)的集合,是一種無序的復(fù)合數(shù)據(jù)集合矛洞。
var a = {
name: 'cong'
age: '24'
}
- key必須為字符串形式洼哎,引號(hào)可以省略烫映。
如果鍵名不符合標(biāo)識(shí)名的條件(比如第一個(gè)字符為數(shù)字,或者含有空格或運(yùn)算符)噩峦,且也不是數(shù)字锭沟,則必須加上引號(hào)
var a = {
name: 'cong',
age: '24',
9b: '20',//不合法
'9b'; '20' // 合法
}
- 調(diào)用方法:點(diǎn)方法和方括號(hào)法。
a.name
// 當(dāng)鍵名符合標(biāo)識(shí)符規(guī)則
a['9b']
//鍵名必須放在引號(hào)里面识补,否則會(huì)被當(dāng)作變量處理 - 刪除對(duì)象的屬性
delete a['name']
a.name //undefinedd (無value)
'name' in a //false (無key)
- in運(yùn)算符
檢查對(duì)象是否包含某個(gè)屬性族淮,如果包含就返回true,否則返回false凭涂。
var obj = { p: 1 };
'p' in obj // true
- 遍歷對(duì)象(for....in...)
for (var key in a) //此時(shí)打印出key的值