數(shù)據(jù)操作
一、對(duì)象
一個(gè)大空間存儲(chǔ)多個(gè)小的內(nèi)存空間解愤,一個(gè)變量中存儲(chǔ)多個(gè)數(shù)據(jù)的數(shù)據(jù)
定義:
var 對(duì)象 = { 屬性: 值, 屬性: 值, ... }
var 對(duì)象 = new Object()
基本操作:
設(shè)置對(duì)象的鍵值對(duì):
對(duì)象.屬性名 = 值
對(duì)象['屬性名'] = 值
如果屬性名原本不存在 - 新增
如果屬性名原本存在 - 修改/替換
訪問對(duì)象的值:
對(duì)象.屬性名
對(duì)象['屬性名']
刪除對(duì)象鍵值對(duì):
delete 對(duì)象.屬性名
delete 對(duì)象['屬性名']
對(duì)象的特性:
- 對(duì)象中的鍵值對(duì)之間是無序的
- 對(duì)象中的屬性是唯一的
對(duì)象的遍歷:
for(var key in 對(duì)象){
key代表對(duì)象中的每個(gè)屬性
對(duì)象[key]
}
注意:如果使用變量代表對(duì)象的鍵氢烘,獲取值的時(shí)候必須使用對(duì)象[鍵]語法
二城侧、數(shù)組
概念:一個(gè)大空間存儲(chǔ)多個(gè)小的內(nèi)存空間蹦误,一個(gè)變量中存儲(chǔ)多個(gè)數(shù)據(jù)的數(shù)據(jù)
跟對(duì)象的區(qū)別:數(shù)組中的小空間是有順序的
定義:
var arr = []
var arr = new Array()
注意:只放入一個(gè)數(shù)字的時(shí)候,[]表示數(shù)組中有一個(gè)元素利诺,new表示有多個(gè)空的小空間富蓄。
基本操作:
設(shè)置數(shù)組中的數(shù)據(jù):
數(shù)組[下標(biāo)] = 值
訪問:
數(shù)組[下標(biāo)]
刪除數(shù)據(jù)(保留小空間):
delete 數(shù)組[下標(biāo)]
長度:
數(shù)組.length // 獲取數(shù)組中元素個(gè)數(shù)
數(shù)組.length = 數(shù)字 // 將數(shù)組保留多少個(gè)小空間
數(shù)組的規(guī)律:
- 數(shù)組的第一個(gè)元素下標(biāo)一定是0
- 數(shù)組的最后一個(gè)元素下標(biāo)一定是length-1
遍歷:
for(var a = 0; a < arr.length; a++) {
a代表每個(gè)元素對(duì)應(yīng)的下標(biāo)
}
for(var a in arr){
a代表每個(gè)元素對(duì)應(yīng)的下標(biāo)
}
區(qū)別:in語法不遍歷空的小空間
三、基本類型和引用類型
基本類型:number/string/boolean/undefined/null
引用類型:object/array/function
區(qū)別:
基本類型 | 引用類型 | |
---|---|---|
存儲(chǔ) | 將值存儲(chǔ)在棧中 | 將值存儲(chǔ)在堆中慢逾,將堆的地址存儲(chǔ)在棧中 |
賦值 | 將值復(fù)制給另一個(gè)變量 | 將地址復(fù)制給另一個(gè)變量 - 兩個(gè)變量共享同一個(gè)數(shù)據(jù)了 |
比較 | 比較值和類型 | 比較的內(nèi)存地址 |
注意賦值操作,因?yàn)槲覀冇泻芏嚯[性賦值過程:
- 實(shí)參賦值給形參
- 用變量接收函數(shù)的返回值
四灭红、排序方式
1侣滩、冒泡排序
將數(shù)組中每相鄰的兩個(gè)元素進(jìn)行大小比較,排列順序
for(var i = 0; i < arr.length - 1; i++){
for(var j = 0; j < arr.length - 1; j++){
if(arr[j] > arr[j+1]){
var tmp = arr[j]
arr[j] = arr[j+1]
arr[j+1] = tmp
}
}
}
2变擒、選擇排序
每一輪都找到最大或最小值君珠,排在最前面,在剩下的數(shù)字中找到最大或最小值排在第二位娇斑,策添。。毫缆。
for(var i = 0; i < arr.length - 1; i++) {
for(var j = i + 1; j < arr.length; j++) {
if(arr[j] > arr[i]){
var tmp = arr[j]
arr[j] = arr[i]
arr[i] = tmp
}
}
}
五唯竹、數(shù)組方法
刪除開頭:shift
刪除結(jié)尾:pop
開頭添加:unshift
結(jié)尾添加:push
給數(shù)組添加、修改苦丁、刪除:splice
查找元素在數(shù)組中第一次出現(xiàn)的下標(biāo):indexOf
查找元素在數(shù)組中最后一次出現(xiàn)的下標(biāo):lastIndexOf
將數(shù)組元素使用連接符連接成一個(gè)字符串:join
遍歷數(shù)組:forEach
過濾:filter
判斷數(shù)組中是否至少有一個(gè)元素是滿足條件的:some
求和:reduce
所有元素處理成新元素組成新數(shù)組:map
翻轉(zhuǎn):reverse
找數(shù)組中第一個(gè)滿足條件的元素的下標(biāo):findIndex
找數(shù)組中第一個(gè)滿足條件的元素:find
截冉恰:slice
排序:sort
合并:concat
判斷數(shù)組中是否所有元素都滿足指定條件:every
六、字符串
字符串可以取下標(biāo) - 字符串[下標(biāo)]
字符串是只讀數(shù)據(jù)旺拉,只能讀取字符产上,不可以修改、刪除字符
字符串可以比較大小蛾狗,規(guī)則:逐字符比較
字符的大小由阿斯克碼決定
09:4857
az:97122
AZ:6590
七晋涣、字符串方法
查找字符或小字符串第一次出現(xiàn)的下標(biāo):indexOf
查找字符或小字符串最后一次出現(xiàn)的下標(biāo):lastIndexOf
分割成數(shù)組:split
獲取指定下標(biāo)對(duì)應(yīng)字符的阿斯克碼:charCodeAt
替換字符串:replace
去除空白:trim/trimLeft/trimRight
轉(zhuǎn)大寫:toUpperCase
轉(zhuǎn)小寫:toLowerCase
根據(jù)阿斯克碼獲取字符:String.fromCharCode
判斷字符串中是否包含某個(gè)字符或小字符串:includes
截取字符串:slice/substr/subtring
判斷字符串是否由某個(gè)字符或小字符串開頭:startsWith
判斷字符串是否由某個(gè)字符或小字符串結(jié)尾:endsWith
重復(fù)某個(gè)字符串:repeat
查找字符串中第一個(gè)滿足指定正則表達(dá)式的小字符串的下標(biāo):search
提取字符串中滿足正則表達(dá)式的小字符串:match
八、數(shù)學(xué)操作
隨機(jī)數(shù):random - 某個(gè)范圍內(nèi)的隨機(jī)整數(shù)
絕對(duì)值:abs
向下取整:floor
向上取整:ceil
平方根:sqrt
圓周率:PI
最大值:max
最小值:min
四舍五入:round
正弦:sin
余弦:cos
求次方:pow
九沉桌、進(jìn)制轉(zhuǎn)換
將其他進(jìn)制轉(zhuǎn)為10進(jìn)制 - parseInt
將10進(jìn)制轉(zhuǎn)成其他進(jìn)制:toString
十谢鹊、時(shí)間日期
創(chuàng)建時(shí)間日期對(duì)象:
new Date() // 獲取當(dāng)前時(shí)間日期對(duì)象
new Date(參數(shù)) // 指定的時(shí)間日期對(duì)象
參數(shù):
'年-月-日 時(shí):分:秒'
年,月,日,時(shí),分,秒
時(shí)間戳
獲取具體的時(shí)間日期:
年:getFullYear
月:getMonth 獲取到的結(jié)果是0~11
日:getDate
時(shí):getHours
分:getMinutes()
秒:getSeconds()
時(shí)間戳:getTime
星期:getDay()
設(shè)置具體的時(shí)間日期:
年:setFullYear
月:setMonth 設(shè)置的數(shù)字是0~11
日:setDate
時(shí):setHours
分:setMinutes()
秒:setSeconds()
時(shí)間戳:setTime