數組 1. 基本常識 數組是引用類型的一種,什麼是引用類型呢? 和原始類型不同,引用類型變數中存放的僅僅是 引用對象的記憶體地址 。 所以,當我們複製引用類型的時候,複製的僅僅是它的地址罷了。 也就是說,任意一個變數發生變化,地址上的對象也隨之變化。 舉個例子: 2. 常用屬性與方法 屬性:Array ...
數組
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,表示數組中沒有該項。
- 未完待續……
字元串
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() => 字元串全部大寫
- 未完待續……