JS方法

65 阅读4分钟

JS方法

JS字符串的方法

str.charAt(index) 返回子字符串,index为字符串下标,index取值范围[0,str.length-1]

var str='aunaosdnasbovubadsa'
console.log(str.charAt(2)); // n

concat 拼接字符串

var str='aunaosdnasbovubadsa'
var abc='你好啊'
console.log(str.concat(abc)); // aunaosdnasbovubadsa你好啊

截取字符串

str.substring(start,end) 包左不包右

var str='aunaosdnasbovubadsa'
console.log(str.substring(1,5)); // unaos

str.slice(start,end) 包左不包右

var str='aunaosdnasbovubadsa'
console.log(str.slice(1,6)); // unaos

str.substr(start,length)

var str='aunaosdnasbovubadsa'
console.log(str.substr(1,6)); // unaosd

str.indexOf(searchString,startIndex) 返回子字符串第一次出现的位置,从startIndex开始查找,找不到时返回-1

var str="hello world"; 
console.log(str.indexOf("o"));//4 

str.trim() 用来删除字符串前后的空格

var str="   hello world   "; 
console.log(str);
console.log(str.trim());

str.toLowerCase() 转小写

str.toUpperCase() 转大写

str.split(separator,limit) 字符串分割成数组

  • str.split(""); 每个字符都被分割 ['','','','']
  • str.split(); 整个字符串放到数组里 ['']
var str = "red,blue,green,yellow";
console.log(str.split("")); //["red", "blue", "green", "yellow"] 
console.log(str.split()); //['red,blue,green,yellow']

arr.join(分隔符) 数组变成字符串

  • arr.join('') 无缝连接
  • arr.join('-') 以-连接

str.replace(rgExp/substr,replaceText) 返回替换后的字符串

var str="cat,bat,sat,fat"; 
var res=str.replace("at","one");//第一个参数是字符串,所以只会替换第一个子字符串 
console.log(res);//cone,bat,sat,fat 

JS数组的方法

join,就是把数组转换成字符串

var arr = [1,2,3];
console.log(arr.join());     // 1,2,3
console.log(arr.join("-"));   // 1-2-3
console.log(arr);         // [1, 2, 3](原数组不变)

push(): 把里面的内容添加到数组末尾,并返回修改后的长度。

var arr = ["Lily","lucy","Tom"];
var count = arr.push("Jack","Sean");
console.log(arr); // ["Lily", "lucy", "Tom", "Jack", "Sean"]

pop():移除数组最后一项,返回移除的那个值,减少数组的length。

var arr = ["Lily", "lucy", "Tom", "Jack", "Sean"];
var item = arr.pop();
console.log(arr); // ["Lily", "lucy", "Tom", "Jack"]

shift():删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined

var arr = ["Jack", "Sean", "Lily", "lucy", "Tom"];
var item = arr.shift();
console.log(arr); // ["Sean", "Lily", "lucy", "Tom"]

unshift():将参数添加到原数组开头,并返回数组的长度 。

var arr = ["Lily","lucy","Tom"];
var count = arr.unshift("Jack","Sean");
console.log(arr); //["Jack", "Sean", "Lily", "lucy", "Tom"]

sort():将数组里的项从小到大排序

var arr1 = ["a", "d", "c", "b"];
console.log(arr1.sort()); // ["a", "b", "c", "d"]

reverse():反转数组项的顺序

var arr = [13, 24, 51, 3];
console.log(arr.reverse());         //[3, 51, 24, 13]
console.log(arr);               //[3, 51, 24, 13](原数组改变)

concat() :将参数添加到原数组中。

var arr = [1,3,5,7];
var arrCopy = arr.concat(9,[11,13]);
console.log(arrCopy);             //[1, 3, 5, 7, 9, 11, 13]
console.log(arr);               // [1, 3, 5, 7](原数组未被修改)

slice():返回从原数组中指定开始下标到结束下标之间的项组成的新数组,包左不包右

var arr = [1,3,5,7,9,11];
var arrCopy = arr.slice(1);
var arrCopy2 = arr.slice(1,4);
var arrCopy3 = arr.slice(1,-2);
var arrCopy4 = arr.slice(-4,-1);
console.log(arr);               //[1, 3, 5, 7, 9, 11](原数组没变)
console.log(arrCopy);             //[3, 5, 7, 9, 11]
console.log(arrCopy2);            //[3, 5, 7]
console.log(arrCopy3);            //[3, 5, 7]
console.log(arrCopy4);            //[5, 7, 9]

splice():删除、插入和替换。

删除:指定 2 个参数:要删除的第一项的位置和要删除的项数

插入:3 个参数:起始位置、要删除的项数和要插入的任意数量的项。

var arr = [1,3,5,7,9,11];
var arrRemoved = arr.splice(0,2);
console.log(arr);                //[5, 7, 9, 11]
var arrRemoved2 = arr.splice(2,0,4,6);
console.log(arr);                // [5, 7, 4, 6, 9, 11]
var arrRemoved3 = arr.splice(1,1,2,4);
console.log(arr);                // [5, 2, 4, 4, 6, 9, 11]

forEach():对数组进行遍历循环,对数组中的每一项运行给定函数。

map():指“映射”,对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。

var arr = [1, 2, 3, 4, 5];
var arr2 = arr.map(function(item){
return item*item;
});
console.log(arr2);         //[1, 4, 9, 16, 25]

filter():“过滤”功能,数组中的每一项运行给定函数,返回满足过滤条件组成的数组。

every():判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回true。

var arr = [1, 2, 3, 4, 5];
var arr2 = arr.every(function(x) {
return x < 10;
}); 
console.log(arr2);         //true
var arr3 = arr.every(function(x) {
return x < 3;
}); 
console.log(arr3);         // false

some():判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。

var arr = [1, 2, 3, 4, 5];
var arr2 = arr.some(function(x) {
return x < 3;
}); 
console.log(arr2);         //true
var arr3 = arr.some(function(x) {
return x < 1;
}); 
console.log(arr3);         // false

JS对象的方法

hasOwnProperty() 返回一个布尔值,指示对象自身属性中是否具有指定的属性

let object1 = new Object();
object1.property1 = 42;

object1.hasOwnProperty('property1'); // true
object1.hasOwnProperty('toString'); // false

toString() 返回一个表示该对象的字符串

let o = new Object();
o.toString(); // '[object Object]'

valueOf 返回指定对象的原始值

let o = new Object();
o.valueOf(); // {}

Object.assign() 用于将所有可枚举属性的值从一个或多个源对象复制到目标对象

let a = {
            a: 1,
            b: 2,
            c: 3
        }
        let b = {
            c: 4,
            f: 5,
            g: 6
        }
        let c = Object.assign(a, b)
        console.log(a, c);
        a:{a: 1, b: 2, c: 4, f: 5, g: 6}
        b:{a: 1, b: 2, c: 4, f: 5, g: 6}

Object.create():创建一个新对象,使用现有的对象来提供新创建的对象的proto。即创建一个以指定的对象为原型的子对象。

Object.setPrototypeOf():设置一个指定的对象的原型 ( 即, 内部[[Prototype]]属性)到另一个对象或null。

Object.getPrototypeOf()返回指定对象的原型(内部[[Prototype]]属性的值)。

Object.keys() 会返回一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用for...in循环遍历该对象时返回的顺序一致 。

let obj1 = {
            a: 1,
            b: 2,
            c: 3
        };
        let keys = Object.keys(obj1);
        console.log(keys); // ['a', 'b', 'c']