目录

1、字符串

1.1 at()方法

1.2 includes()方法

1.3 repeat()

1.4 padStart() 、padEnd()

2.数组

2.1 Array.from()

2.2 Array.of()

2.3 copyWithin()

2.4 find()和findIndex()

2.5 fill()

2.6 entries()、keys()、values()

2.7 includes()

3.对象

3.1 Object.is()

3.2 Object.assign()

3.3 es6属性的遍历

3.4 Object.keys() 、Object.values()、 Object.entries()

3.5 Null传导运算符

3.6 Object.getOwnpropertyDescriptors()

3.7 __proto__属性、Object.setPrototypeof()、 Object.getPrototypeof()


以下所有的方法都是ES6新增的

1、字符串

1.1 at()方法

作用:

返回字符串给定位置的字符。可以理解为字符串截取,比之前的charAt()好用多了。

例子:

'abc'.at(0)  // 'a'"你好".at(0) // '你'

1.2 includes()方法

传统上,只有indexof方法可用来确定一个字符串是否在另一个字符串中,ES6又提供了三种方法,三种分别是includes()、startsWith()、endsWith(),这里只说includes方法,因为它最强大,注意,这个方法在数组、对象上依然可以使用,非常强大。

作用:

includes():返回布尔值,表示是否找到了参数字符串;支持第二个参数,表示开始搜索的位置

例子:

let s = 'hello world!'s.includes('o') //trues.includes('hello',0) //true

1.3 repeat()

这个方法实际作用不大,但是挺好玩的,就放上来了。

作用:

返回一个新字符串,表示将原字符串重复n次

例子:

'x'.repeat(3) // 'xxx''hello'.repeat(2) // 'hellohello''na'.repeat(0) // ''参数如果是小数,会被取整'na'.repeat(2.9) // 'nana'参数如果是负数或者Infinity,会报错如果是 0~1 之间的小数,则等同于0 参数NAN等同于0repeat的参数如果是字符串,则会先转换为数字
'na'.repeat('na') // ''
'na'.repeat('3') // 'nanana'

1.4 padStart() 、padEnd()

作用:

指定字符串长度,填充补足长度

例子:

'x'.padStart(5,'ab') //'ababx''x'.padStart(4,'ab') //'abax''x'.padEnd(5,'ab') //'xabab''x'.padEnd(4,'ab') //'xaba'

2.数组

2.1 Array.from()

作用:

将伪数组(有length长度,可遍历但不能用数组api的)转为真数组

一共有三个参数,第一个是转数组的数据;第二个是类似于map()方法对每个元素进行处理;第三个参数用来绑定this

例子:

let arr = {"0":'a',"1":'b',length:2}let arr2 = Array.from(arr) //['a','b']

2.2 Array.of()

作用:

将一组值转换为数组。主要目的是弥补数组构造函数Array()的不足

例子:

Array.of(3,11,8) // [3,11,8]Array.of(3) // [3]Array.of(3).length // 1Array.of() // []Array.of(undefined) // [undefined]

2.3 copyWithin()

作用:

将指定位置的数据复制到其他位置,这个方法会修改数组

有三个参数:target(必选):从该位置开始替换数据;start(可选):从该位置开始读取,默认为0;end(可选):从该位置前停止读取数据

例子:

[1,2,3,4,5].copyWithin(0,3)  // [4,5,3,4,5]//将3号位复制到0号位[1,2,3,4,5].copyWithin(0,3,4) // [4,2,3,4,5]

2.4 find()和findIndex()

作用:

find用于找出第一个符合条件的数组成员;findindex和find非常类似,返回符合条件的数组成员的位置,找不到返回-1


2.5 fill()

作用:

使用给定值填充数组

例子:

['a','b','c'].fill(7) // [7,7,7]['a','b','c'].fill(7,1,2) // ['a',7,'c'] 既包括1 但不包括2

2.6 entries()、keys()、values()

作用:

用于遍历数组,返回一个遍历器对象,可用for…of循环遍历

entries():遍历键值对;keys():遍历键;values():遍历值;


2.7 includes()

作用:

表示某个数组是否包含给定的值,和字符串的类似(很强大,很好用,很推荐)

该方法的第二个参数表示搜索的起始位置,默认为0.如果第二个参数为负数则表示倒数的位置,如果这时他大于数组的长度,则会重置为从0开始

[1,2,3].includes(2) // true[1,2,3].includes(4) // false[1,2,NaN].includes(NaN) // true[1,2,3].includes(3,-1) // true[1,2,3].includes(3,3) // FALSE

3.对象

3.1 Object.is()

作用:

比较两个值是否相等;用来比较两个值是否严格相等,与===的行为基本一致;

比较对象的时候,比的是引用地址,不是值哈,比较值思路是比较键、值是否一样

例子:

Object.is('foo','foo') //true

3.2 Object.assign()

作用:

复制对象

第一个参数是目标对象,后面的参数都是源对象;是浅拷贝;

他还有很多作用:

为对象添加属性

为对象添加方法

克隆对象

合并多个对象

为属性指定默认值

例子:

let target = {a:1}let source = {b:2}Object.assign(target,source)target // {a:1,b:2}

3.3 es6属性的遍历

for…in :自身和继承的可枚举属性不包含symbol

Object.keys():自身的可枚举属性不包含symbol

Object.getOwnPropertySymbols():自身的所有symbol属性

Object.getOwnPropertyNames():自身的所有属性不包含symbol,但包括不可枚举属性

Reflect.ownKeys() : 自身所有属性,不管是symbol还是字符串也不管是否可枚举


3.4 Object.keys() 、Object.values()、 Object.entries()

和上面讲的数组的一样的作用


3.5 Null传导运算符

作用:

用来判断对象是否具有某属性

例子:

obj?.prop:读取对象属性a?.b = 42 // 如果a是null或undefined,这句不产生任何效果,否则执行

3.6 Object.getOwnpropertyDescriptors()

作用:

用来返回某个对象属性的描述对象;返回指定对象所有自身属性(非继承属性)的描述对象;主要是为了解决Object.assign()无法正确复制get属性和set属性的问题


3.7 __proto__属性、Object.setPrototypeof()、 Object.getPrototypeof()

作用:

__proto__属性:读取或者设置当前对象的prototype对象(原型)

let obj = {name:"123"}obj.__proto__ = someOtherObj

Object.setPrototypeof():设置原型对象

Object.getPrototypeof():读取原型对象

ES6字符串、对象、数组不常见但实用的API方法相关推荐

  1. 使用ES6进行对象数组去重

    之前使用new Set数组去重,只可以去重简单字符数组,或者数字数组等.Array.from(new Set(arr))即可.但是这种方案针对对象数组并不适用. 那么简易的使用ES6进行对象数组去重呢 ...

  2. html中,将字符串对象数组转成对象数组

    1.字符串数组如下 [{"id":"1208183791342927872","name":"测试1","va ...

  3. 字符串对象数组集合非空判断

    String 字符串 //直接用字符串调用方法 str.isEmpty() 如果为null则会抛出异常 if (StringUtils.isEmpty(str)){// "" 和n ...

  4. JS处理JSON字符串转数组,数字超17为处理方法

    这里写自定义目录标题 js 把json字符串解析成数组的时候 数字超过17位的 会把剩余的都补成0 造成数据错误 解决办法是 用正则把数字转成字符串 再解析就好了 配上一个正则 replace(/(\ ...

  5. Java对象数组根据字段来进行排序的方法

    1.简单的一个字段的数组排序 /** * @param List 要排序的数组 * @param type 是否要降序排 * @param field 排序的字段 * */ public List&l ...

  6. 【小程序】【Tips】【前端】交互【后端】从Json对象数组里面获取数据的方法 - PHP - JS 的原生方法

    小程序后端和前端之间是通过,json的格式来传数据的,那么,数据如何获取呢?这就分两个部分 1 就是后端到前端 后端我们考虑是PHP环境,前端是JS, 那么在JS里面,很简单: 比如,小程序一般在前端 ...

  7. mysql 字符转数组_mysql下将分隔字符串转换为数组

    MySQL存储过程可以用于分割字符串,下面就为您详细介绍这种MySQL存储过程的用法,供您参考学习之用. 现有一段字符串,如apple,banana,orange,pears,grape,要把它按照逗 ...

  8. Java中字符串对象String、StringBuffer、StringBuilder的比较

    原文地址:http://www.iteye.com/topic/522167 作者:每次上网冲杯Java时,都能看到关于String无休无止的争论.还是觉得有必要让这个讨厌又很可爱的String美眉, ...

  9. 综合演练 对象数组 对象的方法 我们9203班 0912

    综合演练 对象数组 对象的方法 我们9203班 0912 需求 需要有一个班级对象,对学生对象进行管理 班级类说明 类名称MyClass 属性,name,班级名称,初始值9203 班级有29名学生,定 ...

最新文章

  1. SAP EWM 代码实现Transportation Unit(TU)的创建
  2. java.io包有哪些方法_java.io包下常用类及常用方法介绍
  3. cnetos6.2搭建mysql_CentOS 6.2安装配置LAMP服务器(Apache+PHP5+MySQL)
  4. Java学习:多线程(2)
  5. SqlSugar与Fluent NHibernate的性能测试对比
  6. debug pricing calculation rfc call
  7. php打开就执行url,php执行URL解析
  8. duration java_Java Duration类| 带示例的dividBy()方法
  9. 转载---Adaboost学习记录
  10. 带你彻底搞懂高性能网络模式Reactor 和 Proactor
  11. nginx 过滤post报文 防火墙_十八般武艺之Nginx踩坑总结
  12. Python文件中,reload(sys)找不到的问题
  13. android 5.1 改mac地址,mac地址可以随便改吗
  14. Left-pad 分数 20作者 陈越单位 浙江大学
  15. DDL语言(数据定义语言)
  16. ElementUI tree超出显示省略号
  17. 希腊字母表__手写 拍照版
  18. 高等教育心理学:教师职业心理(完) 不是特别重要
  19. 算法工程师面试之OOV问题如何解决?
  20. Python网络爬虫专业级框架_scrapy

热门文章

  1. chromium 编译
  2. 十六进制代码C语言,十六进制转换器C语言代码。怎么办?
  3. c语言编写十六进制编辑器,什么是十六进制编辑器?
  4. php网站iis7.5 session,IIS7/7.5下web.config奇葩的问题(伪静态html无法使用session)
  5. 快车道不快的现象与人类误判心理学
  6. 中信科移动IPO过会:年营收57亿 拟募资40亿重点研发5G
  7. k8s篇-网络-Ingress对象详解
  8. C语言中字符数据超过127,如何用C语言显示ascii码超过127的字符
  9. Math 函数-- cos()和acos()
  10. 何为鸿蒙?和安卓的区别到底是什么?别再扯套壳了