js中字符串,数组,对象种常用方法总结
以下总结了 javascript 中字符串,数组,对象的常用方法,个人拙见,凡有不恰当之处,欢迎留言,互相学习!
1.字符串常用方法
[..."abcd"] = ["a","b","c","d"] //字符串解构
Str.Startwith(searchstring,str,start)//字符串匹配,返回布尔值
Str.chartAt() //返回指定位置的字符
Str.substr(start,length) //长度截取,返回值截取的字符串(废弃)
Str.substring(start,stop) //下标截取,不包含stop,stop非负,返回新的字符串,start=stop,返回空串;start>stop,截取之前交换参数;start<0||stop<0,start||stop=0
Str.slice(start,end) //下标截取,不包含end,end可负,返回新的字符串
Str.concat() //拼接字符串,返回新字符串
Str.split() //以指定分隔符将字符串切割成数组
Str.trim()|trimLeft()|trimRight() //创建副本,删除字符串(前后|左|右)空格,返回副本
Str.indexOf(str,start) //查找字符串,返回第一个匹配字符的位置或-1,start可选参数
Str.laseIndexOf() //indexOf从左向右查询,lastIndexOf从右向左查询
Str.toLowerCase() //字符串全部转小写
Str.toUpperCase() //字符串全部转大写
Str.replace(str1,str2) //替换字符串
Str.includes(str,start) //检索整个字符串,start为起始位置(可选参数)
Str.startWith(str,start) //左侧开始检索,start为起始位置(可选参数)
Str.endWith(str,start) //右侧开始检索,start为起始位置(可选参数)
Str.repeat(count) //将字符串复制count次返回
Str.padStart(sumlength,copystr) //扩充字符串至指定长度,头部填充(可选,默认空格)
Str.padEnd(sumlength,copystr) //扩充字符串至指定长度,尾部填充(可选,默认空格)
附,slice/substr/substring参数为负规则;
- slice()将两个负参数当成其与当前字符串长度相加参数;
- substr()第一个参数为负当成其与字符串长度相加参数,第二个负参数转换为0;
- substring()将所有负参数转换为0
2.对象常用方法
1) 原型方法
Object.assign(target,...source) //将源对象上可枚举属性拷贝到目标对象上,返回目标对象
Object.create(proto,[properitiesobject])//创建一个拥有指定原型与属性的对象
Object.entries(obj) //var obj={name:dong,age:10}=>[[name,dong],[age,10]]
Object.keys(obj) //var obj={name:dong,age:10}=>[name,age]
Object.values(obj) //var obj={name:dong,age:10}=>[dong,10]
Object.is(value1,value2) //判断两个值(任何类型都可以)为否为同一个值
2) 实例方法
obj.hasOwnproperty(propertyname) //检测对象是是否包含某个属性
obj.isPrototypeof(obj2) //检测对象是否是另一个对象的原型
obj.prototypeIsEnumerable(propertyname)//判断对象给定属性是否可以被for-in枚举
obj.toLocalString() //返回对象的字符串表示,返回与本地环境一致(如时间,带AM,PM)
obj.toString() //返回对象的字符串表示
obj.valueOf() //返回对象对应的字符串,数值,布尔值表示
3.数组常用方法
1) 不改变原数组
Array.concant(otherArr) //传入元素或数组,合并至数组上,返回值为新的数组
Array.slice(start,end) //剪切数组(不含end),返回值为剪切之后的元素
Array.toString() //数组元素转字符转拼接逗号返回,返回值为拼接元素字符串
Array.indexOf()|lastIndexOf() //返回第一个匹配到的元素在数组中的位置或-1
Array.includes() //查找元素,返回布尔值
Array.valueOf(); //返回Array对象的返回值
附:如果数组中某一项是null或者undefined,数组的 toString()/toLocalString()/join()/valueOf()返回的结果中会议空字符串表示
Array.from(); //将可迭代对象转化为数组,返回值为新数组
Array.of(); //使用new Array()创建数组,只有一个number类型参数时会创建一个[empty × 3]空数组,使用of可避免
arr.keys()|values()|entries() //返回数组索引|元素|索引/元素对的迭代器(配合from转化为数组实例)
eg:Array.from(arr.keys())->[1,2,3]->[0,1,2]
Array.forEach //将数组执行传进的函数,没有返回值
Array.map //将数组按照传进函数执行,返回新数组,没有改变原数组
Array.filter //将所有的元素进行判断,将满足条件的元素作为一个新数组返回
Array.every //对所有元素进行判断,返回布尔值,全部满足返回true
Array.some //对所有元素进行判断,返回布尔值,存在满足返回true
Array.reduce //将所有元素调用传入函数,返回值为最后结果
Array.find //将所有元素按照测试函数进行查找,返回值为满足条件的第一个元素
Array.findIndex //将所有元素按照测试函数进行查找,返回值为第一个满足元素下标
2) 改变原数组
Array.join() //将数组以指定方式切割为字符串;
Array.splice() //删除,插入,替换数组元素;返回值为被删除的元素,没有则为空数组删:[start,length]/插:[start,0,要插入的元素]/替换:[start,1,要插入的元素]
Array.reverse() //反转数组的顺序,返回值为重新排序的数组;
Array.sort() //排序,返回值为排序后的新数组
Array.push() //数组末尾推入元素,返回值为新数组长度
Array.pop() //末尾删除,返回值为被删除的元素
Array.shift() //头部删除,返回值为被删除的元素
Array.unshift() //头部添加,返回值为新数组的长度
Array.fill() //按照指定规则填充数组,返回值为填充后的数组
Array.copyWithin() //按照指定规则复制自身片段填充自身指定位置,返回改变后数组