ES6新增扩展:字符串-数值-数组-函数-对象
ES6新增扩展
- 字符串的扩展
- 判断字符串是否包含在另一个字符中
- 字符串补全
- 字符串重复
- 消除字符串空格
- replaceAll()替换全部字符串
- at字符串匹配输出
- 数值的扩展
- 数值分隔符
- 检测数值是否有限
- 检测是否为NaN
- Number.parseInt()、Number.parseFloat()
- isInteger()判断是否为整数
- Math.sign()判断是正、负、零,非数值会先转换数值
- Math.hypot()方法返回所有参数的平方和和平方根
- BigInt数据类型-大整数
- 函数的扩展
- 函数作用域
- rest参数(...剩余运算符)
- 箭头函数
- 箭头函数this指向
- 数组的扩展
字符串的扩展
判断字符串是否包含在另一个字符中
let s = 'h'
s.startsWith('hello') // 是否在头部
s.endWith('hello') // 是否在尾部
s.includes('hello') // 字符串中是否存在
字符串补全
let b = 'how'
b.padStart('5','a') // 不足5个字符,在头部补缺少的'a'
.padEnd('5','a') // 尾部补全
.padStart('5') // 省略第二个参数用空格代替
字符串重复
let a = 'hello'
a.repeat(3) // hellohellohello 重复三次
'w'.repeat(3) // www 重复三次
'w'.repeat(3.5) // 取整,重复三次
消除字符串空格
let s = ' abc '
s.trim() // 消除首尾空格
s.trimStart() // 消除首部空格
s.trimEnd() // 消除尾部空格
replaceAll()替换全部字符串
let s = 'hello'
s.replaceAll('l','o') // heooo
at字符串匹配输出
// 整数头部 复数尾部
'hello'.at(2) // l 从头部第0位开始,初始下标0
'hello'.at(-1) // 从尾部第1位开始,初始下标1
数值的扩展
数值分隔符
允许给较长的数值添加分隔符,分割不没有间隔位数限制,不影响原值,不能再特殊符号前后。
let num = 1_00_000_000;
检测数值是否有限
有限:true
无限:false
Numbet.isFinite(10) // true
Numbet.isFinite(NaN) // false
检测是否为NaN
是:true
否:false
Number.isNaN(NaN) // true
Number.isNaN(10) // false
Number.parseInt()、Number.parseFloat()
将es5的全局方法parseInt()、parseFloat()
改为Number.xxx
,目的是减少全局方法,使语言模块化。
parseInt('12.55'); // 12
Number.parseInt('12.55'); // 12parseFloat('12.55'); // 12.55
Number.parseFloat('12.55'); // 12.55
isInteger()判断是否为整数
注意:如果数值位数太长,可能会误判,IEEE754标准,53个二进制位后的数值会被丢弃
Number.isInteger(15) // true
Number.isInteger(1.5) // false
Number.isInteger(false) // false
Number.isInteger(3.0000000000000002) // true
Math.sign()判断是正、负、零,非数值会先转换数值
Math.sign('5') // 1 整数
Math.sign(5) // 1
Math.sign(-5) // -1 负数
Math.sign(0) // 0
Math.sign(-0) // -0
Math.sign(true) // 1
Math.sign(false) // -1
// 其它 NaN
Math.hypot()方法返回所有参数的平方和和平方根
Math.hypot(3,4); // 5
BigInt数据类型-大整数
大整数语法(后缀n):数据n
BigInt
大整数可以保持数值精度
let a = 2172141653n // 大整数
let b = 15346349309n // 大整数
console.log(a*b); // 33334444555566667777n // 可以保持精度
普通数值与大整数不相等
15n === 15 // false
BigInt
继承Object
对象的两个实例方法
- BigInt.prototype.toString()
- BigInt.prototype.valueOf()
BigInt
继承了Number
对象的一个实例方法
- BigInt.prototype.toLocaleString()
提供了三个静态方法
- BigInt.asUintN(width, BigInt)
- BigInt.asIntN(width, BigInt)
- BigInt.parseInt(string[, radix])
BigInt转换规则
Boolean、Number、String
三个方法。
转换后后缀n会消失
Boolean(0n) // false
Number(2n) // 2
String(2n) // 2
数学运算和number
类型基本一致,除法运算 /
会舍去小数部分,返回一个整数
函数的扩展
函数作用域
函数进行生命初始化时,参数部分会形成一个单独的作用域,等初始化结束,作用域消失,该作用域在不设置参数默认值时不会出现。
var x = 1
// 传入参数 x = 2 , y = x , y = 2
function f(x,y = x){console.log(y);}
f(2) // 2
rest参数(…剩余运算符)
function fn(...val){console.log(val) // [1,2,3]
}
fn(1,2,3)
剩余运算符只能放到最后一位
箭头函数
// 一行简写
let b2 = num => num * 2
// 等同于
let b2 = (num) => {return num * 2}
console.log(b2(10)); // 20
一行默认返回右侧的结果,大括号为代码块,如果箭头函数不是一行,则需要大括号包裹。
无返回值
let b2 = num => void num * 2
console.log(b2(10)); // undefined
参数部分可以解构赋值。
简化回调函数
// 普通函数
let fil = [1,2,3].filter(function(x){return x == 2
})
console.log(fil); // [2]
// 箭头函数
let fil2 = [1,2,3].filter(el=> el == 2 )
console.log(fil2); // [2]
箭头函数this指向
箭头函数没有自己的this
,而是引用外层的this
。下面是 Babel
转箭头函数产生的 ES5
代码,就能清楚地说明this
的指向。
// ES6
function foo() {setTimeout(() => {console.log('id:', this.id);}, 100);
}// ES5
function foo() {var _this = this;setTimeout(function () {console.log('id:', _this.id);}, 100);
}
箭头函数详解请看文章尾部链接
数组的扩展
Array.from()
: 类数组转数组
Array.fo()
:数值转数组
find()
:返回符合条件的那一项
findIndex()
:返回符合条件的那一项的索引
findLast()
:从尾部检查,返回符合条件的那一项
fill()
:以给定参数填充数组,第二个参数和第三个参数分别为填充的开始位置和结束位置的前一位,从0
号位开始
entries()
:键值对遍历
keys()
:键名遍历
values()
:值遍历
includes()
:判断数组中是否存在对应的值,返回true和false
flat()
:拉平数组,默认拉平一层,参数为拉平几层,(Infinity深度拉平,不管多少层)
flatMap()
:拉平并用map函数迭代
at()
:参数为数组索引,整数从头(0开始),复数从尾(-1开始)
group()
:可以将数组分组,返回一个对象
let gr = [1,2,3,4,5]
let g = gr.group(el=> el > 3 ? 'greater' : 'less')
console.log(g); // { greater: [4,5], less: [1,2,3] }
groupToMap()
:使用map对group迭代。
数组空位:数组空位指数组某一个位置没有任何值,undefined是有值的,如果没有值,那么数组空位会返回empty
Array(3); // [empty x 3]也就是[,,,]
stor()
:排序
let arr = [2,3,6,4,5,1]
// 升序
console.log(arr.sort((a,b) => a - b)); // [1,2,3,4,5,6]
// 降序
console.log(arr.sort((a,b) => b - a)); // [6,5,4,3,2,1]
let arr2 = [{id:1,name:'名称1'},{id:3,name:'名称3'},{id:2,name:'名称2'},{id:6,name:'名称6'},{id:4,name:'名称4'},{id:5,name:'名称5'}]let so = arr2.sort((a,b)=>{ return a.id - b.id });console.log(so);
// [{id: 1, name: '名称1'},{id: 2, name: '名称2'},{id: 3, name: '名称3'},{id: 4, name: '名称4'},{id: 5, name: '名称5'},{id: 6, name: '名称6'}]
箭头函数的详细解释:箭头函数详解
数组的扩展详细解读:数组的扩展和新增方法
对象的扩展详细解读:对象定义-解构-枚举属性遍历以及对象内函数
字符串方法详细解读 : 字符串方法
相关文章:
ES6新增扩展:字符串-数值-数组-函数-对象
ES6新增扩展字符串的扩展判断字符串是否包含在另一个字符中字符串补全字符串重复消除字符串空格replaceAll()替换全部字符串at字符串匹配输出数值的扩展数值分隔符检测数值是否有限检测是否为NaNNumber.parseInt()、Number.parseFloat()isInteger()判断是否为整数Math.sign()判…...
python中import原理
0. 前言 在 python 中引入 Module 是再常见不过了,那么当我们 import 时它做了什么事情呢?它是如何加载 Module 使用的呢? 1. 什么是 module? 一般,Module 是一个后缀为 .py 的文件,其 module 名称一般…...

《Qt6开发及实例》6-4 显示SVG格式图片
目录 一、简介与设计 1.1 简介 1.2 设计 二、SvgWidget 2.1 鼠标滚轮事件 三、svgwindow 四、MainWindow 一、简介与设计 1.1 简介 1、SVG 的英文全称是 Scalable Vector Graphics,即可缩放的矢量图形。它是由万维网联盟(W3C)在 200…...

OpenGL ES 绘制一张图片
GLSL 语法与内建函数 GLSL 的修饰符与数据类型 GLSL 中变量的修饰符 const:修饰不可被外界改变的常量attribute:修饰经常更改的变量,只可以在顶点着色器中使用uniform:修饰不经常更改的变量,可用于顶点着色器和片段…...
Python 之 Pandas DataFrame 数据类型的行操作和常用属性和方法汇总
文章目录一、DataFrame 行操作1. 标签选取2. 数值型索引和切片3. 切片操作多行选取4. 添加数据行4.1 追加字典4.2 追加列表5. 删除数据行二、常用属性和方法汇总1. 转置2. axes3. dtypes4. empty5. columns6. shape7. values8. head() & tail()9. 修改列名 rename()10. inf…...
MacOS下载钉钉直播回放视频的Python最新解决方案
tags: Python MacOS Tips 写在前面 之前写过一篇关于用Charles抓包下载钉钉直播回放视频的方法, 那会还是可以直接通过FFmpeg下载m3u8链接并且直接合并的, 但是现在直接上FFmpeg会出现403, 所以还是用别的方法来做吧. 后来发现抓包找到的m3u8不是加密视频流, 那就直接下载ts…...

2023年测试人跳槽新功略,涨薪10K+
软件测试是如何实现涨薪的呢?很多人眼中的软件测试岗位可能是简单的,技术含量不是那么高,就是看看需求、看业务、设计文档、然后点一点功能是否实现,再稍微深入一点就是测试下安装部署时会不会出现兼容性问题,以及易用…...

RabbitMQ之Work Queues
Work Queues 工作队列(又称任务队列)的主要思想是避免立即执行资源密集型任务,而不得不等待它完成。相反我们安排任务在之后执行。我们把任务封装为消息并将其发送到队列。在后台运行的工作进程将弹出任务并最终执行作业。当有多个工作线程时,这些工作线程将一起处理这些任务…...

CRM哪家好?这5个CRM管理系统很好用!
CRM哪家好?这5个CRM管理系统很好用! CRM(Customer Relationship Management)即客户关系管理,能够帮助提高客户的价值、满意度、赢利性和忠实度,缩减销售周期和销售成本、增加收入、寻找扩展业务所需的新的市场和渠道,…...
国内ce认证机构有哪些 国内十大CE认证机构排名 做ce认证的公司推荐
CE认证,是任何企业的任何产品走进欧盟市场的硬性要求。挑选CE认证机构,一定要认准拥有正规资质的机构/企业,例如中国质量认证中心CQC、CVC威凯、CTI华测检测,以及TV南德认证、安博检测、万泰认证等。本文中,MaiGoo小编…...
多If函数封装的策略
在工作中我们经常遇到有多个if的判读函数,这是一件很正常的事情,如下: let order function (orderType, isPay, count) {if (orderType 1) {// 充值 500if (isPay true) {// 充值成功console.log(中奖100元)} else {if (count > 0) {c…...
238. 银河英雄传说
Powered by:NEFU AB-IN Link 文章目录238. 银河英雄传说题意思路代码238. 银河英雄传说 题意 有一个划分为 N列的星际战场,各列依次编号为 1,2,…,N 有 N艘战舰,也依次编号为 1,2,…,N,其中第 i号战舰处于第 i列。 有 T条指令,每…...

centos7 开机自启动自定义脚本
centos7 开机自启动自定义脚本背景配置自启动jar1.首先书写自启动脚本2.在rc.local中加入脚本reboot测试docker版本的自启动背景 项目中有遇到2个问题, 1: 使用java启动jar包 2: docker容器中自启动个服务。 这2个都要使用linux的开机自启动问…...

【Linux】动静态库的制作
🌠 作者:阿亮joy. 🎆专栏:《学会Linux》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉动静库和静…...

数据备份学习笔记2
Linux实现本地备份的命令: mkdir -p /root/backup/date "%Y-%m-%d" tar -zcvPf /root/backup/date "%Y-%m-%d"/test20230221.tar.gz /root/test20230221/ 我们再看下tar命令选项: tar -czvf txt3.tar.gz txt3 tar -xvf txt4.tar.g…...
webRTC
WebRTC是一种实时通信技术,可以在浏览器中实现音频、视频和数据的实时传输。WebRTC使用标准的API和协议,如RTCPeerConnection和RTCDataChannel等,可以实现点对点通信和多方会议等多种应用场景。WebRTC可以应用于Web前端、移动端和桌面端等多种…...

用Python搓一个黑洞
文章目录简介单位制观测绘图简介 黑洞图像大家都知道,毕竟前几年刚发布的时候曾火遍全网,甚至都做成表情包了。 问题在于,凭什么认为这就是黑洞的照片,而不是一个甜甜圈啥的给整模糊了得到的呢?有什么理论依据吗&…...

Spring MVC常用功能及注解
目录 一、什么是Spring MVC 1.1 Spring MVC定义 1.2 MVC定义 1.3 MVC和Spring MVC的关系 1.4 Spring MVC的作用 二、Spring MVC的使用 2.1 Spring MVC的创建和连接 2.1.1 RequestMapping注解 2.1.2 GetMapping注解 2.1.3 PostMapping注解 2.2 获取参数 2.2.1 获取单…...
shell 编程
文章目录一、shell 编程1.1. 脚本执行1.2. 变量1.3. 特殊变量1.4. 运算符1.5. for 循环1.6. while 循环1.7. case 语句1.8. read 命令1.9. if 判断1.10. 判断语句1.11. 自定义函数1.12. 脚本调试二、sed2.1. sed 选项2.2. sed function2.3. sed 删除(d 命令…...

Leetcode.1401 圆和矩形是否有重叠
题目链接 Leetcode.1401 圆和矩形是否有重叠 Rating : 1709 题目描述 给你一个以 (radius, xCenter, yCenter)表示的圆和一个与坐标轴平行的矩形 (x1, y1, x2, y2),其中 (x1, y1)是矩形左下角的坐标,而 (x2, y2)是右上角的坐标。 如果圆和矩…...
阿里140 补环境日志
所有属性值是 __cheng________ 都是我做的防止套代理 非140环境检测代码 这个日志绝大多数 是做和浏览器tostring结果 处理一致 方法: toString 函数: ...... 结果: ..... 当前代码补了事件和dom 实际手补 比这少些 下方为环境日志: VM526 vm.js:…...

超构光学与 AR 的深度融合 | 攻克 VAC 与眼动范围难题
原文信息 原文标题:“Three-dimensional varifocal meta-device for augmented reality display” 第一作者:宋昱舟,袁家琪,陳欽杪,刘小源 ,周寅,程家洛,肖淑敏*,陈沐…...

【Android】Android Studio项目代码异常错乱问题处理(2020.3版本)
问题 项目打开之后,发现项目文件直接乱码, 这样子的 这本来是个Java文件,结果一打开变成了这种情况,跟见鬼一样,而且还不是这一个文件这样,基本上一个项目里面一大半都是这样的问题。 处理方法 此时遇到…...

分布式锁-Redisson实现
目录 本地锁的局限性 Redisson解决分布式锁问题 在分布式环境下,分布式锁可以保证在多个节点上的并发操作时数据的一致性和互斥性。分布式锁有多种实现方案,最常用的两种方案是:zookeeper和redis,本文介绍redis实现分布式锁方案…...

Profinet 协议 IO-Link 主站网关(三格电子)
一、产品概述 1.1 产品用途 SG-PN-IOL-8A-001 网关是 Profinet 从转 IO-Link 主的网关设备 ,可以将 IO-Link 从站设备接入 Profinet 系统,通过该网关可实现传感器及驱动器与控制 器之间的信息交互。网关有两个百兆网口和 8 个 IO-Link 端口,两…...

《100天精通Python——基础篇 2025 第5天:巩固核心知识,选择题实战演练基础语法》
目录 一、踏上Python之旅二、Python输入与输出三、变量与基本数据类型四、运算符五、流程控制 一、踏上Python之旅 1.想要输出 I Love Python,应该使用()函数。 A.printf() B.print() C.println() D.Print() 在Python中想要在屏幕中输出内容,应该使用print()函数…...
高考:如何合理选择学科、专业以及职业
如何合理选择学科、专业以及职业 一、自我认知:明确自身兴趣与优势(一)兴趣探索(二)能力评估(三)价值观与目标 二、外部调研:深入了解学科、专业与职业(一)学…...
华为×小鹏战略合作:破局智能驾驶深水区的商业逻辑深度解析
当中国智能电动车竞争进入下半场,头部玩家的合纵连横正在重构产业格局。华为与小鹏汽车近日官宣的“战略合作”,表面看是技术互补的常规操作,实则暗藏改写行业游戏规则的深层商业逻辑。 一、技术破壁:从“单点突破”到“全栈协同”…...

Matlab回归预测大合集又更新啦!新增2种高斯过程回归预测模型,已更新41个模型!性价比拉满!
Matlab回归预测大合集又更新啦!新增2种高斯过程回归预测模型,已更新41个模型!性价比拉满! 目录 Matlab回归预测大合集又更新啦!新增2种高斯过程回归预测模型,已更新41个模型!性价比拉满…...

MQTTX连接阿里云的物联网配置
本文的目标是通过MQTTX的客户端,连接到阿里云的物联网的平台,发送温度信息,在阿里云的平台中显示出来。阿里云免费注册,免费有一个MQTT的服务器。有数量限制,但是对于测试来讲,已经足够。 1、注册阿里云的物…...