數(shù)據(jù)操作
一、對象
一個大空間存儲多個小的內(nèi)存空間,一個變量中存儲多個數(shù)據(jù)的數(shù)據(jù)
定義:
var 對象 = { 屬性: 值, 屬性: 值, ... }
var 對象 = new Object()
基本操作:
設(shè)置對象的鍵值對:
對象.屬性名 = 值
對象['屬性名'] = 值
如果屬性名原本不存在 - 新增
如果屬性名原本存在 - 修改/替換
訪問對象的值:
對象.屬性名
對象['屬性名']
刪除對象鍵值對:
delete 對象.屬性名
delete 對象['屬性名']
對象的特性:
- 對象中的鍵值對之間是無序的
- 對象中的屬性是唯一的
對象的遍歷:
for(var key in 對象){
key代表對象中的每個屬性
對象[key]
}
注意:如果使用變量代表對象的鍵,獲取值的時候必須使用對象[鍵]語法
二、數(shù)組
概念:一個大空間存儲多個小的內(nèi)存空間,一個變量中存儲多個數(shù)據(jù)的數(shù)據(jù)
跟對象的區(qū)別:數(shù)組中的小空間是有順序的
定義:
var arr = []
var arr = new Array()
注意:只放入一個數(shù)字的時候,[]表示數(shù)組中有一個元素,new表示有多個空的小空間。
基本操作:
設(shè)置數(shù)組中的數(shù)據(jù):
數(shù)組[下標(biāo)] = 值
訪問:
數(shù)組[下標(biāo)]
刪除數(shù)據(jù)(保留小空間):
delete 數(shù)組[下標(biāo)]
長度:
數(shù)組.length // 獲取數(shù)組中元素個數(shù)
數(shù)組.length = 數(shù)字 // 將數(shù)組保留多少個小空間
數(shù)組的規(guī)律:
- 數(shù)組的第一個元素下標(biāo)一定是0
- 數(shù)組的最后一個元素下標(biāo)一定是length-1
遍歷:
for(var a = 0; a < arr.length; a++) {
a代表每個元素對應(yīng)的下標(biāo)
}
for(var a in arr){
a代表每個元素對應(yīng)的下標(biāo)
}
區(qū)別:in語法不遍歷空的小空間
三、基本類型和引用類型
基本類型:number/string/boolean/undefined/null
引用類型:object/array/function
區(qū)別:
| 基本類型 | 引用類型 | |
|---|---|---|
| 存儲 | 將值存儲在棧中 | 將值存儲在堆中,將堆的地址存儲在棧中 |
| 賦值 | 將值復(fù)制給另一個變量 | 將地址復(fù)制給另一個變量 - 兩個變量共享同一個數(shù)據(jù)了 |
| 比較 | 比較值和類型 | 比較的內(nèi)存地址 |
注意賦值操作,因為我們有很多隱性賦值過程:
- 實參賦值給形參
- 用變量接收函數(shù)的返回值
四、排序方式
1、冒泡排序
將數(shù)組中每相鄰的兩個元素進(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ù)組元素使用連接符連接成一個字符串:join
遍歷數(shù)組:forEach
過濾:filter
判斷數(shù)組中是否至少有一個元素是滿足條件的:some
求和:reduce
所有元素處理成新元素組成新數(shù)組:map
翻轉(zhuǎn):reverse
找數(shù)組中第一個滿足條件的元素的下標(biāo):findIndex
找數(shù)組中第一個滿足條件的元素: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)對應(yīng)字符的阿斯克碼:charCodeAt
替換字符串:replace
去除空白:trim/trimLeft/trimRight
轉(zhuǎn)大寫:toUpperCase
轉(zhuǎn)小寫:toLowerCase
根據(jù)阿斯克碼獲取字符:String.fromCharCode
判斷字符串中是否包含某個字符或小字符串:includes
截取字符串:slice/substr/subtring
判斷字符串是否由某個字符或小字符串開頭:startsWith
判斷字符串是否由某個字符或小字符串結(jié)尾:endsWith
重復(fù)某個字符串:repeat
查找字符串中第一個滿足指定正則表達(dá)式的小字符串的下標(biāo):search
提取字符串中滿足正則表達(dá)式的小字符串:match
八、數(shù)學(xué)操作
隨機(jī)數(shù):random - 某個范圍內(nèi)的隨機(jī)整數(shù)
絕對值: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
十、時間日期
創(chuàng)建時間日期對象:
new Date() // 獲取當(dāng)前時間日期對象
new Date(參數(shù)) // 指定的時間日期對象
參數(shù):
'年-月-日 時:分:秒'
年,月,日,時,分,秒
時間戳
獲取具體的時間日期:
年:getFullYear
月:getMonth 獲取到的結(jié)果是0~11
日:getDate
時:getHours
分:getMinutes()
秒:getSeconds()
時間戳:getTime
星期:getDay()
設(shè)置具體的時間日期:
年:setFullYear
月:setMonth 設(shè)置的數(shù)字是0~11
日:setDate
時:setHours
分:setMinutes()
秒:setSeconds()
時間戳:setTime