无事来学学--ES6语法部分了解和ES5区别

简介: ES6( ECMAScript 6.0) ,概念ES6 主要是为了解决 ES5 的先天不足,比如 JavaScript 里并没有类的概念,但是目前浏览器的 JavaScript 是 ES5 版本,大多数高版本的浏览器也支持 ES6,不过只实现了 ES6 的部分特性和功能。

ES5和ES6的主要区别


箭头函数和字符串嵌入:

constgreetings=(name)=>{returnhello ${name};}

甚至:

constgreetings=name=>hello ${name};


常量声明(Const):

如同其它编程语言中的常量一样,但又有不同。这里的const代表了constant reference。也就是说,你可以修改其指向的对象的值。但是你不能修改其reference的值。

constNAMES=[];NAMES.push("Jim");console.log(NAMES.length===1);// trueNAMES=["Steve","John"];// error


块作用域变量:

ES6中的新关键字let允许允许开发者将变量的作用域限定在块级别。不会像var一样变量提升。


参数默认值

允许在函数定义的时候指定默认的值。

// Basic syntaxfunctionmultiply(a,b=2){returna*b;}multiply(5);// 10


类定义和继承

  • ES6开始支持定义类(使用class关键字),构造函数(使用constructor关键字),和extend关键字来实现继承。
  • for-of操作
  • for...of语句用来迭代访问一个对象的所有属性。
  • Spread操作符:用于对象合并

constobj1={a:1,b:2}constobj2={a:2,c:3,d:4}constobj3={...obj1,...obj2}

  • Promise: Promises提供了一个处理异步操作的方法。你可以用回调函数来实现,但是Promise更加简洁和可读。
constisGreater=(a,b)=>{returnnewPromise((resolve,reject)=>{if(a>b){resolve(true)}else{reject(false)}})}isGreater(1,2).then(result=>{console.log('greater')}).catch(result=>{console.log('smaller')})
复制代码


模块的export和import。

constmyModule={x:1,y:()=>{console.log('This is ES5')}}exportdefaultmyModule;
importmyModulefrom'./myModule';
复制代码


Let和Const
ES6 新增加了两个重要的 JavaScript 关键字: let 和 const。
复制代码


let 声明的变量只在 let 命令所在的代码块内有效。而js中var可以多次声明 const 声明一个只读的常量,一旦声明,常量的值就不能改变。

常用的对象解构

//对象解构 let user ={name:'12312',age:12}

//传统js let name1=user.name let age1=user.age console.log(name1,age1)

//ES6语法 let {name,age}=user console.log(name,age)

3.模板字符串相当于加强版的字符串,用反引号 `,除了作为普通字符串,还可以用来定义多行字符串,还可以在字符串中加入变量和表达式。

let name = "Mike";
let age = 27;
let info = `My Name is ${name},I am ${age+1} years old next year.`
console.log(info);
复制代码


4.ES6对象ES6允许对象的属性直接写变量,这时候属性名是变量名,属性值是变量值。

const age = 12;
const name = "Amy";
//ES6
const person = {age, name};
person   //{age: 12, name: "Amy"}
//等同于
const person = {age: age, name: name}
复制代码


5.对象的拓展运算符

拓展运算符(…)用于取出参数对象所有可遍历属性然后拷贝到当前对象。

对象的复制

let person = {name: "Amy", age: 15};
let someone = { ...person };
//someone{name: "Amy", age: 15}
复制代码


对象的合并

let age = {age: 15};
let name = {name: "Amy"};
let person = {...age, ...name};
//person;  {age: 15, name: "Amy"}
复制代码


6.箭头函数

*箭头函数提供了一种更加简洁的函数书写方式。多用于匿名函数的定义,基本语法是:参数 => 函数体

//传统方式定义函数
var f1 =function(a){
  return a
}
console.log(f1(3))
//es6使用箭头函数定义
var f1=a =>a
console.log(f1(3))
复制代码

当箭头函数没有参数或者有多个参数,要用 () 括起来。 var f = (a,b) => a+b; f(6,2); //8

当箭头函数函数体有多行语句,用 {} 包裹起来,表示代码块,当只有一行语句,并且需要返回结果时,可以省略 {} , 结果会自动返回

var f = (a,b) => {
 let result = a+b;
 return result;
}
f(6,2);  // 8



目录
相关文章
|
编解码 图形学 C++
如何在Blender中压缩/减小GLTF模型的大小
Blender是一款功能强大的开源软件,旨在创建3D图形,动画和视觉效果。它支持多种文件格式的导入和导出,包括GLB,GLTF,DAE,OBJ,ABC,USD,BVH,PLY,STL,FBX和X3D。这种适应性使其成为各种3D项目和工作流程的宝贵工具。(https://www.blender.org/download/)。
1960 0
|
存储 大数据 测试技术
用于大数据分析的数据存储格式:Parquet、Avro 和 ORC 的性能和成本影响
在大数据环境中,数据存储格式直接影响查询性能和成本。本文探讨了 Parquet、Avro 和 ORC 三种格式在 Google Cloud Platform (GCP) 上的表现。Parquet 和 ORC 作为列式存储格式,在压缩和读取效率方面表现优异,尤其适合分析工作负载;Avro 则适用于需要快速写入和架构演化的场景。通过对不同查询类型(如 SELECT、过滤、聚合和联接)的基准测试,本文提供了在各种使用案例中选择最优存储格式的建议。研究结果显示,Parquet 和 ORC 在读取密集型任务中更高效,而 Avro 更适合写入密集型任务。正确选择存储格式有助于显著降低成本并提升查询性能。
2075 1
用于大数据分析的数据存储格式:Parquet、Avro 和 ORC 的性能和成本影响
|
12月前
|
前端开发 Java 数据库
Java 项目实战从入门到精通 :Java Web 在线商城项目开发指南
本文介绍了一个基于Java Web的在线商城项目,涵盖技术方案与应用实例。项目采用Spring、Spring MVC和MyBatis框架,结合MySQL数据库,实现商品展示、购物车、用户注册登录等核心功能。通过Spring Boot快速搭建项目结构,使用JPA进行数据持久化,并通过Thymeleaf模板展示页面。项目结构清晰,适合Java Web初学者学习与拓展。
679 1
|
机器学习/深度学习 安全 算法
十大主流联邦学习框架:技术特性、架构分析与对比研究
联邦学习(FL)是保障数据隐私的分布式模型训练关键技术。业界开发了多种开源和商业框架,如TensorFlow Federated、PySyft、NVFlare、FATE、Flower等,支持模型训练、数据安全、通信协议等功能。这些框架在灵活性、易用性、安全性和扩展性方面各有特色,适用于不同应用场景。选择合适的框架需综合考虑开源与商业、数据分区支持、安全性、易用性和技术生态集成等因素。联邦学习已在医疗、金融等领域广泛应用,选择适配具体需求的框架对实现最优模型性能至关重要。
3005 79
十大主流联邦学习框架:技术特性、架构分析与对比研究
|
消息中间件 供应链 JavaScript
如何开发供应商管理系统中的质量协同板块(附架构图+流程图+代码参考)
供应商管理系统中的质量协同板块,连接采购、质检与供应商,实现来料检验、退货处理与问题改善的数字化协作。通过“来料检验单”、“采购退货单”和“8D改善报告”三大实体,详解功能设计、业务流程及开发实现,助力企业提升供应链稳定性与质量管理水平。
|
Java API 开发者
JDK8到JDK17版本升级的新特性问题之SpringBoot选择JDK17作为最小支持的Java lts版本意味着什么
JDK8到JDK17版本升级的新特性问题之SpringBoot选择JDK17作为最小支持的Java lts版本意味着什么
721 0
JDK8到JDK17版本升级的新特性问题之SpringBoot选择JDK17作为最小支持的Java lts版本意味着什么
|
消息中间件 NoSQL MongoDB
开源项目OpenIM单机部署生产环境异常处理及数据恢复
在生产环境中,通常会采用集群部署来保证组件和服务的高可用性。然而,在资源有限的情况下,一些开发者可能会选择在生产环境中进行单机部署(使用源码部署或docker容器)。本文将介绍在单机部署环境下如何进行数据备份、异常恢复,以及潜在的风险。 一、mongo定时数据备份​ OpenIM核心数据存储在MongoDB中,因此备份MongoDB数据就能恢复大部分数据。在容器启动之前,设置mongo数据备份目录和定时任务。 数据备份​ OpenIM服务的核心数据存储在MongoDB中,因此备份MongoDB数据就能恢复大部分数据。以下是备份的步骤: 修改备份目录 .env文件中修改MONGO_BACK
521 10
|
敏捷开发 资源调度 数据可视化
2024年最适合职场人士的任务可视化工具盘点,你的工作利器已在此!
随着企业管理方式的不断创新,任务管理和团队协作的效率成为企业竞争力的关键。2024年,可视化办公软件因其直观、高效的特点,成为现代企业管理的核心工具。这些软件不仅帮助团队更好地进行任务管理、项目跟进和协作沟通,还通过多种功能如看板管理、任务分配、进度跟踪、团队协作、报告与统计等,显著提升了工作效率。例如,板栗看板、Jira、Basecamp、ClickUp和Smartsheet等工具,各自以其独特的功能和优势,满足不同规模和需求的企业,助力实现高效管理和协作。