ES6 字符串/数组/对象/函数扩展

文章目录

  • 1. 模板字符串
    • 1.1 ${} 使用
    • 1.2 字符串扩展
      • (1) ! includes() / startsWith() / endsWith()
      • (2) repeat()
  • 2. 数值扩展
    • 2.1 二进制 八进制写法
    • 2.2 ! Number.isFinite() / Number.isNaN()
    • 2.3 inInteger()
    • 2.4 ! 极小常量值Number.EPSILON
    • 2.5 Math.trunc()
    • 2.6 Math.sign()
  • 3. 数组扩展
    • 3.1 扩展运算符
    • 3.2 Array.from()
    • 3.3 Array.of()
    • 3.4 find() / findIndex()
    • 3.5 fill()
    • 3.6 ! flat() / flatMap()
  • 4. 对象扩展
    • 4.1 对象简写
    • 4.2 对象属性 表达式
    • 4.3 扩展运算符 ...
    • 4.4 Object.assign()
    • 4.5 Object.is()
  • 5. 函数扩展
    • 5.1 参数默认值
    • 5.2 rest 参数
    • 5.3 name 属性
    • 5.4 ! 箭头函数

1. 模板字符串

之前字符串的痛点写法:

本来是 let oli = “

  • kerwin
  • ”; 如果字符串中间换行,那么字符串会断开: 在这里插入图片描述
    只有加上 \ 才可以: 在这里插入图片描述
    标签中间的内容如果想要是可变的,还需要将kerwin 换成变量,使用字符串拼接的方法进行书写,这种写法实在是很麻烦,现在可以采用一种新方法。(反引号:Tab键)

    在这里插入图片描述
    数组中数据可以使用遍历来获取,也可以通过使用数组的map 映射方法来获取。

    在这里插入图片描述
    在这里插入图片描述
    数组上传到页面中会强行的转换成字符串的形式,数据会被 “,” 隔开;
    在这里插入图片描述
    可以写为newlist.join(“”) 利用空字符串连接

    1.1 ${} 使用

    1. ${ 变量 } 替换了之前字符串拼接方式(引引加加);
    2. ${ 表达式 }
      在这里插入图片描述
    3. ${ 函数 }
      在这里插入图片描述

    1.2 字符串扩展

    (1) ! includes() / startsWith() / endsWith()

    1. includes()
      – 判断字符串中是否存在指定字符(串)
      在这里插入图片描述
      // true
      在这里插入图片描述
      // false
      在这里插入图片描述
      // true
      表示从字符串的索引 1 处开始查找

    2. startsWith()
      在这里插入图片描述
      // true
      startsWith() 同时也可以添加参数,与includes() 函数参数表示含义相同。

    3. endsWith()
      在这里插入图片描述
      // true
      在这里插入图片描述
      // true
      注意:endsWith() 在该处的含义是w 之前的部分是不是以r 结尾的。

    (2) repeat()

    let myname = kerwin

    在这里插入图片描述
    // kerwinkerwin
    //
    // kerwinkerwin
    //

    2. 数值扩展

    2.1 二进制 八进制写法

    在这里插入图片描述

    2.2 ! Number.isFinite() / Number.isNaN()

    减少全局性方法,使得语言逐步模块化

    1. Number.isFinite()
      在这里插入图片描述
    2. Number.isNaN()
      在这里插入图片描述
      它们与传统的全局方法isFinite() 和isNaN() 的区别在于,传统方法先调用Number(0将非数值的值转为数值,再进行判断,而这两个新方法只对数值有效,Number.isFinite() 对于非数值一律返回false ,Number.isNaN() 只有对于NaN才返回true ,非NaN一律返回false 。

    2.3 inInteger()

    inInteger() – 判断是否是整数
    在这里插入图片描述

    2.4 ! 极小常量值Number.EPSILON

    它表示1与大于1的最小浮点数之间的差,2.220446049250313e-16。

    function isEqual(a,b){
    return Math.abs (a-b)<Number.EPSILON
    3
    console.log(isEqual(0.1+0.2,0.3))//true
    conso1e.1og(0.1+0.2===0.3)//fa1se
    

    2.5 Math.trunc()

    将小数抹掉,返回一个整数

    console.log(Math.trunc(1.2))//1
    console.log(Math.trunc(1.8))//1
    console.log(Math.trunc(-1.8))//-1
    console.log(Math.trunc (-1.2))//-1
    

    2.6 Math.sign()

    Math.sign 方法用来判断一个数到底是正数、负数、还是零。对于非数值,会先将其转换为数值。

    Math.sign(-100)//-1
    Math.sign(100)//+1
    Math.sign(0)//+0Math.sign(-0)//-0
    Math.sign("kerwin")/NaN
    

    3. 数组扩展

    3.1 扩展运算符

    之前复制数组写法:在这里插入图片描述
    … 展开符写法:
    在这里插入图片描述
    利用解构赋值和… 展开符复制数组(浅复制):
    在这里插入图片描述

    3.2 Array.from()

    之前所说的arguments 是类数组结构,不能使用filter() 等方法,但是现在可以使用Array.from() 将类数组结构转换成真数组,就可以使用相关数组方法来。
    在这里插入图片描述

    3.3 Array.of()

    可以将一组值转换成数组,
    在这里插入图片描述
    // [ ] (一个长度为3 的空数组)
    // [ 3 ]

    3.4 find() / findIndex()

    1. find() / findIndex() – 正着寻找
      在这里插入图片描述
      // 14
      // 3
    2. findLast() / findLastIndex()
      这两个方法在ES13出现。

    // 15
    // 4

    3.5 fill()

    在这里插入图片描述
    // [‘kerwin’,‘kerwin’,‘kerwin’]
    // [11,‘kerwin’,33]

    3.6 ! flat() / flatMap()

    在这里插入图片描述
    // [1,2,3,Array(3)] [1,2,3,4,5,6]

    数组数据为对象时使用flat() :
    在这里插入图片描述
    // {…}, {…}

    使用flatMap() :
    // [‘安庆’,‘安阳’,‘鞍山’,‘北京’,·‘保定’,‘包头’]

    4. 对象扩展

    4.1 对象简写

    1. 函数简写:
      在这里插入图片描述
      在这里插入图片描述

    在这里插入图片描述
    简写为
    let obj = {
    name,

    }

    4.2 对象属性 表达式

    在这里插入图片描述
    // {a: ‘kerwin’}
    [ ]也可以进行字符串拼接:[name+‘bc’]等

    4.3 扩展运算符 …

    对象扩展运算符 … ES9才出现
    在这里插入图片描述
    // {name: “tiechui”, age: “100”, }
    对象展开合并遇到同名属性后者回复该前者的属性值!

    4.4 Object.assign()

    在这里插入图片描述
    // {name: “tiechui”, age: “100”}

    此处与对象扩展符不同的是,对象扩展符例子中obj1 的name 属性值在对象合并展开时不会发生改变;而此处则会发生改变。

    如果不想要obj1 的属性值发生改变,可以使用以下方法:
    在这里插入图片描述

    4.5 Object.is()

    判断两个数是否相等

    1. 判断NaN 和NaN 是否相等
      之前使用== 和 === 判断NaN==/===NaN结果都为false ;
      在这里插入图片描述

    // true
    // false
    // false
    // true

    1. 判断+0 和-0 是否相等
      在这里插入图片描述
      // false
      // true

    5. 函数扩展

    5.1 参数默认值

    在这里插入图片描述
    // aaa get true
    // bbb get true

    5.2 rest 参数

    rest 参数 形式是“… 变量名”

    function test(data){console.log(data);}test(1, 2, 3, 4, 5)
    

    // 1

    function test(...data){console.log(data);}test(1, 2, 3, 4, 5)
    

    // Array(5)

    5.3 name 属性

    在这里插入图片描述
    // test

    5.4 ! 箭头函数

    箭头函数写法简洁!
    语法格式:
    在这里插入图片描述

    1. 函数{ }中只有return 语句,写法更加简洁:
      在这里插入图片描述
      在这里插入图片描述

    2. 如果返回对象时需要注意: 使用( ) 将返回的对象括起来
      在这里插入图片描述
      // {name:‘kerwin’,age:100}

    3. 只有一个参数可以省略( )
      在这里插入图片描述

    4. 无法访问arguments,无法new
      在这里插入图片描述

    5. !没有this(也有说法说是指向了它的父作用域)
      普通函数的痛点:
      在函数内部定义定时器,定时器中的this 指向window
      在这里插入图片描述
      // window
      // 发送undefined到后端,获取列表数据

    在这里插入图片描述
    使用箭头函数:
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/772755.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv9改进策略:注意力机制 | 动态稀疏注意力的双层路由方法BiLevelRoutingAttention | CVPR2023

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文改进内容&#xff1a; CVPR2023 动态稀疏注意力的双层路由方法BiLevelRoutingAttention&#xff0c;强烈推荐&#xff0c;涨点很不错&#xff0c;同时被各个领域的魔改次数甚多&#xff0c;侧面验证了性能。 &#x1f4a1;&#x1…

我们该如何优化迭代自己?

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 一款软件如果想变得完美&#xff0c;那么肯定需要不断的试运行和更新迭代。 我们和软件一样&#xff0c;生活中难免会有错误的决策&#xff0c;失误的事件&#xff0c;为了能够解决我们自身存在的BUG&#xff0c;我们该…

设计用于驱动12 V汽车接地负载,VN5E160ASTR、VND5E160MJTR、VND5E025AKTR、VND5E050ACKTR 单/双通道高侧驱动器

摘要 意法半导体VIPower系列高侧开关符合汽车应用要求&#xff0c;内嵌先进的控制功能&#xff0c;其新型保护机制适用于各种负载类型及额定功率。 此类开关是汽车系统的理想选择&#xff0c;如&#xff1a;接线盒、内部/外部照明、直流电机驱动等&#xff0c;并适用于任何需…

基于nodejs+vue基于协同过滤算法的私人诊python-flask-django-php

实现后的私人诊所管理系统基于用户需求分析搭建的&#xff0c;并且会有个人中心&#xff0c;患者管理&#xff0c;医生管理&#xff0c;科室管理&#xff0c;出诊医生管理&#xff0c;预约挂号管理&#xff0c;预约取消管理&#xff0c;病历信息管理&#xff0c;药品信息管理&a…

qt事件机制学习笔记

实现闹钟功能 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget), speecher(new QTextToSpeech(this)) //给语音播报者实例化空间 {ui->setupUi(this); }Widget::~Widget() {delete …

【GameFramework框架内置模块】18、界面(UI)

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址QQ群&#xff1a;398291828 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 【GameFramework框架】系列教程目录&#xff1a;…

WebGIS开发应该从哪些方面做准备

工程化思想 环境配置项目构建npm&#xff1a;Node包管理器&#xff0c;是 JavaScript 运行时 Node.js 的默认程序包管理器。 https://www.freecodecamp.org/chinese/news/what-is-npm-a-node-package-manager-tutorial-for-beginners/新建一个前端工程项目&#xff1a;前端框…

在项目中数据库如何优化?【MySQL主从复制(创建一个从节点复制备份数据)】【数据库读写分离ShardingJDBC(主库写,从库读)】

MySQL主从复制 MySQL主从复制介绍MySQL复制过程分成三步&#xff1a;1). MySQL master 将数据变更写入二进制日志( binary log)2). slave将master的binary log拷贝到它的中继日志&#xff08;relay log&#xff09;3). slave重做中继日志中的事件&#xff0c;将数据变更反映它自…

Vue 02 组件、Vue CLI

Vue学习 Vue 0201 组件引入概念组件的两种编写形式① 非单文件组件基本使用使用细节组件嵌套组件本质 VueComponent重要的内置关系 ② 单文件组件 02 Vue CLI介绍 & 文档安装使用步骤脚手架结构render默认配置ref 属性props配置mixin配置项插件scoped 样式案例&#xff1a;…

MySQL将id相同的两行数据合并group_concat

MySQL将id相同的两行数据合并 group_concat这个函数能将相同的行组合起来&#xff0c;省老事了。 MySQL中group_concat函数 完整的语法如下&#xff1a; group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符’]) 1.基本查询 Sql代码 2.…

java Web会议信息管理系统 用eclipse定制开发mysql数据库BS模式java编程jdbc

一、源码特点 jsp 会议信息管理系统是一套完善的web设计系统&#xff0c;对理解JSP java SERLVET mvc编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发&#xff0c;数据库为Mysql5.0&am…

ActiveMQ-04如何搭建一个完美的ActiveMQ集群

集群架构是一个很大的话题&#xff0c;官网就给我们介绍了几种 客户端&#xff1a;队列消费者集群-Queue Consumer Clusters服务端&#xff1a;Broker集群 - Broker Clusters 静态发现动态发现 服务端&#xff1a;Master-Slave 主从集群 Shared File System Master SlaveJDBC …

力扣hot100:207. 课程表

这是一道拓扑排序问题&#xff0c;也可以使用DFS判断图中是否存在环。详情请见&#xff1a;官方的BFS算法请忽略&#xff0c;BFS将问题的实际意义给模糊了&#xff0c;不如用普通拓扑排序思想。 数据结构&#xff1a;图的拓扑排序与关键路径 拓扑排序&#xff1a; class Sol…

鸿蒙APP开发实战:【Api9】拍照、拍视频;选择图片、视频、文件工具类

鸿蒙开发过程中&#xff0c;经常会进行系统调用&#xff0c;拍照、拍视频、选择图库图片、选择图库视频、选择文件。今天就给大家分享一个工具类。 1. 话不多说&#xff0c;先展示样式 2.设计思路 根据官方提供的指南开发工具类&#xff0c;基础的拍照、拍视频、图库选照片、…

【软考】设计模式之状态模式

目录 1. 说明2. 应用场景3. 结构图4. 构成5. 优缺点5.1 优点5.2 缺点 6. java示例6.1 非状态模式6.1.1 问题分析6.1.2 接口类6.1.2 实现类6.1.3 客户端6.1.4 结果截图 6.2 状态模式6.2.1 抽象状态类6.2.2 状态类6.2.3 上下文类6.2.4 上下文类 1. 说明 1.允许一个对象在其内部状…

ArcGIS矢量裁剪矢量

一、利用相交工具 Arctoolbox工具一分析工具一叠加分析一相交

react native

简介 React Native 就是使用React和应用平台的原生功能来构建 Android 和 iOS 应用的开源框架。在 Android 和 iOS 开发中&#xff0c;一个视图是 UI 的基本组成部分&#xff0c;React 组件通过 JavaScript 来调用这些视图。可以构建自己的 Native Components(原生组件)&#…

C# wpf 嵌入hwnd窗口

WPF Hwnd窗口互操作系列 第一章 嵌入Hwnd窗口&#xff08;本章&#xff09; 第二章 嵌入WinForm控件 第三章 嵌入WPF控件 文章目录 WPF Hwnd窗口互操作系列前言一、如何实现1、继承HwndHost2、实现抽象方法3、xaml中使用HwndHost控件 二、具体实现1、Win32窗口2、HwndSource窗…

思腾合力出席文化和旅游虚拟现实应用推广交流活动并作主题演讲

3月21日&#xff0c;由文化和旅游部产业发展司主办&#xff0c;中国信息通信研究院、北京市石景山区文化和旅游局、中国动漫集团有限公司承办的“数字赋能文旅场景建设行动——文化和旅游虚拟现实应用推广交流活动”在北京首钢一高炉SoReal科幻乐园成功举办。 思腾合力CMO徐莉受…

【第028篇】用IDEA打开并运行Eclipse创建的项目

下图我使用的是2021版本的idea 一、 导入 首先&#xff0c;点击左上方【File】-【New】-【Project from Existing Sources】 在目录中选择自己要导入的eclipse动态项目&#xff1b; 3、这里选择【import project from external model】&#xff0c;再选择【eclipse】&#…