* 字符串的常用方法:
var str = 'jiuke';
* str.length ,字符串的长度
* str.charAt(索引),返回值是指定索引位置的字符串,超出索引,结果是空字符串
* String.fromCharCode(数字值,可以是多个参数),返回的是ASCII码对应的值
* str.concat(字符串1,字符串2,...);返回的是拼接之后的新的字符串
* str.indexOf(要找的字符串,从某个位置开始的索引);返回的是这个字符串的索引值,没找到则返回-1
* str.lastIndexOf(要找的字符串);从后向前找,但是索引仍然是从左向右的方式,找不到则返回-1
* str.replace("原来的字符串","新的字符串");用来替换字符串的
* str.slice(开始的索引,结束的索引);从索引5的位置开始提取,到索引为10的前一个结束,没有10,并返回这个提取后的字符串
* str.split("要去掉的字符串",去掉后留下的个数); 以某个字符串分割str,并返回数组
* str.substr(开始的位置,个数);返回的是截取后的新的字符串
* str.substring(开始的索引,结束的索引);返回截取后的字符串,不包含结束的索引的字符串
* str.toLocaleLowerCase();转小写
* str.toLowerCase();转小写
* str.toLocaleUpperCase();转大写
* str.toUpperCase();转大写
* str.trim();去掉字符串两端的空格
* Array的常用方法;
* Array.isArray(对象);判断这个对象是不是数组
var arr = [1,4,3,5,2];
Array.isArray(arr) //true
arr instanceof Array; // true,
//上述两种方法都都可以判断是不是Array,
* instanceof 用于测试构造函数的prototype属性是否出现在对象的原型链中的任何位置
function Car(make, model, year) {
this.make = make;
this.model = model;
this.year = year;
}
var auto = new Car('Honda', 'Accord', 1998);
console.log(auto instanceof Car); // true
console.log(auto instanceof Object); // true
console.log(auto instanceof Array); // false
* .concat(数组,数组,数组,...) 用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
var arr = [1,4,3,5,2];
var arr1 = arr.concat([8,9],[23])
console.log(arr) //[1, 4, 3, 5, 2]
console.log(arr1) //[1, 4, 3, 5, 2, 8, 9, 23]
* .every(函数) 是对数组中每一项运行给定函数,如果该函数对每一项都返回true,则返回true。
* .some(函数) 是对数组中每一项运行给定函数,只要该函数对任一项返回true,则返回true。
var arr = [ 1, 2, 3, 4, 5, 6 ];
//some函数从第一项开始循环,循环到4的时候,符合条件,则结束循环,返回true
let arrSome = arr.some( function( item, index, array ){
console.log( 'item=' + item + ',index='+index+',array='+array );
return item > 3;
})
console.log(arrSome); //true
//every函数从第一项开始循环,循环到1的时候,不符合条件,则结束循环,返回false,只有所有的值都符合条件,才回返回true
let arrEvery = arr.every( function( item, index, array ){
console.log( 'item=' + item + ',index='+index+',array='+array );
return item > 3;
})
console.log(arrEvery); //false
* .filter(函数);创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。不会对空数组进行检测。不会改变原始数组。
var arr = [ 1, 2, 3, 4, 5, 6 ];
function checkAdult(age) {
return age > 3;
}
console.log(arr.filter(checkAdult)); //[4, 5, 6]
* .push(值);把值追加到数组最后 ,返回值也是追加到数据之后的数组长度
var arr = [ 1, 2, 3, 4, 5, 6 ];
arr.push(10,9)
console.log(arr) //[1, 2, 3, 4, 5, 6, 10, 9]
* .pop();删除数组中最后一个元素,返回值就是删除的这个值
* .shift();删除数组中第一个元素,返回值就是删除的这个值
* .unshift();向数组的第一个元素前面插入一个新的元素,----返回值是插入后的程度
* .indexOf(元素值);返回的是索引,没有则是-1
* .join("字符串分隔符");数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。
var arr = [ 1, 2, 3, 4, 5, 6 ];
let arrPop = arr.pop();
console.log(arrPop,arr) //6,[1, 2, 3, 4, 5]
let arrShift = arr.shift();
console.log(arrShift,arr) //1,[1, 2, 3, 4, 5]
let arrUnshift = arr.unshift(9);
console.log(arrUnshift,arr) //5,[1, 2, 3, 4, 5]
console.log(arr.indexOf(3)) //2
console.log(arr.join('-')) //1-2-3-4-5-6
* .forEach(函数);遍历数组,相当于for循环
* .map(函数);遍历数组,把执行后的结果重新的全部的放在一个新的数组中
var arr = [ 1, 2, 3, 4, 5, 6 ];
//forEach没有返回值,只是遍历数组中的每一项,不对原来数组进行修改,但是可以自己通过数组的索引来修改原来的数组
arr.forEach( function( item, index, array ){
console.log( "index[" + index + "]: " + item );
})
//map 有返回值,return的是什么,相当于把数组中的这一项变为什么(并不影响原来的数组,只是相当于把原数组克隆了一份,把克隆这一份的数组中的对应项改变了 );
var arrMap = arr.map( function( item, index, array ){
return item*2
})
console.log(arrMap); //[2, 4, 6, 8, 10, 12]
* .reverse();反转数组
* .sort();用于对数组的元素进行排序。
//reverse和sort都是在原来的基础上改变,不生成新的数组
var arr = [ 1, 5, 4, 2, 3, 6 ];
console.log(arr.reverse()) //[6, 3, 2, 4, 5, 1]
arr.sort(function (a,b) {
return a - b
})
console.log(arr) //[1, 2, 3, 4, 5, 6]
* .arr.slice(开始的索引,结束的索引);把截取的数组的值放在一个新的数组中,但是不包含结束的索引对应的元素值
* .splice(开始的位置,要删除的个数,替换的元素的值);一般是用于删除数组中的元素,或者是替换元素,会直接对数组进行修改。
var arr = [ 1, 2, 3, 4, 5, 6 ];
var arrSlice = arr.slice(0,3)
console.log(arrSlice) //[1, 2, 3]
var arrSplice = arr.splice(1,2,'joke')
console.log(arrSplice) //[2, 3]
console.log(arr) //[1, "joke", 4, 5, 6]