ES6学习总结、特性总结、面试概述(一)

ES6特性一览表(面试可用)

(第一篇:包含1-7点特性)

  • 1. 新的声明方式
  • 2. 变量解构赋值
  • 3. 扩展运算符
  • 4. 字符串模板
  • 5. 箭头函数
  • 6. class类的支持
  • 7. 模块化操作
  • 8. promise对象的使用
  • 9. Math,Number,String,Array,Object 的新API
  • 10. Map,Set 和 WeakMap,WeakSet
  • 11. Set和WeakSet数据结构
  • 12. 对象中的Symbols
  • 13. 预处理器Proxy
  • 14. iterator, generator
1. 新的声明方式

两个关键字:let与const

let: 与var的区别在于,它定义的变量被限定在一定的作用域内。(类似局部变量)
const: 用来定义常量,无法更改其值。

const j = 2 //定义j为常量,用于定义不需要改变值的变量
for (let i=0;i<j;i++){
	console.log(i)
};//输出: 0,1
console.log(i) //输出undefined,严格模式下报错
2. 变量解构赋值
  • 数组解构

注意:数组赋值的元素按顺序排列赋值

let [a,b] = [1,2] // 打印a,b结果分别为1,2
  • 对象解构

注意:对象赋值没有顺序,按变量与属性名对应赋值,所以变量名必须与属性名相同,才能正确取值

let {a,b} = {a:3,b:4} // 打印a,b结果分别为3,4
  • 字符串解构
const [a,b,c,d,e,f] = "demoJx" 
console.log(a) //输出为d 
console.log(c) //输出为m
console.log(f) //输出为x
3. 扩展运算符
  • 扩展参数
function myLog(...arg){
    for(let val of arg) {
        document.documentElement.innerHTML += val +''
        console.log(val)
    }
}
myLog(1,2)//可传任意数量的参数
  • 深拷贝
let arr1=['a','b','c'];
//let arr2=arr1; //这样赋值是浅拷贝,仍然使用同一个堆栈
let arr2=[...arr1];//这样赋值是深拷贝,只是值相同
4. 字符串模板

ES6中允许使用反引号 ` 来创建字符串,反引号在键盘tab键上方。
用该方式创建字符串时,可用${变量},来引用变量。

const name = 'demoJx';
console.log(`My name is ${name}`); //输出 My name is demoJx
5. 箭头函数

用于定义函数,能在作用域能得到上下文的值。

var add = function (a,b) {
	return a+b
}
var add = (a,b) => {
	return a+b
}
6.class类的支持

在es6中,可以像java语言一样,声明类,使用类,继承类。

class Father{ //定义声明father类
    name(val){
        console.log(val);
    }
    constructor(a,b){ //类的构造方法
        this.a=a;
        this.b=b;
    }
}
class Children extends Father{} //类的继承
let FirstChild = new Children; //使用类
FirstChild.name('demoJx')//控制台输出 demoJx
7. 模块化操作

export :负责进行模块化,也是模块的输出。
import : 负责把模块引,也是模块的引入操作。

temple.js文件

var a ='1';
var b ='2';
var c ='3';
export default {a,b,c}

index.js文件

import z from './temp.js'
console.log(z) //打印出来的是包含a,b,c的对象

参考文献:

  1. ES6免费视频教程 (共18集)
  2. ES6新特性概览

你可能感兴趣的:(ES6,javascript)