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

简介: ES6字符串、对象、数组不常见但实用的API方法

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

1、字符串


1.1 at()方法


作用:

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

例子:

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

1.2 includes()方法


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

作用:

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

例子:

let s = 'hello world!'
s.includes('o') //true
s.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等同于0
repeat的参数如果是字符串,则会先转换为数字
'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 // 1
Array.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():读取原型对象

相关文章
|
27天前
|
人工智能 API 开发者
图文教程:阿里云百炼API-KEY获取方法,亲测全流程
本文详细介绍了如何获取阿里云百炼API-KEY,包含完整流程与截图指引。需先开通百炼平台及大模型服务,再通过控制台创建并复制API-KEY。目前平台提供千万tokens免费额度,适合开发者快速上手使用。
475 5
|
8月前
|
JSON 数据可视化 API
Python 中调用 DeepSeek-R1 API的方法介绍,图文教程
本教程详细介绍了如何使用 Python 调用 DeepSeek 的 R1 大模型 API,适合编程新手。首先登录 DeepSeek 控制台获取 API Key,安装 Python 和 requests 库后,编写基础调用代码并运行。文末包含常见问题解答和更简单的可视化调用方法,建议收藏备用。 原文链接:[如何使用 Python 调用 DeepSeek-R1 API?](https://apifox.com/apiskills/how-to-call-the-deepseek-r1-api-using-python/)
|
4月前
|
缓存 负载均衡 监控
微服务架构下的电商API接口设计:策略、方法与实战案例
本文探讨了微服务架构下的电商API接口设计,旨在打造高效、灵活与可扩展的电商系统。通过服务拆分(如商品、订单、支付等模块)和标准化设计(RESTful或GraphQL风格),确保接口一致性与易用性。同时,采用缓存策略、负载均衡及限流技术优化性能,并借助Prometheus等工具实现监控与日志管理。微服务架构的优势在于支持敏捷开发、高并发处理和独立部署,满足电商业务快速迭代需求。未来,电商API设计将向智能化与安全化方向发展。
|
12月前
|
测试技术 API 项目管理
API测试方法
【10月更文挑战第18天】API测试方法
294 1
|
7月前
|
JavaScript 前端开发 API
JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码)
array.map()可以用来数据转换、创建派生数组、应用函数、链式调用、异步数据流处理、复杂API请求梳理、提供DOM操作、用来搜索和过滤等,比for好用太多了,主要是写法简单,并且非常直观,并且能提升代码的可读性,也就提升了Long Term代码的可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
8月前
|
JSON JavaScript 前端开发
处理从API返回的JSON数据时返回Unicode编码字符串怎么处理
在处理API返回的JSON数据时,遇到类似`\u7f51\u7edc\u8fde\u63a5\u9519\u8bef`的Unicode编码字符串,可使用JavaScript内置方法转换为可读文字。主要方法包括:1. 使用`JSON.parse`自动解析;2. 使用`decodeURIComponent`和`escape`组合解码;3. 在API调用中直接处理响应数据。这些方法能有效处理多语言内容,确保正确显示非ASCII字符。
|
10月前
|
JSON 安全 API
Python调用API接口的方法
Python调用API接口的方法
1382 5
|
12月前
|
Java 大数据 API
别死脑筋,赶紧学起来!Java之Steam() API 常用方法使用,让开发简单起来!
分享Java Stream API的常用方法,让开发更简单。涵盖filter、map、sorted等操作,提高代码效率与可读性。关注公众号,了解更多技术内容。
430 5
|
12月前
|
JavaScript 前端开发 Java
多种语言请求API接口方法
每种语言和库的选择取决于具体需求、项目环境以及个人偏好。了解这些基本方法,开发者就可以根据项目需求选择合适的语言和库来高效地与API交互。
299 1
|
12月前
|
安全 测试技术 API
一图看懂API测试9种方法
一图看懂API测试九种方法:冒烟测试验证基本功能,功能测试确保符合规格,集成测试检查组件协同工作,回归测试防止新变更引入问题,负载测试评估性能稳定性,压力测试挑战极限负载,安全测试发现并修复漏洞,用户界面测试确保UI与API协调,模糊测试提升异常数据处理鲁棒性。

热门文章

最新文章