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

news2024/11/23 4:28:13

文章目录

  • 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)//+0
    
    Math.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.coloradmin.cn/o/1546895.html

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

相关文章

力扣hot100:207. 课程表

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

详解:写作和赚钱的 4 个关系!看完你一定会忍不住想开始写!

飞书文档的加密很强&#xff0c;也没有和自家的豆包大模型融合&#xff0c;所以只能通过其他方式获取文档的内容。 &#xff08;1&#xff09;将飞书文档转换为PDF&#xff0c;要用到浏览器插件&#xff1a; GoFullPage - Full Page Screen Capture - Microsoft Edge Addons …

ElasticSearch启动报错:Exception in thread “main“ SettingsException

Exception in thread "main" SettingsException[Failed to load settings from [elasticsearch.yml]]; nested: ParsingException[Failed to parse object: expecting token of type [START_OBJECT] but found [VALUE_STRING]]; 这个报错说明elasticsearch.yml这个配…

垃圾回收:垃圾回收器

目录 垃圾回收器 评估GC的性能指标 7种典型的垃圾回收器 Serial回收器&#xff1a;串行回收 ParNew回收器&#xff1a;并行回收 Parallel回收器&#xff1a;吞吐量优先 CMS回收器&#xff1a;低延迟 G1回收器&#xff1a;区域化分代式 G1回收过程1-年轻代GC G1回收过程…

Java代码基础算法练习-报数问题-2024.03.26

任务描述&#xff1a; 有n个人围成一个圆圈分别编号1~n,从第1个到m循环报数&#xff0c;凡是报到m者离开&#xff0c;求n个 人离开圆圈的次序。 任务要求&#xff1a; 代码示例&#xff1a; package M0317_0331;import java.util.ArrayList; import java.util.List; import j…

档案室升级改造基建方面需要考虑哪些问题

升级和改造档案室可能需要以下材料&#xff1a; 1. 墙壁和地板材料&#xff1a;选择耐用、易于清洁的材料&#xff0c;如瓷砖、大理石、地板、木材或维护低的地毯等。 2. 墙体材料&#xff1a;可能需要新的墙壁材料来分隔出更多的空间&#xff0c;例如石膏板、砖块或玻璃隔断等…

基于RAG的大模型知识库搭建

什么是RAG RAG(Retrieval Augmented Generation)&#xff0c;即检索增强生成技术。 RAG优势 部分解决了幻觉问题。由于我们可以控制检索内容的可靠性&#xff0c;也算是部分解决了幻觉问题。可以更实时。同理&#xff0c;可以控制输入给大模型上下文内容的时效性&#xff0c…

【Java程序设计】【C00369】基于(JavaWeb)Springboot的笔记记录分享平台(有论文)

[TOC]() 博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;已经做了六年的毕业设计程序开发&#xff0c;开发过上千套毕业设计程序&#xff0c;博客中有上百套程序可供参考&#xff0c;欢迎共同交流学习。 项目简介 项目获取 &#x1f345;文末点击…

PTA L2-034 口罩发放

为了抗击来势汹汹的 COVID19 新型冠状病毒&#xff0c;全国各地均启动了各项措施控制疫情发展&#xff0c;其中一个重要的环节是口罩的发放。 某市出于给市民发放口罩的需要&#xff0c;推出了一款小程序让市民填写信息&#xff0c;方便工作的开展。小程序收集了各种信息&…

【MySQL】数据库--库操作

目录 一、创建数据库 二、打开数据库 三、修改数据库 四、显示数据库 五、删除数据库 六、备份与恢复数据库 1.备份&#xff1a; 2.恢复&#xff1a; 一、创建数据库 CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,create_specification] …] [DEF…

基于springboot的交通管理在线服务系统的开发

传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装交通管理在线服务系统软件来发挥其高效地信息处理的作用&#xff0…

私域必看:让多微信管理事半功倍的妙招!

微信作为中国最大的社交平台之一&#xff0c;是成为私域流量的重要入口。然而&#xff0c;随着私域流量管理的需求增加&#xff0c;如何高效管理多个微信号成为许多企业或是个人的烦恼。 下面就教大家几招&#xff0c;让大家在管理多个微信号时都能事半功倍&#xff0c;轻松把…

xxl-job 适配人大金仓数据库 V8R6

前言 由于一些众所周知的原因&#xff0c;项目需要需要进行改造使其适配人大金仓的数据库。 xxl-job适配人大金仓 特此说明&#xff1a; 当前修改的xxl-job版本 为 2.4.1-SNAPSHOT mysql上的xxl-job库 迁移到 人大金仓数据库上pom中新增依赖 kingbase8 驱动 注意版本<!-…

分布式系统CAP理论

1、什么是CAP理论 C是Consistency(强一致性)、A是Availability(可用性)、P是Partition Tolerance(分区容错性)&#xff0c;一个分布式系统不可能同时很好的满足—致性、可用性和分区容错性这三个需求&#xff0c;不能同时成立&#xff0c;最多只能同时满足其中的两项&#xff…

Vue3使用v-if指令进行条件渲染

Vue3使用v-if指令进行条件渲染 条件渲染是根据条件的真假来有条件地渲染元素。在Vue.js 3.x中&#xff0c;常见的条件渲染包括使用v-if指令和v-show指令。本文讲解使用v-if指令进行条件渲染。 2.3.1 v-if/v-else-if/v-else 在Vue中使用v-if、v-else-if和v-else指令实现条件…

虚拟机VMware分屏操作

虚拟机VMware分屏操作 打开虚拟机设置&#xff0c;选择监视器设置&#xff0c;监视器数量就是要分屏的数量&#xff0c;因为我使用的是两个显示器&#xff0c;所以选择二&#xff0c;下面的分辨率选择自己使用分屏显示器的最大分辨率。 启动虚拟机&#xff0c;打开后选择循环…

为什么建议你尽快入局鸿蒙?

鸿蒙生态的迅速崛起&#xff0c;为广大开发者带来了前所未有的机遇和挑战。尤其是 2024 年&#xff0c;这个被称为“鸿蒙元年”的关键时刻&#xff0c;程序员一定要抓紧机遇&#xff0c;尽早入局鸿蒙&#xff01; 1、市场需求激增 截至 2023 年四季度&#xff0c;HarmonyOS 在…

CAPL - 如何实现弹窗提示和弹窗操作(续)

目录 函数介绍 openPanel closePanel 代码示例 1、简单的打开关闭panel面板

本地大模型(免安装绿色版)

上一篇文章我们讨论了如何在本地运行大模型 。 安装本地大模型 大部分软件都需要安装&#xff0c;今天是免安装绿色版。 很多人下载不了原版&#xff0c;所以我放百度网盘了。 下载 下载&#xff1a;llava-1.5大模型(7b参数,流量警告:4G) 运行&#xff1a;.\llava-v1.5-7b-…

鸿蒙OS实战:【module的使用】

在开发HarmonyOS应用时&#xff0c;默认创建的工程会有一个entry module&#xff0c;实际应用场景为了代码或者功能解耦&#xff0c;我们需要用到module来进行隔离。根据鸿蒙3.0/3.1/4.0官方指导&#xff0c;我们可以了解到关于module的类型&#xff0c;以及依赖关系&#xff0…