es6新特性总结及使用说明

article/2025/11/10 17:52:46

目录

简介

新特性说明

let语法

const语法 

解构赋值

模板字符串

对象简写

对象操作--深拷贝

箭头函数

小结


简介

        1. ECMAScript 6.0是 JavaScript 语言的下一代标准, 2015 年 6 月发布。 ES6 设计目标是达到 JavaScript 语言可以用来编写复杂的大型程序,成为企业级开发语 言 。ECMAScript 和 JavaScript 的关系是:ECMAScript 是 JavaScript 的规范/规则,JavaScript 是 ECMAScript 的一种实现。


新特性说明

        下面将会使用代码和文字来对es6常见新特性进行说明。

let语法

        在js中,var语法较为松散,不利于标准化开发,于是就有了语法严格的let语法,let语法主要有以下3特点:

  1. let声明的变量有严格的作用域
  2. let只能声明一次,var可以声明多次
  3. let不存在变量提升,var存在变量提升
    <script>// 1. let 声明的变量有严格局部作用域{let a = 123;}console.log(a);// 2. let 只能声明一次, var 可以声明多次let b1 = 0;let b1 = 1;var b2 = 0;var b2 = 1;// 3. let 不存在变量提升, var 存在变量提console.log(a1)let a1 = 1;console.log(b3)var b3 = 1;</script>


const语法 

        const的作用就是定义常量,这个和常量主要有以下2个注意点

  1. 常量定义时,必须要进行赋值
  2. 常量的值不能进行修改,如果是引用,那么引用不能修改
    <script>// 1 常量在定义时,需要赋值// 2 常量赋值后不能修改const a = 1;// a = 2; 不能二次赋值console.log(a)const tom = {name:'tom',age:18};tom.age = 15;</script>

解构赋值

        解构赋值是对赋值运算符的扩展。是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值,主要有2种形式,数组解构和对象解构。

  1. 数组结构模板就是 [a,b,c] = [1,2,3,4],如果这样写,a=1,b=2,c=3。
  2. 对象结构模板就是 {name,age} = dog,dog是一个对象,如果dog有name和age属性,那么就会赋值给前面的{}里面的name和age,如果没有,那么前面的值就是undefined
    <script>// 数组解构let arr = [1, 2, 3, 4];let [a, b] = arr;console.log(a, b);// 对象解构let dog = {name: '旺财',hobby: '骨头',age: '1'}let {name, age1} = dog;console.log(name, age1)</script>

模板字符串

        我们使用模板字符串技术可以替代掉以前的大量拼接字符串的操作,我们使用``来代替'',模板字符串主要有以下特点

  1. 使用``来将字符串进行包裹,可以直接当作普通字符串使用‘
  2. 在字符串里面进行换行操作,最终输出也会有换行,也就是会保留/n
  3. 可以直接在字符串中插入变量,使用${}实现
  4. 在${}中可以使用函数
    <script>// 1 模板字符串使用反引号 ` 将字符串包裹// 2 可作为普通字符串// 3 可用来定义多行字符串,即可以将换行字符串原生输出let name = `        for(int i = 0; i < 10; i++){System.out.println("ok");}`;console.log(name)// 4 字符串插入变量和表达式, 使用 ${}let num = 123;let str = `num is ${num}`;console.log(str)// 5 字符串中调用函数function sayHi(name) {return `hi ${name}`;}console.log(`函数返回:${sayHi('jack')}`)</script>

对象简写

        我们定义对象属性和函数一般都是key:value,key:function形式,我们可以使用es6的新特性来进行简写。

  1. 属性简写:如果前面定义了一个变量name = 'jack',当我们创建对象时,正常的写法是name:name,比较奇怪,于是我们就可以直接写为name
  2. 函数简写:正常情况下,我们定义函数是 函数名:function(){},我们在es6中可以简写为 函数名(){};
    <script>// 属性简写let name = 'tom';let age = 18;let tom = {name, age};console.log("tom:", tom);// 方法简写let dog = {name: '旺财',call() {console.log(`${this.name} 汪汪汪~~`);}}dog.call();</script>

对象操作--深拷贝

        我们知道,对数组和对象进行深拷贝是比较麻烦的操作,在es6中我们可以直接使用语法特性来完成操作。

  1. 数组深拷贝:语法为 数组名 = [...要拷贝的数组名]
  2. 对象深拷贝:语法为 对象名 = {...要拷贝的对象名}
    <script>// 数组深拷贝let nums1 = [1, 2, 3];let nums2 = [...nums1];nums1[0] = 456console.log("nums1:  " + nums1);console.log("nums2:  " + nums2);// 对象深拷贝let dog1 = {name: '旺财', age: 1};let dog2 = {...dog1};dog1.name = '大黑';console.log('dog1:', dog1);console.log('dog2:', dog2);// 对象合并let tom = {name: 'tom', age: 18};let car = {name: '奔驰', color: 'pink'};let car_tom = {...car,...tom};console.log("car_tom",car_tom);// car_tom.name为tom的名字,因为tom后拷贝进来,将car的name覆盖了console.log(car_tom.name);</script>

箭头函数

        es6中引入了箭头函数,箭头函数相比普通函数,写法更加的简洁,写法一般为(参数)=>{代码},主要有以下特点

  1. 基本语法:(参数列表) => {函数体}
  2. 箭头函数没有参数或有多个参数,要用 () 括起来,箭头函数只有一个参数, 可以省略()
  3. 箭头函数函数体有多行语句,用 {} 包裹起来,表示代码块
  4. 函数体只有一行语句,并且需要返回结果时,可以省略 {} , 结果会自动返回
  5. 箭头函数多用于匿名函数的定义
  6. this始终表示定义箭头函数的对象
    <script>// 1. 箭头函数提供更加简洁的函数书写方式。// 2. 基本语法是:(参数列表) => { 函数体 }let func1 = (name) => {return 1};// 3. 箭头函数没有参数或有多个参数,要用 () 括起来,箭头函数只有一个参数, 可以省略()let fun2 = () => {return 1};let fun3 = name => {return 1};// 4. 箭头函数函数体有多行语句,用 {} 包裹起来,表示代码块let fun5 = () => {console.log('多行语句用{}包裹起来');return 1;}// 5. 函数体只有一行语句,并且需要返回结果时,可以省略 {} , 结果会自动返回let fun4 = name => 1;// 6. 箭头函数多用于匿名函数的定义</script>

this问题探讨

        在常规函数中,关键字 this 表示调用该函数的对象,可以是窗口、文档、按钮或其他任何东西。对于箭头函数,this 关键字始终表示定义箭头函数的对象。

    <script>window.onload = function () {function f1() {console.log("f1  ", this)}let f2 = () => {console.log("f2  ", this)}document.getElementById('btn1').onclick = f1;document.getElementById('btn2').onclick = f2;}</script>
<body><button id="btn1">点我调用f1</button><button id="btn2">点我调用f2</button>
</body>

         可以发现普通函数的this是调用函数者,而箭头函数this表示的是定义函数的对象。


小结

        es6的新特性很多,这里仅仅介绍了一些常用的,其中使用最多的是箭头函数,当然Promise这个非常重要的没有介绍,由于这个内容很多,单独写一篇文章介绍。如果想要了解更多es6的新特性,请自行网上进行查阅。


http://chatgpt.dhexx.cn/article/EVLm6MSI.shtml

相关文章

ES6有哪些新特性

ES6有哪些新特性(1)变量声明:由var变为let和const; (2)模板字符串:使用反引号;在模板字符串里面支持换行,并可以在里面使用${}来包裹一个变量或表达式; (3)解构:有数组解构和对象解构;可以快速获取数组和对象的值; (4) 展开运算符:在ES6中用…来表示展开运算符,它可以将数组…

ES6 新特性知识点总结

文章目录 ES6let及const解构赋值模板字符串Symbol类型Set和Map数据结构箭头函数类 ES6 ES 的全称是 ECMAScript , 它是由 ECMA 国际标准化组织,制定的一项脚本语言的标准化规范。 ES6 实际上是一个泛指&#xff0c;泛指 ES2015 及后续的版本。 每一次标准的诞生都意味着语言的…

ES6 新特性

1 、ES6 新特性 现在使用主流的前端框架中&#xff0c;如ReactJS、Vue.js、angularjs等&#xff0c;都会使用到ES6的新特性&#xff0c;作为一名高级工程师而言&#xff0c;ES6也就成为了必修课&#xff0c;所以本套课程先以ES6的新特性开始。 1.1、了解ES6 ES6&#xff0c;…

ES6新特性总结-面试必会

文章目录 一、let和const二、Symbol三、模板字符串3.1 什么是模板字符串3.2 字符串新方法 四、解构表达式4.1 数组解构4.2 对象解构 五、Set()、map()数据结构5.1 map()是什么及写法&#xff1f;5.1.1 map()是什么及写法&#xff1f;5.1.2 map()下的内置方法&#xff1a; 5.2 S…

JavaScript ES6新特性

JavaScript ES6带来了新的语法和特性&#xff0c;使得代码更加的现代和可读。它包括许多重要功能&#xff0c;如箭头函数、模板字符串、解构赋值等等。 const 和 let const 是 ES6 中用于声明变量的新关键字。const 比 var 强大。一旦使用&#xff0c;变量就不能重新分配。换…

ES6必须知道的六大新特性

ES6 ES6新特性-let&const 使用const表示常量&#xff08;声明之后不允许改变&#xff0c;一旦声明必须初始化&#xff0c;否则会报错&#xff09; //ES6 常量 不能修改const b2;b3;//Uncaught TypeError: Assignment to constant variable.console.log(b);使用var声明的…

ES6中有哪些新特性?

ES6中的新特性(一) ECMAScript6.0&#xff08;以下简称 ES6&#xff09;是 JavaScript 语言的下一代标准&#xff0c;已经在 2015 年 6 月正式发布了。它的目标&#xff0c;是使得 JavaScript 语言可以用来编写复杂的大型应用程序&#xff0c;成为企业级开发语言。 我们来看看…

面试题!es6新特性

es6新特性 ECMAScript 6(ES6) 目前基本成为业界标准&#xff0c;它的普及速度比 ES5 要快很多&#xff0c;主要原因是现代浏览器对 ES6的支持相当迅速&#xff0c;尤其是 Chrome 和 Firefox 浏览器&#xff0c;已经支持 ES6 中绝大多数的特性。 以下是一些常用到的es6新特性&…

es6的8条新特性总结

es6的8条新特性总结 认识es61.块级作用域变量&#xff08;let和const&#xff09;2.箭头函数3.模板字符串4.解构赋值5.默认参数6. 扩展运算符7. 类和继承8.Promise 认识es6 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript的新版本&#xff0c;引入了许多新特性和语法…

最全的—— ES6有哪些新特性?

目录 ES6新特性1、let和const2、symbol3、模板字符串3.1 字符串新方法&#xff08;补充&#xff09; 4、解构表达式4.1 数组解构4.2 对象解构 5、对象方面5.1 Map和Set5.1.1 Map5.1.2 Set 5.3 数组的新方法5.3.1 Array.from()方法5.3.2 includes()方法5.3.3 map()、filter() 方…

GWAS分析中协变量的区分(性别?PCA?初生重?)

1. 电子书领取 前几天发了一篇GWAS电子书分享&#xff0c;异常火爆&#xff0c;阅读量8000&#xff0c;很多人评价比较基础。这本电子书主要特点是比较基础&#xff0c;GLM模型用软件和R语言进行比较&#xff0c;如何添加数字协变量、因子协变量、PCA等内容&#xff0c;可以说…

时间序列 工具库学习(5) Darts模块-多个时间序列、预训练模型和协变量的概念和使用

1.实验目的 此笔记本用作以下目的&#xff1a; 在多个时间序列上训练单个模型使用预训练模型获取训练期间未见的任何时间序列的预测使用协变量训练和使用模型 2.导库 # fix python path if working locally from utils import fix_pythonpath_if_working_locallyfix_python…

Mplus数据分析:随机截距交叉之后的做法和如何加协变量,写给粉丝

记得之前有写过如何用R做随机截距交叉滞后&#xff0c;有些粉丝完全是R小白&#xff0c;还是希望我用mplus做&#xff0c;今天就给大家写写如何用mplus做随机截距交叉滞后。 做之前我们需要知道一些Mplus的默认的设定&#xff1a; observed and latent exogenous variables a…

中介变量、调节变量与协变量

在平时看论文过程中偶会接触到这几个概念&#xff0c;然而都没想过弄明白&#xff0c;每次总觉得只要看明白个大概反正自己又不用这种方法…作为科研人&#xff0c;还是应该保持谦逊&#xff0c;保持学习 一、中介变量 1.概念 中介变量&#xff08;mediator&#xff09;是自…

协变量偏移/标签偏移/概念偏移

协变量偏移 这里我们假设&#xff0c;虽然输入的分布可能随时间而改变&#xff0c;但是标记函数&#xff0c;即条件分布P&#xff08;y∣x&#xff09;不会改变。虽然这个问题容易理解&#xff0c;但在实践中也容易忽视。 想想区分猫和狗的一个例子。我们的训练数据使用的是猫…

R语言绘制校正协变量后的ROC曲线

ROC曲线也叫受试者工作曲线&#xff0c;原来用在军事雷达中&#xff0c;后面广泛应用于医学统计中。ROC曲线是根据一系列不同的二分类方式(分界值或决定阈)&#xff0c;以真阳性率(灵敏度)为纵坐标&#xff0c;假阳性率(1-特异度)为横坐标绘制的曲线。 ROC曲线主要应用于二分类…

倾向值分析(协变量选择)

Hirano 和 Imbens 基于预设的临界t值来设定预测变量的方法 逻辑回归&#xff1a;逻辑回归虽然带有回归字样&#xff0c;但是逻辑回归属于分类算法。逻辑回归可以进行多分类操作&#xff0c;但由逻辑回归算法本身性质决定其更常用于二分类。 a.逻辑回归公式如下&#xff1a; 其…

使用aPCoA包实现校正协变量的主坐标分析(aPCoA)以排除混杂协变量的影响

使用aPCoA包实现校正协变量的主坐标分析&#xff08;aPCoA&#xff09;以排除混杂协变量的影响 主坐标分析&#xff08;PCoA&#xff09;广泛用于生态学和微生物学等领域&#xff0c;以描述样本之间的差异&#xff0c;例如群落的beta多样性等。然而混杂的协变量可能会使与感兴趣…

多变量时间序列、预训练模型和协变量

darts官方地址 GitHub&#xff1a;https://github.com/unit8co/darts文档&#xff1a;https://unit8co.github.io/darts/index.html 本笔记可作为以下内容的教程&#xff1a; 在多个时间序列上训练单个模型使用预训练模型来获得训练期间看不到的任何时间序列的预测训练和使用…

协变量偏移_恶意软件分类的协变量偏移

协变量偏移 介绍 (Introduction) Covariate shift in the data-generating distribution lowers the usefulness of generalization error as a measure of model performance. By unpacking the definitions, the previous sentence translates to “high accuracy on the dis…