ES6中常用的几个新特性

ECMAScript 6(ES6) 目前基本成为业界标准,它的普及速度比 ES5 要快很多,主要原因是现代浏览器对 ES6 的支持相当迅速,尤其是 Chrome 和 Firefox 浏览器,已经支持 ES6 中绝大多数的特性。

1.const和let

ES6推荐使用let声明局部变量,相比之前的var(无论声明在何处,都会被视为声明在函数的最顶部) let和var声明的区别:

var x = ‘全局变量‘;{ let x = ‘局部变量‘; console.log(x); // 局部变量}console.log(x); // 全局变量

let表示声明变量,而const表示声明常量,两者都为块级作用域;const 声明的变量都会被认为是常量,意思就是它的值被设置完成后就不能再修改了:

const a = 1a = 0 //报错

如果const的是一个对象,对象所包含的值是可以被修改的。抽象一点儿说,就是对象所指向的地址没有变就行:

const student = { name: ‘cc‘ }student.name = ‘yy‘;// 不报错student = { name: ‘yy‘ };// 报错

有几个点需要注意:

let 关键词声明的变量不具备变量提升(hoisting)特性

let 和 const 声明只在最靠近的一个块中(花括号内)有效

当使用常量 const 声明时,请使用大写变量,如:CAPITAL_CASING

const 在声明时必须被赋值

2.模板字符串

在ES6之前,我们往往这么处理模板字符串: 通过“”和“+”来构建模板

$("body").html("This demonstrates the output of HTML content to the page, including student‘s" + name + ", " + seatNumber + ", " + sex + " and so on.");

而对ES6来说

基本的字符串格式化。将表达式嵌入字符串中进行拼接。用${}来界定;

ES6反引号(``)直接搞定;

$("body").html(`This demonstrates the output of HTML content to the page, including student‘s ${name}, ${seatNumber}, ${sex} and so on.`);

3.箭头函数

ES6 中,箭头函数就是函数的一种简写形式,使用括号包裹参数,跟随一个 =>,紧接着是函数体;

箭头函数最直观的三个特点。

不需要 function 关键字来创建函数

省略 return 关键字

继承当前上下文的 this 关键字

// ES5var add = function (a, b) { return a + b;};// 使用箭头函数var add = (a, b) => a + b;// ES5[1,2,3].map((function(x){ return x + 1;}).bind(this)); // 使用箭头函数[1,2,3].map(x => x + 1);

细节:当你的函数有且仅有一个参数的时候,是可以省略掉括号的。当你函数返回有且仅有一个表达式的时候可以省略{} 和 return;

4. 函数的参数默认值

在ES6之前,我们往往这样定义参数的默认值:

// ES6之前,当未传入参数时,text = ‘default‘;function printText(text) { text = text || ‘default‘; console.log(text);}
// ES6;function printText(text = ‘default‘) { console.log(text);}printText(‘hello‘); // helloprintText();// default

5.for...of

for...of 用于遍历一个迭代器,如数组:

let letters = [‘a‘, ‘b‘, ‘c‘];
letters.size = 3;
for (let letter of letters) {
    console.log(letter);
}// 结果: a, b, c

原文地址:https://www.cnblogs.com/xiaowang192/p/9633204.html

时间: 2024-08-01 10:19:32

ES6中常用的几个新特性的相关文章

cocos2dx 游戏开发中常用场景切换方式以及特性

runWithScene(CCScene* scene):启动游戏,并运行scene 场景.这个方法在主程序启动时第一次启动主场景时调用. replaceScene(CCScene* scene):直接使用传入的scene 替换当前场景来切换画面,当前场景将被释放.这是切换场景时 最常用的方法. pushScene(CCScene* scene):在不释放旧场景内存的情况下运行新场景,推进新场景相当于在当前可见的纸上再放一张纸,而之前的纸位置何持不变.适用情况: 1.推进一个经常被用到的场景,例

Qt5 中对 C++11 一些新特性的封装

在 Qt5 中,提供更多 C++11 的特性支持,接下来我们将进行详细的说明. slots (槽) 的 Lambda 表达式 Lambda表达式 是 C++11 中的一个新语法,允许定义匿名函数.匿名函数可用于使用小函数作为参数,而无需显式的进行声明.之前可以通过编写函数指针来达到同样的目的. 在 Qt 4.8 中已经可在一些 QtConcurrent 函数中使用 Lambda 表达式了.但在 Qt5 中甚至可以通过 new connect syntax 来将 Lambda 表达式作为 slot

iOS7中Objective-C和Foundation的新特性

转自kingzwt2009的专栏 注意事项(Ray):文章来自iOS 7 by Tutorials  iOS 7Feast的一部分(略) Objective-C 是最重要的iOS和OSX apps的开发工具.你可以使用其他语言的第三方框架开发apps,例如HTML&Javascript或者C#,但是如果你很快的写出一个超炫的高效率的原声apps你就需要使Objective-C. Foundation 是你开发Objective-C应用时用到的核心框架之一. 作为一名iOS开发者,非常有必要了解最

Java中的工具类和新特性

1:Collections集合框架工具类: /* 集合框架的工具类. Collections:集合框架的工具类.里面定义的都是静态方法. Collections和Collection有什么区别? Collection是集合框架中的一个顶层接口,它里面定义了单列集合的共性方法. 它有两个常用的子接口, List:对元素都有定义索引.有序的.可以重复元素. Set:不可以重复元素.无序. Collections是集合框架中的一个工具类.该类中的方法都是静态的 提供的方法中有可以对list集合进行排序

ES6中比较实用的几个特性

1.Default Parameters(默认参数) in ES6 es6之前,定义默认参数的方法是在一个方法内部定义 1 var link = function (height, color, url) { 2 var height = height || 50; 3 var color = color || 'red'; 4 var url = url || 'http://azat.co'; 5 ... 6 } es6写法,简单粗暴了很多了 var link = function(heig

JDK 7中的文件操作的新特性

文件系统综述 一个文件系统在某种媒介(通常是一个或多个硬盘)上存储和组织文件.如今的大多数文件系统都是以树状结构来存储文件.在树的顶端是一个或多个根节点,在根节点一下,是文件和目录(在Windows系统里时文件夹).每个目录可以包含文件或者子目录. 下面这张图表示一个仅包含一个根节点的树形结构.Windows系统支持多个根节点. 文件系统以根节点起始的路径来识别一个文件,例如,上图中的statusReport在Solaris操作系统中的路径为: /home/sally/statusReport

简单罗列es6中常用的小demo

### 变量相关的letconst 1. 都不可以重复声明2. 都有块级作用域 const必须在声明的时候赋值const声明的变量不能被修改值 ### 对象相关的1. 对象的简写```jsvar name = "王XX": var obj = { name: name}// 简写如下var obj = { name} var obj = { sayHello: function(){ }} // 简写如下var obj = { sayHello(){ }}``` ### 解构赋值```

你不得不了解 Helm 3 中的 5 个关键新特性

作者?|?Rafal? 导读:Helm 是 Kubernetes 的一个软件包管理器.两个月前,它发布了第三个主要版本,Helm 3.在这一新版本中,有许多重大变化.本文作者将介绍自己认为最关键的 5 个方面. 移除了 Tiller Helm 最终移除了其服务器端组件,Tiller.现在,它完全没有代理.Tiller 之前是一个运行在 Kubernetes 上的小型应用程序,它用于监听 Helm 命令并处理设置 Kubernetes 资源的实际工作. 这是 Helm3 中最重大的更改.为什么 T

常用.Net 6.0 新特性

1.nameof表达式.Nameof表达式可以直接返回对象定义的名称,比如参数.枚举.变量. 控件.属性等.可以大大减少硬编码的使用,提高程序灵活性. new GridColumn() { Caption = "工号", Field = nameof(Employee.EeJobno), DataType = typeof(string), Visible = true, Width = 100 }, 2.字符串嵌入值($). MsgBox.Show(string.Format(&qu