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)//+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到后端,获取列表数据

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥-数位排序

目录 题目链接&#xff1a; 思路&#xff1a; 代码&#xff1a; 题目链接&#xff1a; 0数位排序 - 蓝桥云课 (lanqiao.cn) 思路&#xff1a; 自定义排序比较函数 用一个函数来求某个数的数位和 sum&#xff08;&#xff09; 用一个函数&#xff0c;自定义排序比较函数…

说说2024年度孝感建筑类初中级职称申报评审

说说2024年度孝感建筑类初中级职称申报评审 认真看&#xff0c;错过了就失去2024年申报孝感中级职称评审的机会。孝感中级职称申报评审一年两次&#xff0c;上半年一次&#xff0c;下半年一次。注意&#xff01;职称水平能力测试是重点。 建筑类职称水平能力测试一年就一次机…

【精简】Spring笔记

文章目录 跳转链接&#xff08;学习路线&#xff09;及前言&#xff08;更新中&#xff09; 快速入门配置文件详解依赖注入(bean实例化)自动装配集合注入使用spring加载properties文件容器注解开发bean管理注解开发依赖注入第三方bean整合mybatis整合junit AOP入门案例切入点表…

1.Git快速入门

文章目录 Git快速入门1.Git概述2.SCM概述3.Git安装3.1 软件下载3.2 软件安装3.3 软件测试 Git快速入门 1.Git概述 Git是一个免费的&#xff0c;开源的分布式版本控制系统&#xff0c;可以快速高效地处理从小型到大型的各种项目&#xff0c;Git易于学习&#xff0c;占用空间小&…

全面剖析Java多线程编程,抢红包、抽奖实战案例

黑马Java进阶教程&#xff0c;全面剖析Java多线程编程&#xff0c;含抢红包、抽奖实战案例 1.什么是多线程&#xff1f; 2.并发与并行 CPU有这些&#xff0c;4,8,16,32,64 表示能同时进行的线程 3.多线程的第一种实现方式 package com.itheima.reggie;/*** Author lpc* Date …

关系型数据库mysql(7)sql高级语句

目录 一.MySQL常用查询 1.按关键字&#xff08;字段&#xff09;进行升降排序 按分数排序 &#xff08;默认为升序&#xff09; 按分数升序显示 按分数降序显示 根据条件进行排序&#xff08;加上where&#xff09; 根据多个字段进行排序 ​编辑 2.用或&#xff08;or&…

Word通配符替换章节序号

这里写自定义目录标题 通配符替换章节序号切换域通配符替换内容插入编号切换域代码 通配符替换章节序号 碎片化学习word通配符知识 切换域 切换域&#xff1a;Alt F9 域都变成静态文字&#xff1a;Ctrl/Command Shift F9 通配符 内容通配符单个数字[0-9]多个数字&#…

【python从入门到精通】-- 第二战:注释和有关量的解释

&#x1f308; 个人主页&#xff1a;白子寰 &#x1f525; 分类专栏&#xff1a;python从入门到精通&#xff0c;魔法指针&#xff0c;进阶C&#xff0c;C语言&#xff0c;C语言题集&#xff0c;C语言实现游戏&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 坚持创作博文…

每天上万简历,录取不到1%!阿里腾讯的 offer 都给了哪些人?

三月天杨柳醉春烟~正是求职好时节~ 与去年秋招的冷淡不同&#xff0c;今年春招市场放宽了许多&#xff0c;不少企业纷纷抛出橄榄枝&#xff0c;各大厂的只差把“缺人”两个字写在脸上了。 字节跳动技术方向开放数10个类型岗位&#xff0c;研发需求占比60%&#xff0c;非研发新增…

【数据结构与算法】java有向带权图最短路径算法-Dijkstra算法(通俗易懂)

目录 一、什么是Dijkstra算法二、算法基本步骤三、java代码四、拓展&#xff08;无向图的Dijkstra算法&#xff09; 一、什么是Dijkstra算法 Dijkstra算法的核心思想是通过逐步逼近的方式&#xff0c;找出从起点到图中其他所有节点的最短路径。算法的基本步骤如下&#xff1a;…

【剑指offr--C/C++】JZ22 链表中倒数最后k个结点

一、题目 二、思路及代码 遍历链表并存入vector容器&#xff0c;通过下标取出对应位置元素或者返回空 /*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) : val(x), next(nullptr) {}* };*/ #include <cstddef> #include <iterator> #…

轻松搞定!使用Python操作 xlsx 文件绘制饼图

今天&#xff0c;跟大家一起来学习用Python操作xlsx文件&#xff0c;然后绘制了一个饼图。你知道吗&#xff0c;这个过程居然比我想象中的还要简单&#xff01;只需要几行代码&#xff0c;就能轻松搞定&#xff01; 首先&#xff0c;安装一个叫做openpyxl的库&#xff0c;它可…

住在我心里的猴子:焦虑那些事儿 - 三余书屋 3ysw.net

精读文稿 您好&#xff0c;本期我们解读的是《住在我心里的猴子》。这是一本由患有焦虑症的作家所著&#xff0c;关于焦虑症的书。不仅如此&#xff0c;作者的父母和哥哥也都有焦虑症&#xff0c;而作者的母亲后来还成为了治疗焦虑症的专家。这本书的中文版大约有11万字&#x…

C++初阶:容器适配器stack与queue

目录 1. stack与queue的使用练习1.1 stack的常用接口&#xff08;栈&#xff09;1.2 queue常用接口&#xff08;队列&#xff09;1.3 priority_queue的常用接口&#xff08;堆&#xff09; 2. 容器适配器2.1 栈的实现2.2 队列的实现3. 堆&#xff08;priority_queue&#xff09…

在Python Matplotlib中让X轴标签向右对齐并且向右稍微移动一些距离

在Python Matplotlib中让X轴标签向右对齐并且向右稍微移动一些距离 在Matplotlib中画图时&#xff0c;当x轴标签很长时&#xff0c;我们通常会使用rotation对标签进行倾斜显示。但是这个时候有些标签&#xff08;长度过长的&#xff0c;例如很长的单词&#xff09;会重叠。这个…

MySQL驱动Add Batch优化实现

MySQL 驱动 Add Batch 优化实现 MySQL 驱动会在 JDBC URL 添加 rewriteBatchedStatements 参数时&#xff0c;对 batch 操作进行优化。本文测试各种参数组合的行为&#xff0c;并结合驱动代码简单分析。 batch参数组合行为 useServerPrepStmts 参数 PreparedStatement psmt…

设置MATLAB三维绘图的视角

MATLAB三维绘图plot3在生成绘图后&#xff0c;默认显示视角是斜着的&#xff1a; 使用view(2)命令可以使其转成XoY平面&#xff08;从上往下看的视角&#xff09;&#xff1a;

推荐多样性 - 华为OD统一考试(C卷)

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 200分 题解&#xff1a; Java / Python / C 题目描述 推荐多样性需要从多个列表中选择元素&#xff0c;一次性要返回N屏数据&#xff08;窗口数量&#xff09;&#xff0c;每屏展示K个元素&#xff08;窗口大小&#…

深度强化学习(十)(TRPO)

深度强化学习&#xff08;十&#xff09;&#xff08;TRPO与PPO&#xff09; 一.信赖域方法 原问题&#xff1a; maxmize J ( θ ) \text{maxmize} \qquad\qquad J(\theta) maxmizeJ(θ) J J J是个很复杂的函数&#xff0c;我们甚至可能不知道 J J J 的解析表达式&#xff…

【Entity Framework】 EF三种开发模式

【Entity Framework】 EF三种开发模式 文章目录 【Entity Framework】 EF三种开发模式一、概述二、DataBase First2.1 DataBase First简介2.2 DataBase First应用步骤2.3 DataBase First总结 三、Model First3.1 Model First简介3.2 Model First实现步骤 四、Code First4.1 Cod…