JavaScript七種數(shù)據(jù)類型
在 JavaScript 規(guī)范中,共定義了七種數(shù)據(jù)類型绣的,分為 “基本類型” 和 “引用類型” 兩大類高氮,如下所示:
- 基本類型:Number彼哼、String迹淌、Boolean河绽、Undefined、Null唉窃、Symbol(新增)
- 引用類型:Object
Number
- Number類型包含整數(shù)和浮點(diǎn)數(shù)(浮點(diǎn)數(shù)數(shù)值必須包含一個(gè)小數(shù)點(diǎn)耙饰,且小數(shù)點(diǎn)后面至少有一位數(shù)字)
- JavaScript 只有一種數(shù)字類型。數(shù)字可以帶小數(shù)點(diǎn)纹份,也可以不帶:
var x1=34.00; // 使用小數(shù)點(diǎn)來(lái)寫var x2=34;
var x2=34; // 不使用小數(shù)點(diǎn)來(lái)寫
- 極大或極小的數(shù)字可以通過(guò)科學(xué)(指數(shù))計(jì)數(shù)法來(lái)書寫:
var y=123e5; // 12300000var z=123e-5;
var z=123e-5; // 0.00123
字符串String
- 字符串的作用:用于表示文本數(shù)據(jù)苟跪。
- 字符串的元素索引:字符中每個(gè)元素的位置用數(shù)字表示,第一位元素的序號(hào)是0蔓涧,后面依次增加件已。字符串的長(zhǎng)度就是它元素的個(gè)數(shù)。
var a = "abc"
console.log(a[0]) // a
console.log(a.length) // 3
- 字符串的表現(xiàn)形式:使用單引號(hào)''或雙引號(hào)""括起來(lái)元暴,表示該值是一個(gè)字符串拨齐。
var carname="Bill Gates";
var carname='Bill Gates';
布爾Boolean
- 布爾(邏輯)只能有兩個(gè)值:true 或 false。布爾常用在條件測(cè)試中昨寞。
var a = true;
var b = false;
Undefined和Null
- 當(dāng)聲明的變量還未被初始化時(shí),變量的默認(rèn)值為undefined厦滤。
- null用來(lái)表示尚未存在的對(duì)象援岩。
- undefined轉(zhuǎn)為數(shù)值時(shí)為NaN。
- null轉(zhuǎn)為數(shù)值時(shí)為0掏导;
- undefined表示”缺少值”享怀,就是此處應(yīng)該有一個(gè)值,但是還沒(méi)有定義趟咆。典型用法是:
- 變量被聲明了添瓷,但沒(méi)有賦值時(shí),就等于undefined值纱。
- 調(diào)用函數(shù)時(shí)鳞贷,應(yīng)該提供的參數(shù)沒(méi)有提供,該參數(shù)等于undefined虐唠。
- 函數(shù)沒(méi)有返回值時(shí)搀愧,默認(rèn)返回undefined。
- 對(duì)象沒(méi)有賦值的屬性,該屬性的值為undefined咱筛。
- null表示”沒(méi)有對(duì)象”搓幌,即該處不應(yīng)該有值。典型用法是:
- 作為函數(shù)的參數(shù)迅箩,表示該函數(shù)的參數(shù)不是對(duì)象溉愁。
- 作為對(duì)象原型鏈的終點(diǎn)。
對(duì)象Object
- javascript 中的對(duì)象(物體)饲趋,和其它編程語(yǔ)言中的對(duì)象一樣拐揭,可以比照現(xiàn)實(shí)生活中的對(duì)象(物體)來(lái)理解它。 javascript 中對(duì)象(物體)的概念可以比照著現(xiàn)實(shí)生活中實(shí)實(shí)在在的物體來(lái)理解篙贸。
- 對(duì)象可以通過(guò)new操作符后跟要?jiǎng)?chuàng)建的對(duì)象類型的名稱來(lái)創(chuàng)建投队。
var o = new Object();
- 我們也可以通過(guò)下面的方式直接創(chuàng)建一個(gè)對(duì)象:
var person = { name: 'oocl', age: 20, gender: 'male' };
- 給JS對(duì)象添加屬性和方法
方法一:在定義對(duì)象時(shí),直接添加屬性和方法
function Person(name,age) {
this.name = name;
this.age = age;
this.say = function() {
alert(name + ':::' + age);
}
}
var person = new Person('oocl', 23);
方法二:通過(guò)"對(duì)象.屬性名"的方式添加
function Person() {}
var person = new Person();
person.name = 'oocl';
person.say = function() {alert(this.name)};
person.say();
方法三:通過(guò)prototype(原型)屬性添加
function Person() {}
var person = new Person();
Person.prototype.name = 'oocl';
Person.prototype.say = function() {alert(this.name)};
person.say();
符號(hào)Symbol
- Symbol 是 ES6 新增的一種原始數(shù)據(jù)類型爵川,它的字面意思是:符號(hào)敷鸦、標(biāo)記。代表獨(dú)一無(wú)二的值 寝贡。
數(shù)組Array
- 數(shù)組是一個(gè)特殊的對(duì)象
- 數(shù)組下標(biāo)是基于零的扒披,所以第一個(gè)項(xiàng)目是 [0],第二個(gè)是 [1]圃泡,以此類推碟案。
typeof操作符
- 由于JavaScript是松散類型的,因此需要有一種手段來(lái)檢測(cè)給定變量的數(shù)據(jù)類型——
typeof
就是負(fù)責(zé)提供這方面信息的操作符颇蜡。對(duì)一個(gè)值使用typeof
操作符可能返回下列某個(gè)字符串:
'undefined' —— 未定義
'boolean' —— 布爾值
'string' —— 字符串
'number' —— 數(shù)字值
'object' —— 對(duì)象或null
function —— 函數(shù)
- 判斷一個(gè)變量是對(duì)象還是數(shù)組(不可使用typeof,typeof的輸出結(jié)果都是object)
Object.prototype.toString.call()
寫一個(gè)方法實(shí)現(xiàn)
function isObjArr(value){
if(Object.prototype.toString.call(value) === "[object Array]"){
console.log('value是數(shù)組')
}else if((Object.prototype.toString.call(value) === "[object Object]"){
console.log('value是對(duì)象')
}else{
console.log('value不是數(shù)組也不是對(duì)象')
}
}