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,一经查实,立即删除!

相关文章

【Go】八、Gin 入门使用简介

GIN GIN 是一个高性能&#xff0c;简单易用的轻量级 WEB 框架 快速尝试 package mainimport ("github.com/gin-gonic/gin""net/http" )func pong(c *gin.Context) {// 这里的 gin.H 是 map[string]interface{} 的缩写c.JSON(http.StatusOK, gin.H{"…

Spring Cloud Gateway 3.x 获取body中的数据鉴权

前言 SpringCloud Gateway建立在Spring Framework5、Project Reactor和Spring Boot2.0之上&#xff0c;使用WebFlux非阻塞API 什么是WebFlux? 官网&#xff1a;https://docs.spring.io/spring-framework/docs/current/reference/html/web-reactive.html 传统的Web框架&…

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;并适用于任何需…

[JAVA]12.ArrayList

一、ArrayList 1.1ArrayList类概述 - 什么是集合 ​ 提供一种存储空间可变的存储模型&#xff0c;存储的数据容量可以发生改变 - ArrayList集合的特点 ​ 底层是数组实现的&#xff0c;长度可以变化 - 泛型的使用 ​ 用于约束集合中存储元素的数据类型 1.2ArrayList类常…

基于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;…

Spark SQL 数据源

Spark SQL 数据源 Spark SQL支持读取很多种数据源&#xff0c;比如parquet文件&#xff0c;json文件&#xff0c;文本文件&#xff0c;数据库等。下面列出了具体的一些数据源&#xff1a; Parquet文件Orc文件Json文件Hive表JDBC 先把people.json导入到hdfs的tmp目录下。peop…

多模态模型学习1——CLIP对比学习 语言-图像预训练模型

多模态模型学习1——CLIP对比学习 语言-图像预训练模型 1.背景介绍 随着互联网的快速发展&#xff0c;图像和文本数据呈现爆炸式增长。如何有效地理解和处理这些多模态数据&#xff0c;成为人工智能领域的一个重要研究方向。多模态模型学习旨在通过联合学习图像和文本表示&am…

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.…

MYSql通过FULLTEXT实现全文检索

FULLTEXT 是关系型数据库管理系统&#xff08;如 MySQL&#xff09;中用于全文检索的功能。它允许用户在表中的文本列上执行全文搜索。以下是 FULLTEXT 索引的工作原理和实现全文检索的方法&#xff1a; 1. **创建全文索引**&#xff1a; 在关系型数据库中&#xff0c;你可以为…

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 …

Github 2024-03-26 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-03-26统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目3TypeScript项目3Jupyter Notebook项目2C++项目1GDScript项目1Lua项目1Solidity项目1Open Interpreter: 本地代码运行和自然语言界面…

Android release 混淆编译 private、protected自动变public问题解决

场景&#xff1a; 用assembleRelease编译aar的时候&#xff0c;成员变量private、protected自动变public&#xff1b; 用assembleDebug编译aar&#xff0c;则正常&#xff0c;于是对比了build.gradle&#xff0c;发现debug没启用混淆&#xff0c; release版本启动了混淆 解决…