陣列
1. 基本常識
陣列是參考型別的一種,什么是參考型別呢?
和原始型別不同,參考型別變數中存放的僅僅是參考物件的記憶體地址,
所以,當我們復制參考型別的時候,復制的僅僅是它的地址罷了,
也就是說,任意一個變數發生變化,地址上的物件也隨之變化,
舉個例子:
var a = [1,2,3];
var b = a;
b[0] = 'first';
console.log(b[0]); // 'first'
console.log(a[0]); // 'first'
2. 常用屬性與方法
屬性:Array.length 獲取陣列長度(也就是陣列元素的個數)
方法:
-
檢查陣列
value instanceof Array => true / false
Array.siArray(value) => true / false -
轉換方法
toString() / join(sep) => 變成字串,自定義分隔符(默認逗號分隔)
valueOf() => 回傳指定物件本身 -
堆疊方法
放砝碼,先進后出
push() => 在陣列末尾添加元素
pop() => 在陣列末尾洗掉元素 -
佇列方法
裝子彈,先進先出
unshift() => 在陣列開頭添加元素
shift() => 在陣列開頭洗掉元素 -
重排序方法
reverse() => 反轉
sort() => 升序(值逐漸升高)
注意:sort()比較的是字串!sort()中可以傳入一個比較函式, -
操作方法
基于原陣列,在新的副本上操作(不影響原陣列),只是回傳新陣列,
concat() => 陣列元素拼接 在陣列末尾添加元素,如果是陣列那就將陣列里的元素添加到末尾
slice() => 切片 顧頭不顧尾
splice(startIndex, deleteNum, newItem) => 有三個引數,分別是開始位置、移除項數、被插入項,可以進行三種操作:洗掉、插入、替換,- Array.splice(1, 2) => 從下標1開始,洗掉2個元素(下標1和下標2被刪),
- Array.splice(1, 0, 'newItem'); => 在下標1處插入元素'newItem',
- Array.splice(1, 0, 'newItem01', 'newItem02'); => 在下標1處插入多個元素,
- Array.splice(1, 2, 'newItem01', 'newItem02'); => 在下標1處先洗掉2個元素,再插入新的元素(同上,1個或多個),
-
位置方法
indexOf(value, [seekIndex]) => value的下標 第一個引數表示要查找的元素,第二個引數表示查找的起始位置,
lastIndexOf(value) => value最后一次出現的下標
注意:如果回傳-1,表示陣列中沒有該項, -
迭代方法 (回呼函式中第一個引數是陣列項,第二個引數是下標,第三個引數是當前陣列,)
forEach(function(item,index,arr){...}) => 遍歷陣列 相當于原生的for回圈
every(function(item,index,arr){...}) => 陣列里面所有的元素都要符合條件,才回傳true,
some(function(item,index,arr){...}) => 陣列中任何一個元素符合條件,就回傳true,
map(function(item,index,arr){...}) => 做資料互動映射,可以重新整理資料結構,對每一項給定函式操作,回傳新的陣列,(常用!)
filter(function(item,index,arr){...}) => 過濾資料,把回傳true的留下來,對每一項給定函式操作,回傳符合條件的陣列, -
歸并方法(回呼函式中第一個引數是前一個累積值,第二個是當前值,第三個是下標,第四個是當前陣列,)
reduce(function(prev, cur, index, arr){...}) => 對給定陣列按照從左到右的順序,執行給定的操作,并回傳結果,(求陣列的和,求階乘)
reduceRight(function(prev, cur, index, arr){...}) => 對給定陣列按照從右往左的順序,執行給定的操作,并回傳結果,
字串
1. 基本常識
字串作為基本資料型別,它是不可以改變原始值的,屬于不可變型別,(陣列屬于可變型別)
那么,它為什么可以有屬性和方法呢?
因為它是包裝類,首先會通過new String()創建一個字串物件,這樣就擁有了物件的屬性和方法,
當屬性和方法呼叫完畢后,這個字串物件就會銷毀,
2. 常用屬性與方法
屬性:String.length 獲取字串長度(字符個數)
方法:
-
字符方法
charAt(index) => 回傳對應下標的字符
charCodeAt(index) => 回傳對應下標的字符編號 -
轉換方法
String.split(sep) => 變成陣列,自定義分隔符 -
操作方法
和陣列的操作方法concat()、slice()、splice()類似,
String.concat() => 字串拼接(和加號的作用相同,先把符號左右轉換成字串然后相加)
String.slice() => 切片,顧頭不顧尾
String.substring() => 同slice() 注意:傳入負數直接轉換為0
String.substr(stratIndex, length) => 也是切片,不同的是第一個引數是開始下標位置,第二個引數是操作的字符長度, -
位置方法
indexOf() => 回傳查找字符的下標
lastIndexOf() => 最后出現的下標
注意:沒有找到回傳-1,第二個引數表示開始查找的下標
trim() => 洗掉前置和后綴的所有空格
-
大小寫轉換
toLowerCase() => 字串全部小寫
toUpperCase() => 字串全部大寫 -
ES6字串新方法
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/131637.html
標籤:JavaScript
上一篇:資料流中的中位數
下一篇:js 圖片輪播簡單版
