1. 數(shù)據(jù)類型
數(shù)據(jù)類型主要分為兩大類
@基本類型:5種
@引用類型:3種
1.1 Number
JavaScript不區(qū)分整數(shù)和浮點(diǎn)數(shù),統(tǒng)一用Number表示妨马,以下都是合法的Number類型:
123; // 整數(shù)123
0.456; // 浮點(diǎn)數(shù)0.456
1.2345e3; // 科學(xué)計(jì)數(shù)法表示1.2345x1000挺举,等同于1234.5
-99; // 負(fù)數(shù)
NaN; // NaN表示Not a Number,當(dāng)無法計(jì)算結(jié)果時(shí)用NaN表示
Infinity; // Infinity表示無限大烘跺,當(dāng)數(shù)值超過了JavaScript的Number所能表示的最大值時(shí)湘纵,就表示為Infinity
唯一能判斷NaN的方法是通過isNaN()函數(shù):
isNaN(NaN); // true
1.2 String
字符串是以單引號(hào)'或雙引號(hào)"括起來的任意文本,
'abc' //字符串a(chǎn)bc
"xyz" //字符串xyz
'123' //字符串123
1.3 boolean
一個(gè)布爾值只有true液荸、false兩種值
true
false
1.4 undefined
undefined表示值未定義
1.5 null
null表示一個(gè)“空”的值瞻佛,它和0以及空字符串''不同脱篙,0是一個(gè)數(shù)值娇钱,''表示長(zhǎng)度為0的字符串,而null表示“空”绊困。
1.6 數(shù)組
用[]
聲明一個(gè)數(shù)組
var a = []
1.7. 對(duì)象
對(duì)象是一組由鍵-值組成的無序集合
var person = {
name: 'Bob',
age: 20,
tags: ['js', 'web', 'mobile'],
city: 'Beijing',
hasCar: true,
zipcode: null
};
2. 判斷
typeof
instanceof
===/==
- typeof :
可以判斷:undifined文搂、number、string秤朗、boolean煤蹭、function,
不可判斷:null與object, Array與object
返回?cái)?shù)據(jù)類型的字符串小寫表示 - instanceof: 專門用來判斷對(duì)象的具體類型
- ===: 可判斷undifined取视、null
== 它會(huì)自動(dòng)轉(zhuǎn)換數(shù)據(jù)類型再比較硝皂,很多時(shí)候,會(huì)得到非常詭異的結(jié)果
=== 它不會(huì)自動(dòng)轉(zhuǎn)換數(shù)據(jù)類型作谭,如果數(shù)據(jù)類型不一致稽物,返回false,如果一致折欠,再比較贝或。
var a
console.log(typeof a) // 'undifined'
var a
console.log(typeof a==='undefined') //true
a = 3
console.log(typeof a==='number') //true
a = 'sdf'
console.log(typeof a==='string') //true
a = true
console.log(typeof a==='boolean') //true
var b1 ={
b2:[1, 'abc', console.log],
b3:function () {
console.log('b3')
}
}
console.log(b1 instanceof Object, b1 instanceof Array); //true false
console.log(b1.b2 instanceof Array, b1.b2 instanceof Array); //true true
console.log(b1.b3 instanceof Function, b1.b3 instanceof Function); //true true