全教育培训行业第三方平台平台就业机构
扫码试听
扫码试听
Q:2638333071
首页 > 课程问答 > > ES6中有哪些新特性(es6新增了哪些特性)
行业动态 行业问答 课程问答 零基础学习 就业前景 技术干货

ES6中有哪些新特性(es6新增了哪些特性)

发布时间:3 个 月 前 栏目:课程问答 浏览:

1、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)

注意: Set 和 Map是新增的数据结构。 而Symbol是基本数据类型。

ES6中有哪些新特性

2、ES6中如何使用Set和WeakSet_javascript技巧


ES6中提供了两新数据结构-Set和WeakSet。Set是类似于数组,但是成员变量的值都是唯一的,没有重复的值。WeakSet也是不重复的值的集合,但是只能用来存放对象。


一、Set使用


(1)Set本身提供了一个构造函数,用来生成Set数据结构。


(2)Set()函数可以接受一个数组,作为构造参数,用于做初始化。


注意:向Set中加入值的时候不会发生类型转换,所以5和”5”是两个不同的值,Set内部判断两个值是否相等,使用的是 ===,这就意味着这两个对象总是不相等。唯一列外的是NaN本身(精确相等运算符认为NaN不等于自身)


则,上面的代码表示,由于这两个空对象不是精确相等,所以是两个不同的值。


(3)Set的方法和属性


(3.1)Set的属性


Set.prototype.size:返回Set实例的成员数量。
Set.prototype.constructor:默认的构造Set函数。


(3.2)Set的操作啊函数


add(value):添加某个值,返回Set结构本身。
delete(value):删除某个值,返回一个布尔值,表示删除成功。
has(value):返回一个布尔值,表示参数是否为Set的成员。
clear():清除所有成员,没有返回值。


var set = new Set();
set.add(1).add(2).add(22).add(22);
set.size//3


set.hae(22)//true
set.has(4)//false
set.delete(2)//true


(3.3)Set遍历操作


Set有四个遍历方法。可以用于遍历成员。
keys() :返回一个键名的遍历器
values() :返回一个值的遍历器
entries() :返回一个键值对的遍历器
forEach():使用回调函数遍历每个成员


注意:由于Set没有键名,只有值名,keys()和values()返回的结果是一样,


let set = new Set([\'red\

ES6中有哪些新特性

3、javascript最新版本是什么?引入了哪些新的特性?

EMCAScript6(ES6)是最新的Javascript,它包含了一些很棒的新特性。这些特性拥有不同程度的复杂性,对于简单的脚本和复杂的应用程序都非常的有用。\\x0d\\x0a\\x0d\\x0a增加的新特性:\\x0d\\x0a\\x0d\\x0a1.箭头操作符\\x0d\\x0a 如果你会C#或者Java,你肯定知道lambda表达式,ES6中新增的箭头操作符=>便有异曲同工之妙。它简化了函数的书写。操作符左边为输入的参数,而右边则是进行的操作以及返回的值Inputs=>outputs。\\x0d\\x0a 我们知道在JS中回调是经常的事,而一般回调又以匿名函数的形式出现,每次都需要写一个function,甚是繁琐。当引入箭头操作符后可以方便地写回调了。\\x0d\\x0a\\x0d\\x0a2.类的支持\\x0d\\x0a ES6中添加了对类的支持,引入了class关键字(其实class在JavaScript中一直是保留字,目的就是考虑到可能在以后的新版本中会用到,现在终于派上用场了)。JS本身就是面向对象的,ES6中提供的类实际上只是JS原型模式的包装。现在提供原生的class支持后,对象的创建,继承更加直观了,并且父类方法的调用,实例化,静态方法和构造函数等概念都更加形象化。\\x0d\\x0a\\x0d\\x0a3.增强的对象字面量\\x0d\\x0a 对象字面量被增强了,写法更加简洁与灵活,同时在定义对象的时候能够做的事情更多了。具体表现在:\\x0d\\x0a(1).可以在对象字面量里面定义原型\\x0d\\x0a(2).定义方法可以不用function关键字\\x0d\\x0a(3).直接调用父类方法\\x0d\\x0a\\x0d\\x0a4.字符串模板\\x0d\\x0a 字符串模板相对简单易懂些。ES6中允许使用反引号 ` 来创建字符串,此种方法创建的字符串里面可以包含由美元符号加花括号包裹的变量${vraible}。如果你使用过像C#等后端强类型语言的话,对此功能应该不会陌生。\\x0d\\x0a\\x0d\\x0a5.解构\\x0d\\x0a 自动解析数组或对象中的值。比如若一个函数要返回多个值,常规的做法是返回一个对象,将每个值做为这个对象的属性返回。但在ES6中,利用解构这一特性,可以直接返回一个数组,然后数组中的值会自动被解析到对应接收该值的变量中。\\x0d\\x0a\\x0d\\x0a6.参数默认值,不定参数,拓展参数\\x0d\\x0a(1).默认参数值\\x0d\\x0a 现在可以在定义函数的时候指定参数的默认值了,而不用像以前那样通过逻辑或操作符来达到目的了。\\x0d\\x0a(2).不定参数\\x0d\\x0a 不定参数是在函数中使用命名参数同时接收不定数量的未命名参数。这只是一种语法糖,在以前的JavaScript代码中我们可以通过arguments变量来达到这一目的。不定参数的格式是三个句点后跟代表所有不定参数的变量名。比如下面这个例子中,?x代表了所有传入add函数的参数.\\x0d\\x0a(3).拓展参数\\x0d\\x0a 拓展参数则是另一种形式的语法糖,它允许传递数组或者类数组直接做为函数的参数而不用通过apply。\\x0d\\x0a\\x0d\\x0a6.let与const 关键字\\x0d\\x0a 可以把let看成var,只是它定义的变量被限定在了特定范围内才能使用,而离开这个范围则无效。const则很直观,用来定义常量,即无法被更改值的变量。\\x0d\\x0a\\x0d\\x0a7.for of 值遍历\\x0d\\x0a 我们都知道for in 循环用于遍历数组,类数组或对象,ES6中新引入的for of循环功能相似,不同的是每次循环它提供的不是序号而是值。\\x0d\\x0a8.模块\\x0d\\x0a 在ES6标准中,JavaScript原生支持module了。这种将JS代码分割成不同功能的小块进行模块化的概念是在一些三方规范中流行起来的,比如CommonJS和AMD模式。\\x0d\\x0a\\x0d\\x0a9.Map,Set 和 WeakMap,WeakSet\\x0d\\x0a 这些是新加的集合类型,提供了更加方便的获取属性值的方法,不用像以前一样用hasOwnProperty来检查某个属性是属于原型链上的呢还是当前对象的。同时,在进行属性值添加与获取时有专门的get,set方法。\\x0d\\x0a\\x0d\\x0a10.Proxies\\x0d\\x0a Proxy可以监听对象身上发生了什么事情,并在这些事情发生后执行一些相应的操作。一下子让我们对一个对象有了很强的追踪能力,同时在数据绑定方面也很有用处。\\x0d\\x0a\\x0d\\x0a11.Symbols\\x0d\\x0a 我们知道对象其实是键值对的集合,而键通常来说是字符串。而现在除了字符串外,我们还可以用symbol这种值来做为对象的键。Symbol是一种基本类型,像数字,字符串还有布尔一样,它不是一个对象。Symbol 通过调用symbol函数产生,它接收一个可选的名字参数,该函数返回的symbol是唯一的。之后就可以用这个返回值做为对象的键了。Symbol还可以用来创建私有属性,外部无法直接访问由symbol做为键的属性值。\\x0d\\x0a\\x0d\\x0a12.Math,Number,String,Object 的新API\\x0d\\x0a 对Math,Number,String还有Object等添加了许多新的API。下面代码同样来自es6features,对这些新API进行了简单展示。\\x0d\\x0a\\x0d\\x0a13.Promises\\x0d\\x0a Promises是处理异步操作的一种模式,之前在很多三方库中有实现,比如jQuery的deferred 对象。当你发起一个异步请求,并绑定了.when(), .done()等事件处理程序时,其实就是在应用promise模式。

上一篇:没有了
技术干货
零基础学习
行业多年深耕,从这报名,学费立减800
  • 岳同学180****1241刚刚成功领取
  • 胡同学134****6431刚刚成功领取
  • 李同学150****6122刚刚成功领取
  • 张同学136****2231刚刚成功领取
  • 孙同学178****5521刚刚成功领取
  • 齐同学156****7788刚刚成功领取
猜你喜欢
查看更多
相关推荐
查看更多
现在学习,我的薪资能达到多少?
立即报名

联系我们:

Q:2638333071

鄂ICP备2023015464号