JavaScript具備七種數(shù)據(jù)類型
- number(數(shù)值):整數(shù)和小數(shù)
- string(字符串):文本
- boolean(布爾):true和false
- null:表示空值
可轉(zhuǎn)化為數(shù)值,值為0- undefined:表示未定義,不存在
可轉(zhuǎn)化為數(shù)值NaN(Not a Number)- object(對象):各種鍵值對組成的集合,除object外均為基礎(chǔ)類型
- symbol:ES6新增的第七種數(shù)據(jù)類型
primitivetype(原始類型):number、string、boolean
JavaScript有三種方法確定一個(gè)值是何種類型:
1)typeof運(yùn)算符:
typeof運(yùn)算符可返回值得數(shù)據(jù)類型
數(shù)值、字符串、布爾值、null、undefined、symbol、對象分別返回:'number'、'string'、
'boolean'、'object'、'undefined'、'symbol'、'object'
例如:typeof 3 //返回"number"
但有幾個(gè)比較特殊,函數(shù)返回"function",null返回"object",[]返回"object"
2)instanceof運(yùn)算符:可用來區(qū)分?jǐn)?shù)組與對象
3)object.prototype.toString方法
1.number(數(shù)值)
JavaScript內(nèi)部所有數(shù)字均以64位浮點(diǎn)數(shù)形式儲存(由于浮點(diǎn)數(shù)不是精確的值,所以涉及小數(shù)的比較與運(yùn)算時(shí)需要小心)
- 整數(shù)與小數(shù):1和1.1
- 科學(xué)計(jì)數(shù)法:1.25E2
- 二進(jìn)制: xb11
- 八進(jìn)制:011(后來ES5添加了0o11語法)
- 十六進(jìn)制:0x11
parseInt():將字符串轉(zhuǎn)為整數(shù)
如果遇到不能轉(zhuǎn)換的便不再進(jìn)行下去,返回已轉(zhuǎn)好的部分
如果字符串第一個(gè)字符不能轉(zhuǎn)換為數(shù)字,返回NaN
如果其中有第二個(gè)參數(shù),例如10,即十進(jìn)制轉(zhuǎn)十進(jìn)制
parseInt('1000', 10) //十進(jìn)制轉(zhuǎn)十進(jìn)制,結(jié)果為1000
parseInt('1000', 2) //二進(jìn)制轉(zhuǎn)十進(jìn)制,結(jié)果為8
parseInt('1000', 8) //八進(jìn)制轉(zhuǎn)進(jìn)制,結(jié)果為512
parseInt('1000', 16) //十進(jìn)制轉(zhuǎn)十進(jìn)制,結(jié)果為4096
parseFloat():將字符串轉(zhuǎn)為浮點(diǎn)數(shù),會將空字符串轉(zhuǎn)為NaN
isNaN():判斷值是否為NaN
isFinite():返回布爾值,表示某值是否為正常數(shù)
2.string(字符串)
- 空字符串:
''(空字符串的length為0) - 多行字符串:
1.在每一行末尾使用使用反斜杠\(反斜杠后不能有任何空格或字符)
2.將長字符串分為多塊字符串:'123' +'234' + '345'
3.ES6中增加使用反引號`123`形式可寫多行字符串(換行時(shí)縮進(jìn)與回車都會包含在字符串中)
轉(zhuǎn)義:
\0 :null
\b :后退鍵
\f :換頁符
\n :換行符
\r :回車鍵
\t :制表符
\v :垂直制表符
\' :單引號
\" :雙引號
\\ :反斜杠
3.boolean(布爾)
boolean取值時(shí)只有兩個(gè)值:true和false
a && b :在 a 和 b 都為 true 時(shí),取值為 true;否則為 false(&&:與)
a || b :在 a 和 b 都為 false 時(shí),取值為 false;否則為 true(||:或)
4.null和undefined
null和undefined均表示什么也沒有(沒有值)
- (語法規(guī)范)如果一個(gè)變量沒有被賦值,那么這個(gè)變量的值就是 undefiend
- (慣例)如果想要表示一個(gè)還沒賦值的對象,就用 null。如果想要表示一個(gè)還沒賦值的非對象(字符串/數(shù)字/布爾/symbol),就用 undefined
5.object(對象)
1.object 是復(fù)雜類型,是上面幾種基本類型(無序地)組合(以鍵值對的形式key-value)在一起
2.object 里面可以有 object
3.object 的 key 一律是字符串,不存在其他類型的 key
4.object[''] 是合法的,空字符串也可以當(dāng)做object的key
5.object['key'] 可以寫作 object.key
6.object.key 與 object[key] 不同
7.創(chuàng)建對象有三種方法:
var o1 = {};
var o2 = new object();
var o3 = Object.create(Object.propotype);
8.object.keys()方法可以查看對象本身的所有屬性
9.delete命令用于刪除對象屬性(只能刪除對象本身屬性,無法刪除繼承的屬性):delete object['key']
10.in運(yùn)算符用于檢查對象是否包含某屬性(檢查鍵名):'key' in object
但是in運(yùn)算符無法識別屬性是對象自身的還是繼承的