日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

JS數(shù)組和字符串匯總

 頭號(hào)碼甲 2021-11-05

數(shù)組

1. 基本常識(shí)

數(shù)組是引用類型的一種,什么是引用類型呢?

和原始類型不同,引用類型變量中存放的僅僅是引用對(duì)象的內(nèi)存地址。

所以,當(dāng)我們復(fù)制引用類型的時(shí)候,復(fù)制的僅僅是它的地址罷了。

也就是說,任意一個(gè)變量發(fā)生變化,地址上的對(duì)象也隨之變化。

舉個(gè)例子:

var a = [1,2,3];
var b = a;
b[0] = 'first';
console.log(b[0]); // 'first'
console.log(a[0]); // 'first'

2. 常用屬性與方法

屬性:Array.length 獲取數(shù)組長度(也就是數(shù)組元素的個(gè)數(shù))

方法:

  • 檢查數(shù)組
    value instanceof Array => true / false
    Array.siArray(value) => true / false

  • 轉(zhuǎn)換方法
    toString() / join(sep) => 變成字符串,自定義分隔符(默認(rèn)逗號(hào)分隔)
    valueOf() => 返回指定對(duì)象本身

  • 棧方法
    放砝碼,先進(jìn)后出
    push() => 在數(shù)組末尾添加元素
    pop() => 在數(shù)組末尾刪除元素

  • 隊(duì)列方法
    裝子彈,先進(jìn)先出
    unshift() => 在數(shù)組開頭添加元素
    shift() => 在數(shù)組開頭刪除元素

  • 重排序方法
    reverse() => 反轉(zhuǎn)
    sort() => 升序(值逐漸升高)
    注意:sort()比較的是字符串!sort()中可以傳入一個(gè)比較函數(shù)。

  • 操作方法
    基于原數(shù)組,在新的副本上操作(不影響原數(shù)組),只是返回新數(shù)組。
    concat() => 數(shù)組元素拼接 在數(shù)組末尾添加元素,如果是數(shù)組那就將數(shù)組里的元素添加到末尾
    slice() => 切片 顧頭不顧尾
    splice(startIndex, deleteNum, newItem) => 有三個(gè)參數(shù),分別是開始位置、移除項(xiàng)數(shù)、被插入項(xiàng)。可以進(jìn)行三種操作:刪除、插入、替換。

    • Array.splice(1, 2) => 從下標(biāo)1開始,刪除2個(gè)元素(下標(biāo)1和下標(biāo)2被刪)。
    • Array.splice(1, 0, 'newItem'); => 在下標(biāo)1處插入元素'newItem'。
    • Array.splice(1, 0, 'newItem01', 'newItem02'); => 在下標(biāo)1處插入多個(gè)元素。
    • Array.splice(1, 2, 'newItem01', 'newItem02'); => 在下標(biāo)1處先刪除2個(gè)元素,再插入新的元素(同上,1個(gè)或多個(gè))。
  • 位置方法
    indexOf(value, [seekIndex]) => value的下標(biāo) 第一個(gè)參數(shù)表示要查找的元素,第二個(gè)參數(shù)表示查找的起始位置。
    lastIndexOf(value) => value最后一次出現(xiàn)的下標(biāo)
    注意:如果返回-1,表示數(shù)組中沒有該項(xiàng)。

  • 迭代方法 (回調(diào)函數(shù)中第一個(gè)參數(shù)是數(shù)組項(xiàng),第二個(gè)參數(shù)是下標(biāo),第三個(gè)參數(shù)是當(dāng)前數(shù)組。)
    forEach(function(item,index,arr){...}) => 遍歷數(shù)組 相當(dāng)于原生的for循環(huán)
    every(function(item,index,arr){...}) => 數(shù)組里面所有的元素都要符合條件,才返回true。
    some(function(item,index,arr){...}) => 數(shù)組中任何一個(gè)元素符合條件,就返回true。
    map(function(item,index,arr){...}) => 做數(shù)據(jù)交互映射,可以重新整理數(shù)據(jù)結(jié)構(gòu)。對(duì)每一項(xiàng)給定函數(shù)操作,返回新的數(shù)組。(常用!)
    filter(function(item,index,arr){...}) => 過濾數(shù)據(jù),把返回true的留下來。對(duì)每一項(xiàng)給定函數(shù)操作,返回符合條件的數(shù)組。

  • 歸并方法(回調(diào)函數(shù)中第一個(gè)參數(shù)是前一個(gè)累積值,第二個(gè)是當(dāng)前值,第三個(gè)是下標(biāo),第四個(gè)是當(dāng)前數(shù)組。)
    reduce(function(prev, cur, index, arr){...}) => 對(duì)給定數(shù)組按照從左到右的順序,執(zhí)行給定的操作,并返回結(jié)果。(求數(shù)組的和,求階乘)
    reduceRight(function(prev, cur, index, arr){...}) => 對(duì)給定數(shù)組按照從右往左的順序,執(zhí)行給定的操作,并返回結(jié)果。

字符串

1. 基本常識(shí)

字符串作為基本數(shù)據(jù)類型,它是不可以改變?cè)贾档?,屬于不可變類型。(?shù)組屬于可變類型)

那么,它為什么可以有屬性和方法呢?

因?yàn)樗前b類,首先會(huì)通過new String()創(chuàng)建一個(gè)字符串對(duì)象,這樣就擁有了對(duì)象的屬性和方法。

當(dāng)屬性和方法調(diào)用完畢后,這個(gè)字符串對(duì)象就會(huì)銷毀。

2. 常用屬性與方法

屬性:String.length 獲取字符串長度(字符個(gè)數(shù))

方法:

  • 字符方法
    charAt(index) => 返回對(duì)應(yīng)下標(biāo)的字符
    charCodeAt(index) => 返回對(duì)應(yīng)下標(biāo)的字符編號(hào)

  • 轉(zhuǎn)換方法
    String.split(sep) => 變成數(shù)組,自定義分隔符

  • 操作方法
    和數(shù)組的操作方法concat()、slice()、splice()類似。
    String.concat() => 字符串拼接(和加號(hào)的作用相同,先把符號(hào)左右轉(zhuǎn)換成字符串然后相加)
    String.slice() => 切片,顧頭不顧尾
    String.substring() => 同slice() 注意:傳入負(fù)數(shù)直接轉(zhuǎn)換為0
    String.substr(stratIndex, length) => 也是切片,不同的是第一個(gè)參數(shù)是開始下標(biāo)位置,第二個(gè)參數(shù)是操作的字符長度。

  • 位置方法
    indexOf() => 返回查找字符的下標(biāo)
    lastIndexOf() => 最后出現(xiàn)的下標(biāo)
    注意:沒有找到返回-1,第二個(gè)參數(shù)表示開始查找的下標(biāo)

trim() => 刪除前置和后綴的所有空格

  • 大小寫轉(zhuǎn)換
    toLowerCase() => 字符串全部小寫
    toUpperCase() => 字符串全部大寫

  • ES6字符串新方法

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多