引用類型:是一種數(shù)據(jù)結(jié)構(gòu)院塞,用于將數(shù)據(jù)和功能組織在一起拦止。
Object類型
1. 第一種創(chuàng)建方法
2. 第二種創(chuàng)建方法(對(duì)象字面量表示法)汹族,他是一種簡寫方式
3. 第三種創(chuàng)建方法(可讀性差)
一般來說,訪問對(duì)象屬性時(shí)使用的都是點(diǎn)表示法榴徐,在JS中還可以使用方括號(hào)表示法來訪問對(duì)象的屬性。
在使用方括號(hào)訪問法時(shí)耗帕,要將訪問的屬性以字符串的形式放在方括號(hào)中仿便。
如果屬性名中包含會(huì)導(dǎo)致語法錯(cuò)誤的字符嗽仪,或者屬性名使用的事關(guān)鍵字或保留字钦幔,也可以使用方括號(hào)表示法鲤氢,如下:
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ù),則返回對(duì)應(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ù)組對(duì)象本身。
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ù)組對(duì)象蹋订。這個(gè)函數(shù)返回的任何值都會(huì)作為第一個(gè)參數(shù)自動(dòng)傳給下一項(xiàng)玫锋。
Date類型
創(chuàng)建一個(gè)日期對(duì)象,直接new即可甫贯。
在調(diào)用Date構(gòu)造函數(shù)而不傳遞參數(shù)的情況下疾党,新創(chuàng)建的對(duì)象自動(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ù)搅吁。