ES6新特性-程序员宅基地

技术标签: java  前端  HTML、CSS  javascript  

一、什么是ES6?

ES全称为ECMAScript,它是由国际标准化组织ECMA(全称:European Computer Manufacturers Association)欧洲计算机制造商协会制定的一项脚本语言的标准化规范。JavaScript就实现了这套标准。ES6中的6代表的是版本,从2015年6月份发布的版本及其后续版本统称为ES6,从2015年开始,每年的6月份都会发布新版本。目前各大浏览器产商也都已经支持ES6。

二、 ES6的新特性有哪些?

1.新增了块级作用域(let,const)

2.提供了定义类的语法糖(class)

3.新增了一种基本数据类型(Symbol)

4.新增了变量的解构赋值

5.函数参数允许设置默认值,引入了rest参数,新增了箭头函数。

6.数组新增了一些API,如isArray / from / of 方法;数组实例新增了 entries(),keys() 和 values() 等方法。

7.对象和数组新增了扩展运算符

8.ES6新增了模块化(import / export)

9.ES6新增了Set和Map数据结构。

10.ES6原生提供Proxy构造函数,用来生成Proxy实例

11.ES6新增了生成器(Generator)和遍历器(Iterator)

说说解构赋值

解构:分解数据结构。
赋值:为变量赋值。
解构赋值:从数组或者对象中提取值,按照对应的位置,对变量赋值(在数组解构中,只 要解构的目标可以遍历,就可以实现解构赋值)。


1:数组解构赋值的特点:
在数组解构中,左边用中括号包裹任意个变量,右边则是一个真实的数组,按照 一 一 对应的关系进行赋值,在赋值过程中有以下几种情况:

1.1:声明的变量数量与数组的元素数量一致:
1.2:声明的变量的数量大于数组的元素的数量:

1.3:声明的变量的数量小于数组的元素的数量:

1.4:使用剩余运算符进行解构赋值:

1.5:可遍历对象 例如:字符串:

var、let、const各自的特点及其区别

在ES6之前只有全局作用域和局部作用域,ES6新增了块级作用域let和const,下面将简单介绍var、let和const的特点以及区别。

块级作用域:只能在声明的区域(代码块)中使用,不能在声明的区域的外部使用,否则报(xxx is not defined)。

var:使用var声明的变量,其作用域为该变量所在的函数内,且存在变量提升现象(变量提升:可以先使用再声明),不会受到块级作用域的影响

let:ES6新增的块级作用域
1:使用let声明的变量具有块级作用域:,只能在当前声明的代码块中使用,必须要先声明再使用
2:具有暂时性死区特性。

const:ES6中新增的常量(常量:值(内存地址)不可更改的量)。特点如下:
3.1:具有块级作用域的特点,只能在当前声明的代码块中使用,必须要先声明再使用。
3.2:声明常量时必须赋值,如果不赋值报错:Missing initializer in const declaration(在const声明中未初始化)。
  3.3:const声明的常量不可更改。
  3.4:使用const声明的常量如果是基本数据类型(比如:数字、字符串),一旦赋值,值不可以更改;如果是引用数据类型(数组,对象),不能重新赋值,但是可以更改数据结构内部的值(比如修改对象中的属性)。


谈谈我对箭头函数的理解

1:箭头函数:ES6新增的定义函数的方式。
2:作用:用来简化函数定义的语法。
3:箭头函数的特点:
3.1:可以将箭头函数赋值给一个变量,变量名字就是函数的名字,通过变量名字调用函数。

3.2:如果函数体中只有一行代码,且代码的执行结果就是返回值,可以省略大括号。

3.3:如果形参只有一个,可以省略小括号(如果没有形参,小括号不能省略)。

Map数据结构

1:Map:类似于对象,是一个存储键值对的集合,但是‘键’’的范围不仅仅是字符串,所有类型的值包括对象都可以当做键。
2:创建Map集合:
 2.1:创建Map集合有两种:1.直接new Map()创建实例对象;2.接收一个数组作为参数来创建实例对象(该数组的成员必须是一个个表示键值对的数组)。
 
3:Map集合常用属性和方法:
3.1:.has(key);查找key,返回布尔值。
3.2:.get(key) 根据key查找value。
3.3:.set(key,value) 添加键值对。
3.4:.size获取存储的数量。

总结
1:var声明的变量是函数变量(全局变量和局部变量),会有变量提升的风险,可以先使用再声明,尽量少用。

2:let声明的变量具有块级作用域的特性,即只能在声明的代码块中使用,只能先声明之后才能使用。

3:const声明的变量是常量,常量的值不允许更改,如果常量是引用类型(对象或者数组),那么可以更改常量内部属性的值。

4:解构就是分解数据结构,赋值就是为变量赋值;在ES6中允许从对象和数组以及任何可以遍历的数据类型进行解构赋值。

5:箭头函数是将函数简化定义的一种方式,将箭头函数赋值给一个变量,变量名就是函数名称,通过调用变量名来调用函数。

6:Set数据结构的声明方式分为两种:1、直接实例化一个空的Set()构造函数;2、在Set构造函数中传入一个数组。Set构造函数可以用来做数组去重等操作。

7:Map数据结构的声明方式分为两种:1、直接实例化一个空的Map()构造函数;2、在Map构造函数中传入一个带有键值对的数组。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_52858303/article/details/127825249

智能推荐

五分钟了解物联网SIM卡——这个文章刷新了我对sim卡的认识_中移物联nb-iot模块 不认识sim卡-程序员宅基地

文章浏览阅读6.7k次,点赞32次,收藏108次。嵌入式软件自留地 今天编者荐语:五分钟了解物联网SIM卡——这个文章刷新了我对sim卡的认识,不熟悉的可以看看~~以下文章来源于华为云IoT ,作者我是卤蛋这个文章来自网络,看了觉得不错,因此特意整理转载下。是华为iot小助手分享的,都知道华为在物联网领域是国内老大的地位,分享的文章还是比较有价值的。【摘要】SIM卡是移动通信中不可或缺的组成部分,在物联网解决方案中,设备移动上网也需要使用SIM卡。那么,SIM卡是什么?SIM卡有几种?各种SIM卡有什么区别?本文将为您答疑.._中移物联nb-iot模块 不认识sim卡

js获取当前Unix时间戳_js unix时间戳-程序员宅基地

文章浏览阅读1.1w次。JavaScript 获取当前时间戳:第一种方法:var timestamp = Date.parse(new Date());第二种方法:var timestamp=new Date().getTime();第三种方法:var timestamp = (new Date()).valueOf();第一种:获取的时间戳是把毫秒改成000显示,_js unix时间戳

Chrome浏览器各种文件的存放路径汇总_chrome 浏览器 网页 pdf 文件 保存在哪里-程序员宅基地

文章浏览阅读5.1k次。2021-03-18首次编辑Profile文件什么是Profile文件?chrome://version可以查看 个人资料路径书签文件的存贮路径/Users/username/Library/Application Support/Google/Chrome/Default/Bookmarks扩展插件存放位置/Users/username/Library/Application Support/Google/Chrome/Default/Extensions..._chrome 浏览器 网页 pdf 文件 保存在哪里

黑马程序员Java Swing笔记分享(AWT篇)_黑马程序员awt代码-程序员宅基地

文章浏览阅读1.4k次,点赞5次,收藏39次。本文章为Java Swing的笔记分享,这一篇就够了_黑马程序员awt代码

IDE到底是什么?——详细且通俗的解释-程序员宅基地

文章浏览阅读2.5k次,点赞26次,收藏24次。一.简介1.概念:集成(简称:IDE;英文名:Integrated Development Environment )是用于提供程序开发环境的,一般包括编辑器、和等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。具备这一特性的软件或者软件套(组)都可以叫集成开发环境。不理解的小朋友也没事的,就一句话总结:IDE就是可以给我们提供很多必要工具,把一堆工具集成起来,变成了一个软件,我们可以在上面开发各种程序。可以类比成一个医药箱~~~2.举例:如的系列等。_ide

app加急审核-程序员宅基地

文章浏览阅读55次。原文地址:http://www.cnblogs.com/Twisted-Fate/p/4915184.html最近公司app由于疏忽审核被拒绝了,但是计划是最近两天上线时间紧急,希望能快速审核上线,了解到淘宝里面有加速商店,但是价格真是黑心,首次上线12000元,APP若已经上线的更新5999,据网上了解他们也是编写加急理由,已经无法忍受这种坑爹的赚钱方式,总结了一些加急经历的给与建议,..._加急审app

随便推点

树莓派笔记-程序员宅基地

文章浏览阅读455次。LCD和hdmi切换/home/LCD-show-master 目录下LCD-hdmiLCD35-show时区修改sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtimedate -Rwifi配置cat /etc/wpa_supplicant/wpa_supplica..._hw perfevents: pmu driver, 7 counters available 那个文件

IIC通信协议-程序员宅基地

文章浏览阅读3.9w次,点赞38次,收藏237次。IIC通信协议介绍_iic通信协议

c++基础-继承与派生,定义基类person和公有派生类student_c++定义person类-程序员宅基地

文章浏览阅读4.1k次,点赞6次,收藏33次。①定义基类person,数据成员name,sex,age,构造函数,析构函数,输出name,sex,age的函数display()。②定义公有派生类student,数据成员:num,构造函数,析构函数,输出name,sex,age,num的函数display()。③ 主函数定义并使用student 对象stu。#include<iostream>#include<stri..._c++定义person类

Unity Inspector面板只读属性ReadOnly_unity readonly-程序员宅基地

文章浏览阅读5.8k次。public class ReadOnlyAttribute : PropertyAttribute{}[CustomPropertyDrawer(typeof(ReadOnlyAttribute))]public class ReadOnlyDrawer : PropertyDrawer{ public override float GetPropertyHeight(S..._unity readonly

Java 拷贝对象集合属性 集合泛型不一致 也可拷贝_java集合泛型不一样数据互传-程序员宅基地

文章浏览阅读1.7k次。Demo 对象如图我们同时创建三个相同属性Vo对象当我们使用BeanUtils进行拷贝时,会发现这样的问题public static void main(String[] args) { Student student = new Student(); student.setStudentName("大明"); List<Student> studentList = new ArrayList<>(..._java集合泛型不一样数据互传

IM系统:消息推送及离线存储_android 存储推送消息-程序员宅基地

文章浏览阅读2.2k次,点赞5次,收藏7次。一、服务端维护每条消息对用户的送达状态 二、利用标号标记最新已读消息_android 存储推送消息

推荐文章

热门文章

相关标签