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来定义类,必须先定义再使用

原文地址:https://www.cnblogs.com/houjl/p/10087687.html

时间: 2024-07-30 10:00:44

ES6新增的一些特性的相关文章

ES6 新增的一些特性

1. let关键字 (1)基本用法:let关键字用来声明变量,它的用法类似于var,都是用来声明变量. (2)块级作用域:let声明的变量,只在let关键字所在的代码块内有效. { var a = 10; let b = 10; } console.log(a); //10 console.log(b); //error: b is not defined var c = 10; { var c = 20; } console.log(c); //20 var d = 10; { let d =

ES6新增的 Set 和 WeakSet

什么是Set结构 Set是ES6给开发者带来的一种新的数据结构,你可以理解为值的集合.我们平时见到的数组Array也是一种数据结构,但是Set跟其他数据结构不同的地方就在于:它的值不会有重复项. 基本用法 我们从最基本的学起,Set的用法: 1 var s = new Set(); 2 console.log(s); 3 //打印结果:Set {} Set本身是一个构造函数,你可以理解为一个类,使用的时候需要用new来创建一个实例.以上的案例就是这样创建出一个Set结构,我们打印出来看看,控制台

ES6 新增语法

为什么是 ES6 每一次标准的诞生都意味着语言的完善,功能的加强, JavaScript 语言本身也有一些令人不满意的地方 变量提升特性增加了程序运行时的不可预测性 语法过于松散,实现相同的功能,不同的人可能会写出不同的代码 ES6 新增语法 let ES6 中新增的用于声明变量的关键字 let 声明的变量只在所处的块级有效 防止循环变量变成全局变量 不存在变量提升 暂时性死区 和 let 所在的块级区域进行绑定 注意:使用 let 关键字声明的变量才具有块级作用域,使用 var 声明的变量不具

ES6新增—新增循环、箭头函数

5.新增循环: 以前for循环,for in循环 ES6新增循环: for of 循环:遍历(迭代,循环)整个对象,变现类似于for in 循环 两者的区别: for in循环:既可以循环数组,又可以循环json 循环数组:i代表数组的索引 var arr1=['apple','banana','appel','orange']; for(var i in arr1){ console.log(i); //0,1,2,3 } 循环json:name代表json的索引 var json=[a:'a

es6新增的数组方法和对象

es6新增的遍历数组的方法,后面都会用这个方法来遍历数组,或者对象,还有set,map let arr=[1,2,3,4,3,2,1,2]; 遍历数组最简洁直接的方法法 for (let value of arr) { console.log(value);//输出1,2,3,4,3,2,1,2 } 1. 数组.map() 返回一个新的数组,es5要复制一个新的数组我们一般用循环,现在直接用map let arr=[1,2,3,4,3,2,1,2]; let newArr=arr.map((va

ES6的一些常用特性

Default Parameters(默认参数) 还记得我们以前不得不通过下面方式来定义默认参数: var link = function (height, color, url) { var height = height || 50; var color = color || 'red'; var url = url || 'http://azat.co'; ... } 但在ES6,我们可以直接把默认值放在函数申明里: var link = function(height = 50, col

ES6新增的math,Number方法

ES6新增的math,Number方法,下面总结了一些我觉得有用的 Nunber.isInteger()判断是否为整数,需要注意的是1,和1.0都会被认为是整数 console.log(Number.isInteger(1.0))//true console.log(Number.isInteger(1))//true console.log(Number.isInteger("1"))//false console.log(Number.isInteger("1.1&quo

关于ES6的一些新特性的学习

一.关于变量 ES5 1.只有全局作用域变量和函数作用域变量 2."变量提升"(当程序进入一个新的函数时,会将该函数中所有的变量的声明放在函数开始的位置.仅仅会提升变量的声明,不会提升变量的赋值) ES6新增:块级作用域变量 1.let定义块级作用域变量 1.没有变量的提升,必须先声明后使用 2.let声明的变量,不能与前面的let,var,conset声明的变量重名 { { //console.log(a)//报错 必须先声明再使用 let a = 10;//只在当前大括号可以使用

ECMAScript简介以及es6新增语法

ECMAScript简介 ECMAScript与JavaScript的关系 ECMAScript是JavaScript语言的国际化标准,JavaScript是ECMAScript的实现.(前者是后者的规格,后者是前者的实现.但通常两者是可互换的.) ESMAScript的历史 1996年11月,Netscape公司将Js提交给国际化标准组织ECMA,当初该语言能够成为国际化标准. 1997年,ECMAScript 1.0版本推出.(在这年,ECMA发布262号标准文件(ECMA-262)的第一版