ES6新增的一些特性
1、let关键字,用来代替 var的关键字,特点: 1、变量不允许被重复定义 2、不会进行变量声明提升 3、保留块级作用域中i的
2、const定义常量,特点:1、常量值不允许被改变 2、不会进行变量声明提升
3、箭头函数
与普通函数的区别:1、书写上用=>代替了function
2、普通函数的this指向window 而ES6箭头函数里面的this指向定义时的那个对象 而不是运行时的那个对象
- //普通函数
var test = function(x){- return x+2;
- }
- 使用箭头函数:
- var test = x=>x+2;
4、字符串模板``
ES6中允许使用反引号 ` 来创建字符串,此种方法创建的字符串里面可以包含由美元符号加花括号包裹的变量${vraible}。看一下实例就会明白了:
- //产生一个随机数
- let num = Math.random();
- //将这个数字输出到console
- console.log(`your num is ${num}`);
5、ES6中字符串和数组新增了那些方法
- 字符串
- 1、字符串模板
- 2、includes
- 3、startswith
- 4、endsWith 等
- 数组
- 1、Array.of //将一组数值转化为数组
- 2、Array.from 等
- 将伪数组转为数组: var list = Array.from(document.getElementsByTagName("li"));
6、第七种数据类型Symbol
- var s1 = Symbol();
- var s2 = Symbol();
- var s3 = Symbol("abc");
- var s4 = Symbol("abc")
- s1不等于s2 s3不等于s4
- Symbol函数会生成一个唯一的值
- 可以理解为Symbol类型跟字符串是接近的
- 但每次生成唯一的值,也就是每次都不相等,至于它等于多少,并不重要
- 这对于一些字典变量,比较有用
7、ES6中set集合和Map集合
- set:
- set是ES6提供的一种新的数据结构,类似于数组,但是成员的值是唯一的没有重复的,接受的参数是一个数组方法有:
- add():添加
- delete():删除
- size:长度
- has():查找
- clear:清除所有
- map:
- map类似于对象,也是键值对的集合, 但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键方法有:
- set():设置
- get():获取
- delete():删除
- has():查找
- clear():清除所有
8、Promise规范
- 1、什么是promise?
- 异步操作的同步代码
- 2、promise的基本使用
- 通过new promise创建一个promise对象,里面有一个参数,参数是一个回调函数,回调函数中有2个参数,resolve,reject resolve()当
- 异步执行成功的时候调用的方法,reject()当异步失败的时候调用的方法。
- 除此之外promise有一个then方法,当成功的时候执行第一个回调函数,当失败的时候执行第二个回调函数。第二个回调函数也可以通过
- promise对象.catch调用
- 3、Promise.all():当所有的异步代码都执行完毕以后才会执行.then中的操作
- 4、Promise.race():只要有一个promise执行完毕后就会执行.then操作
- 5、如何实现多个异步同步执行
var p1 = new Promise(function(resolve,reject){
setTimeout(function(){
console.log('1');
resolve()
},3000)
})
function p2(){
return new Promise(function(resolve,reject){
setTimeout(function(){
console.log("2");
resolve();
},2000)
})
}
function p3(){
return new Promise(function(resolve,reject){
setTimeout(function(){
console.log("3");
resolve();
},1000)
})
}
function p4(){
return new Promise(function(resolve,reject){
setTimeout(function(){
console.log("4");
resolve();
},500)
})
}
p1.then(function(){
return p2()
})
.then(function(){
return p3();
})
.then(function(){
return p4();
})
9、类的支持
ES6中添加了对类的支持,引入了class关键字。JS本身就是面向对象,ES6中提供的类实际上只是JS原型模式包装。现在有了class,对象的创建,继承更直观,父类方法的调用,实例化,静态方法和构造函数更加形象化。
- 以前编写一个构造函数(类)
- function Pad(color){
- this.color = color;
- }
- 现在的写法跟Java更接近了
- class Iphone{
- constructor(color, size){
- this.color = color;
- this.size = size;
- }
- playgame(){
- //.............
- }
- toString(){
- return `这台手机的颜色是${this.color} 屏幕大小是${this.size}`;
- }
- }
- 我们定义了一个类,名字叫Iphone
- 通过类生成一个实例:
- var iphone = new Iphone("白色", 5);
- 其中constructor被称之为构造方法,在我们new 一个对象的时候,自动被调用
不过本质上,JS依然使用了原型来实现,也就是说,这不过是一个新的写法而已 跟以前的构造函数没有区别。
要注意的是,使用了class来定义类,必须先定义再使用
ES6新增的一些特性的更多相关文章
- ES6新增常见特性
一:声明属性let const var let const 区别 1.var声明变量会发生变量提升,let.const不会发生变量提升 2.var允许重复声明变量,let不可以 3.const声明变量 ...
- ES6新增特性
ES6: ECMA 第六次改版 块级作用域: 凡是被{ }包裹住的代码都是块级作用域,除了对象 特点:会造成一个暂时性死区 新增声明变量的两种方式: let: a. ...
- ES6的一些常用特性
由于公司的前端业务全部基于ES6开发,于是给自己开个小灶补补ES6的一些常用特性.原来打算花两天学习ES6的,结果花了3天才勉强过了一遍阮老师的ES6标准入门(水好深,ES6没学好ES7又来了...) ...
- 浅谈ES6新增数据类型:Symbol
面试中喜闻乐见的问题就是问我们的ES6新增了哪些个新特性 这篇文章一起学习一下新增的数据类型:Symbol JS的原始数据类型:6种Boolean,String,Undefined,NULL,Numb ...
- ES6十大常用特性
. Default Parameters(默认参数) in ES6 2. Arrow Functions (箭头函数)in ES6 3. Block-Scoped Constructs ...
- ES6新增的 Set 和 WeakSet 是什么玩意?在此揭晓
现在的章节内容会更加的紧密,如果大家看不懂可以先去看以前的文章,当然看了的忘了,也可以去看一下,这样学习后面的内容才会更加容易. 什么是Set结构 Set是ES6给开发者带来的一种新的数据结构,你可以 ...
- 面向对象编程-终结篇 es6新增语法
各位,各位,终于把js完成了一个段落了,这次的章节一过我还没确定下面要学的内容可能是vue也可能是前后端交互,但无论是哪个都挺兴奋的,因为面临着终于可以做点看得过去的大点的案例项目了,先憋住激动地情绪 ...
- es6新增
首先要说let,他是只在代码块中执行的变量,例如: { let a = 10; var b = 1;}console.log(a);//definedconsole.log(b);//1 ...
- ECMAScript简介以及es6新增语法
ECMAScript简介 ECMAScript与JavaScript的关系 ECMAScript是JavaScript语言的国际化标准,JavaScript是ECMAScript的实现.(前者是后者的 ...
随机推荐
- Bootstrap内栅格布局,表格,按钮,图片的个人总结
栅格布局: container,固定宽度的容器. container-fluid,百分百宽度的容器. 使用行(row)在水平方向上创建一组列(colmun). 每一行中最多能够包含12列,超出的列则另 ...
- Statistical Methods for Machine Learning
机器学习中的统计学方法. 从机器学习的核心视角来看,优化(optimization)和统计(statistics)是其最最重要的两项支撑技术.统计的方法可以用来机器学习,比如:聚类.贝叶斯等等,当然机 ...
- dbt 0.13.0 新添加特性sources 试用
dbt 0.13 添加了一个新的功能sources 我呢可以用来做以下事情 从基础模型的源表中进行数据选择 测试对于源数据的假设 计算源数据的freshness source 操作 定义source ...
- 处理kubernetes 一些比较难删除的资源
kubernetes 提供了force 的命令在我们删除资源的时候,但是很多时候还是不可以的 一般删除资源的处理 命令 kubectl delete <resource> <reso ...
- 【JZOJ6216】【20190614】序列计数
题目 一个长为\(N\)的串\(S\),\(M\)询问区间\([l,r]\)不同的子串个数,字符集为$ C $ \(N ,M \le 10^5 \ , \ C \le 10\) 题解 这题非常套路.. ...
- Calibre中使用DeDRM插件进行Kindle电子书解锁
小书匠 废话不多说,下面是Calibre和DeDRM插件的下载地址: https://calibre-ebook.com/download https://github.com/apprenticeh ...
- 微信小程序知识云开发
一个小程序最多5个服务类目,一个月可以修改3次类目 小程序侵权投诉的发起与应对 软件著作权作品登记证书 实现小程序支付功能 如何借助官方支付api简单.高效率地实现小程序支付功能 借助小程序云开发实现 ...
- PHP全栈学习笔记33
javascript能做什么? 语句与注解,标识符,字面量,变量命名规范 JavaScript中的数据类型,其它类型如何转为数据型,操作符 字符方法,数组方法,函数与对象,函数表达式,变量作用域,对象 ...
- P2052 [NOI2011]道路修建——树形结构(水题,大佬勿进)
P2052 [NOI2011]道路修建 这个题其实在dfs里面就可以把事干完的,(我一开始还拿出来求了一把)…… 一条边的贡献就是儿子的大小和n-siz[v]乘上边权: #include<cma ...
- 【0521模拟赛】小Z爱数学
题目描述 小Z想求F(n,k),F(n,k)表示n的所有因数pi中,满足n/pi <= k 的和. 小Z发现还是很水,所以他决定加大难度. 求 小Z还准备了很多个询问.现在你来解决一下吧. 输入 ...