JS 的各种方法

Posted 鲸渔要加油

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS 的各种方法相关的知识,希望对你有一定的参考价值。

数组方法

方法名功能返回值是否改变原数组
push()向数组尾部添加一个或多个元素新数组长度
pop()删除数组的最后一个元素删除的元素
unshift()向数组头部添加一个或多个元素新数组长度
shift()删除数组的第一个元素删除的元素

valueOf :返回数组的本身

indexOf()arr.indexOf('A', 1)
返回指定元素索引,没有则返 -1
第二个参数,表示搜索的开始索引位置

toString() :数组转字符串,不改变原数组

join() :数组分割转字符串,默认逗号分隔

a.concat(b) :合并多个数组,返回新数组,不改变原数组

reverse() :翻转数组,返回改变的数组,影响原数组

slice(start, end) :截取数组,返回截取的,不改变原数组
如果参数只有一个 -3,就从倒数第三个开始
索引1开始到索引2 (不包括索引2),如果没有索引2就一直到最后

splice(start, num, add) :删除数组部分,返回被删除的元素的数组,改变原数组
如果参数只有一个 -3,就从倒数第三个开始删
如果第一个参数为 -3,第二个参数为 2,就是倒着从第三个开始往后删两个元素
参数1索引开始删,参数2是删除个数 (如果没有参数2就一直删),参数3是删除位置插入新元素

sort(function(a,b){}) :对数组成员排序,默认按照字典顺序,改变原数组
参数是函数,return a - b 是升序, return b - a 是倒序

arr.flat(Infinity) :拍平数组,返回新数组,不影响原数组
里面参数写 N 就拍平 N 层,可以是关键字 Infinity

遍历数组

for(){} :遍历
break 结束整个循环
countinue 结束当前循环,继续下一个循环

for(var a of arr){} :遍历数组,a为当前每一项

for(var k in obj){} :遍历对象,k为键,obj[k]为值

foreach(函数) 遍历每一项,没有返回值,不影响原数组

map(函数) :处理每一项,返回处理后的新数组,不影响原数组,不会对空数组检测
例如 return item + 1 返回索引项加1的新数组
参数1当前元素,参数2当前索引,参数3原对象

filter(函数) :筛选数组,返回满足条件的新数组,不改变原数组
例如 return item > 1 返回所有大于1的新数组
参数1当前元素,参数2当前索引,参数3原对象

every(函数) :比较数组,每一项为true返回true否则返回false,不影响原数组
例如 return item > 1 所有项大于1才为true
参数1当前元素,参数2当前索引,参数3原对象

some() :比较数组,任意一项为true返回true否则返回false,不影响原数组
例如 return item > 1 只要有一项大于1就返回true,返回true后就停止循环
参数1当前元素,参数2当前索引,参数3原对象

find() :返回符合条件的第一个元素,否则返回undefined
例如 return item > 1 只要有一项大于1就返回这一项,然后停止循环
参数1当前元素,参数2当前索引,参数3原对象

findIndex() :返回符合条件的第一个元素索引,否则返回 -1
例如 return item > 1 只要有一项大于1就返回这一项索引,然后停止循环

reduce() :接收一个函数作为累加器
reduceRight() :倒着累加
pre 为上一次的值 cur 为当前值
index 为当前索引 arr 为原数组

var arr = ["a", "b", "c", "d", "a"];
var newArr = arr.reduce(function (pre, cur, index, arr) {
  cur in pre ? pre[cur]++ : (pre[cur] = 1);
  return pre;
}, {});
console.log(newArr);

keys,values,entries :和 for of 搭配使用
keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历

var a = ['a','b','c','d'];
      for(var k of a.entries()){
          console.log(k);
      }

字符串方法

length 获取字符串长度

charAt(index) 返回字符串的第index个字符,index取值范围为0~str.length-1

charCodeAt() 返回在指定的位置的字符的 Unicode 编码
fromCharCode() 接受一个指定的 Unicode 值,然后返回一个字符串

indexOf(a,startIndex) 只能返回第一个
str.lastIndexOf(search,startIndex) 只能返回第一个

slice()

concat()

split(',', 3) 字符串转换数组
以逗号分割,分割前3个

replace(a, b) 字符串替换,将a替换为b,只能替换第一个

substr(a, b) 从a开始截取b个
substring(a, b) 从索引a开始到索引b(不包括b)不能写负数

toLowerCase 将整个字符串转成小写字母
toUpperCase 将整个字符串转成大写字母

对象方法

valueOf() 返回指定对象的原始值,浅拷贝

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

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

Object.assgin({},a,b) 合并对象,键相同后面覆盖前面
第一层深拷贝,第二层往后浅拷贝

判断数据类型

typeof 123 判断基本数据类型,null和引用是object,NaN 是number

{} instanceof Object 判断引用数据类型返回布尔值

{}.constructor == Object 判断引用数据类型返回布尔值

Object.prototype.toString.call({}) 返回 [object Object] 的字符串

深拷贝
let aaaobj = JSON.parse(JSON.stringify(obj))

以上是关于JS 的各种方法的主要内容,如果未能解决你的问题,请参考以下文章

js经常用到的代码片段

几个关于js数组方法reduce的经典片段

几个关于js数组方法reduce的经典片段

vbscript 各种自定义代码片段 - 有关详细信息,请参阅注释

十条jQuery代码片段助力Web开发效率提升

十条jQuery代码片段助力Web开发效率提升