引用類型:是一種數(shù)據(jù)結(jié)構(gòu),用于將數(shù)據(jù)和功能組織在一起。
Object類型
1. 第一種創(chuàng)建方法

2. 第二種創(chuàng)建方法(對象字面量表示法),他是一種簡寫方式

3. 第三種創(chuàng)建方法(可讀性差)

一般來說,訪問對象屬性時(shí)使用的都是點(diǎn)表示法,在JS中還可以使用方括號表示法來訪問對象的屬性。
在使用方括號訪問法時(shí),要將訪問的屬性以字符串的形式放在方括號中。

如果屬性名中包含會(huì)導(dǎo)致語法錯(cuò)誤的字符,或者屬性名使用的事關(guān)鍵字或保留字,也可以使用方括號表示法,如下:

Array類型
數(shù)組的每一項(xiàng)可以保存任何類型的數(shù)據(jù),而且數(shù)組的大小可以動(dòng)態(tài)調(diào)整,可以隨著數(shù)據(jù)的添加自動(dòng)增長。
數(shù)組的創(chuàng)建方式
方式一:

在使用Array構(gòu)造函數(shù)時(shí),可以省略new操作符

方式二:(數(shù)組字面量表示法)
如果索引小于數(shù)組的項(xiàng)數(shù),則返回對應(yīng)項(xiàng)的值。
如果設(shè)置某個(gè)值的索引超過了數(shù)組現(xiàn)有的項(xiàng)數(shù),則數(shù)組會(huì)自動(dòng)增加到最后,(數(shù)組長度+1)

數(shù)組的length屬性:
通過length屬性,可以從數(shù)組末尾移除項(xiàng)

通過length屬性,可以從末尾增加項(xiàng)
增加的項(xiàng),初始值為undefined

利用length屬性也可以方便地在數(shù)據(jù)末尾添加新項(xiàng):

檢測數(shù)組
Array.isArray()方法的目的是最終確定某個(gè)值到底是不是數(shù)組,不管他在哪個(gè)全局執(zhí)行環(huán)境中創(chuàng)建的。

棧方法
他是先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu)。
從數(shù)組末端添加項(xiàng),從末端移除項(xiàng)。
主要有兩個(gè)方法push()和pop方法()
push():可以接受任意數(shù)量的參數(shù),把他們逐個(gè)添加到數(shù)組末尾,并返回?cái)?shù)組修改的長度
pop():從數(shù)組末尾移除最后一項(xiàng),減少數(shù)組長度,返回移除的項(xiàng)


隊(duì)列方法
他的數(shù)據(jù)結(jié)構(gòu)是先進(jìn)先出。
隊(duì)列在列表的末端添加項(xiàng),從列表的前端移除項(xiàng)
shift():他能移除數(shù)組中的第一項(xiàng)并返回該項(xiàng),同時(shí)數(shù)組的長度減一。
與push()搭配,可以實(shí)現(xiàn)隊(duì)列的效果

unshift():他在數(shù)組的前端添加任意個(gè)項(xiàng)并返回新數(shù)組的長度,與pop()搭配,可以實(shí)現(xiàn)反方向的隊(duì)列效果。

重排序方法
reverse():反轉(zhuǎn)數(shù)組

從小到大排序,sort()配合比較函數(shù)方法

操作方法
concat()

slice()
如何接受的參數(shù)時(shí)負(fù)數(shù),則數(shù)組的長度+(-x),-x為當(dāng)前的負(fù)數(shù)。
如果結(jié)束位置小于起始,則返回空數(shù)組

splice()

位置方法
可以設(shè)置起點(diǎn)。

迭代方法
ECMAScript5為數(shù)組定義了5個(gè)迭代方法。每個(gè)方法都接收2個(gè)參數(shù),要在每一項(xiàng)運(yùn)行的方法函數(shù)和(可選的)運(yùn)行該函數(shù)的作用域?qū)ο?。傳入這些方法中的函數(shù)會(huì)接收3個(gè)參數(shù),數(shù)組項(xiàng)的值、該項(xiàng)在數(shù)組中的位置和數(shù)組對象本身。
every()
和&&有異曲同工之妙。

some()
和||有異曲同工之妙

filter()

map()

forEach()

歸并方法
ECMAScript5新增了兩個(gè)歸并數(shù)組的方法:reduce()和reduceRight()。這兩個(gè)方法都會(huì)迭代數(shù)組的所有項(xiàng),然后構(gòu)建一個(gè)最終的返回值。
其中,reduce()方法是從數(shù)組的第一項(xiàng)開始,逐個(gè)遍歷到最后,反之,reduceRight()是從數(shù)組最后一項(xiàng)開始遍歷。
這兩個(gè)方法都接收兩個(gè)參數(shù):一個(gè)在每一項(xiàng)上調(diào)用的函數(shù)和(可選的)作為歸并基礎(chǔ)的初始值。
傳給他們的函數(shù)接收4個(gè)參數(shù):前一個(gè)值,當(dāng)前值,項(xiàng)的索引和數(shù)組對象。這個(gè)函數(shù)返回的任何值都會(huì)作為第一個(gè)參數(shù)自動(dòng)傳給下一項(xiàng)。

Date類型
創(chuàng)建一個(gè)日期對象,直接new即可。

在調(diào)用Date構(gòu)造函數(shù)而不傳遞參數(shù)的情況下,新創(chuàng)建的對象自動(dòng)獲得當(dāng)前日期和時(shí)間。
ECMAScript提供了兩個(gè)方法:Date.parse()和Date.UTC()
Date.parse():接收一個(gè)表示日期的字符串參數(shù),然后嘗試根據(jù)這個(gè)字符串返回相應(yīng)時(shí)期的毫秒數(shù)。
如果傳入方法的字符串不能表示日期,則返回NaN。

Date.UTC():同樣返回毫秒數(shù)

Date.now():返回表示調(diào)用這個(gè)方法時(shí)的日期和毫秒數(shù)。
