数组的有关属性和方法


## 数组的方法:
#### 数组的创建:
+ 同过数组字面量的方式创建:`var arr = [a, b... ]`
+ 通过构造函数:`var arr = new Array( )`
+ 此外也可以通过构函数传递数组中应该包含的项:`var arr = new Array(a,b,...)`
#### 获取数组的里面的值:
+ 通过索引来获取:array[index];
#### 数组的长度:length
+ 注意数组的长度不是只读的。也就是说对数组中的项进行操作时,length会跟着改变。
#### 检测数组:
* 确定某个对象是不是数组:`obj isINstanceOf Array`。返回值是boolear值
* Array.isArray():这个方法目的是最终确定某个值到底是不是数组,而不管它是那个在哪个全局执行环境中创建的。

#### 转换方法:
* 所有对象都具有 `toLocaleString()` ,`toString()`和 `valueOf()`方法。
+ `toString()`:调用数组的`toString()`方法会返回数组中每个值的字符串形式拼接而成的一个以逗号分割开的字符串。
+ `valueOf()`:调用该方法返回的还是数组
+ `toLocaleString()`:方法经常也返回与`toString()`和`valueOf()`方法相同的值。但也不总是如此。当调用数组的`toLocaleString()`方法时,它也创建一个数组值的以逗号分割的字符串。而与前俩个方法唯一不同之处在于,这一次为了取得每一项的值,调用的是每一项的`toLocaleString()`方法。
+ `join()`: 可以使用不同的分隔符来构建这个字符串。直接收一个参数,即用作分隔符的字符串,然后返回包含所有数组项的字符串。不传值的话,默认逗号。

#### 栈方法:
* `push()`方法可以接受任意数量的参数,把他们逐个添加到数组的末尾,并返回修改后数组的长度。
* `pop()`方法则从数组末尾移除最后一项。减少数组的`length`值,返回移除的项。

#### 队列方法:
* ` shift()` 能够移除数组中的第一项并返回该项,同时数组长度减一。
* `unshift()` 能在数组前端添加任意个项并返回新数组的长度
* 注意:删除时,返回的是删除的哪一项。添加时,返回的是增加后的数组的长度。

#### 重排序方法:
* `reverse()`会反转数组项的顺序。
*` sort()` 接受一个函数,按一定的额顺序排列。
* `function compare(value1, value2) {return value2-value1}`
#### 操作方法:
* concat()
* 没有传值时,它只是复制当前数组并返回
* 传递的是一或多个数组,则该方法会将这些数组中的每一项都添加到结果数组当中
* 传递的值不是数组,这些值就会被简单地添加到结果数组的末尾。
* 返回的合并后的数组
* `slice(start,end)`
* 一个参数,返回从该参数指定位置开始到当前数组末尾的所有项。
* 二个参数,该方法返回起始和结束位置之间的项,但不包括结束位置的项。slice()方法不会影响原始数组。
* `splice()`的主要用途是向数组的中部插入项。
* 删除:可以删除任意数量的项,只需指定2个参数。要删除的第一项的位置和要删除的项数。
* 插入:可以向指定位置插入任意数量的项,只需提供三个参数。起始位置,0(要删除的额项数),和要插入的项。如果要插入多项,可以再传入第四,第五。。。。
* 替换:可以向指定位置 插入任意数量的项,且同时删除任意数量的项,只需指定三个参数。起始位置,要删除的项数,和要插入的任意数量的项。插入的项数不必与删除的项数相等。
#### 位置方法:
* `indexof()`: 接受俩个参数, 开始的位置,要查找到项。(从头开始)
* `lastIndexOf()`:接受俩个参数。 起始的位置,和要查找的项。(从后)
* 这俩个方法都返回要查找的项在数组中的位置。或者再没找到的情况下返回-1.在比较第一个参数与数组中的每一项时,必须使用全等操作符;也就是说,要求查找的项必须严格相等。
#### 迭代方法:
+ 5个迭代方法,每个方法接受俩个参数,要在每一项上运行的函数和(可选的)运行该函数的作用域对象----影星this的值。传入这些方法中的函数接收三个参数:数组项的值,该项在数组中的位置和数组对象本身。
*` every()`:对数组中的每一项运行给定的函数,如果该函数的每一项都返回true,则返回true。
* `filter()`:对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组。
*` forEach()`:对数组中的每一项运行给定函数,这个方法没有返回值。
* arr.forEach(function (value,index) {})
* 参数是一个回调函数,回调函数有俩个参数:
* 第一个参数表示:数组的当前值
* 第二个参数表示:当前的索引号
* 注意;函数里面的this指向window
* `map()`:对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
* 不仅能遍历数组而且能返回一个新的数组
* arr.map(function (value,index) {})
* 参数是一个回调函数,回调函数有俩个参数:
* 第一个参数表示:数组的当前值
* 第二个参数表示:当前的索引号
* 注意;函数里面的this指向window
* `some()`:对数组中的每一项运行给定函数,如果该函数对数组中的某一项返回true,则返回true。
## 字符串的方法:
String类型是字符串的包装类型,
#### 属性:
+ length 返回当前字符串中总共多少个字符
#### 方法:
##### 字符方法`charAt()`: 方法以单字符字符串的形式返回给定位置的那个字符。
##### 字符串也可以像数组那样通过索引来取值 ` str[index]`
##### 字符串操作方法:
* `concat()`:用于将一或多个字符串拼接起来,可以接收任意多个参数。但实际操作我习惯于用‘+’来操作。例如:`var stringValue = “hello”; var result = stringValue . concat (“world”,“!”);`
* `slice()`,`substr()`,`substring()`这三个方法都会返回被操作字符串的一个子字符串,而且也都接受一或俩个参数。不会修改字符串本身的值,他们只是返回一个基本类型的字符串值。
* `slice()`: 从start位置开始,截取到end位置,end取不到。该方法会将传入的负值与字符串的长度相加
* `substring()`:从start位置开始,截取到end位置,end取不到。该方法把所有的负值参数都转换为0。
* `substr()`:从start位置开始,截取length个字符该方法将负的第一个参数加上字符串的长度,而将负的第二个参数转换为0。
##### 位置方法:
* `indexof()`:返回指定内容在元字符串中的位置(从字符串的开头向后搜索)
* `lastindexof()`:从后往前找,只找第一个匹配的
##### 去除空白:
+ `trim()`:只能去除字符串前后的空白。该方法创建一个字符串的副本,删除前置及后缀的所有的空格,然后返回结果。
+` split()`:把字符串切割成字符数组。返回值为一个数组
##### 大小写转换方法:
*` to(Locale)UpperCase()`:转换大写
* `to(Locale)LowerCase()`: 转换小写
##### 字符串的模式匹配的方法:
+ `replace()`方法。 接受俩个参数,第一个参数可以是一个RegExp对象或者一个字符串(这个字符串不会被转换成一个正则表达式),第二个参数可以是一个字符或者一个函数。如果第一个参数是字符串,那么只会替换第一个字符串。要想替换所有的字符串,唯一的办法就是提供一个正则表达式,而且指定全局(g)标志。
##### 字符串的模式匹配方法
* match(),只接受一个参数,要么是一个正则表达式,要么是一个RegExp对象。
* 字符串的方法都不影响原字符串。(基本都有返回值)





原文地址:https://www.cnblogs.com/webbeyond/p/5988139.html