2021-03-16

一、变量let和const


var:


可以重复声明

可以进行变量提升(即将声明提升到最前面)

let:


不可以重复声明

块级作用域

不可以变量提升

const:


不可以重复声明

块级作用域

声明后不可以进行修改

声明时必须初始化

const声明的数组内容可以被修改,所以常规使用const进行数组变量的声明

二、解构赋值


1.什么是解构?:es6允许按照一定的模式,从数组和对象中提取值,对变量进行赋值,这被称为解构


2.数组解构赋值:


语法:

let [a,b,c] = [1,2,3];

console.log(a,b,c);

3.对象解构赋值:


语法:let{a,b} = {

        a:'aa',

        b:'bb'

};


console.log(a,b);

4.字符串的解构赋值:


语法: let[a,b,c,d] = 'hello';

console.log(a,b,c,d);//h e l l

5.函数的解构赋值:

function fun([x,y]){

console.log(x+y);

}


fun([1,2]);//实参

6.解构的用途:


交换变量的值

从函数返回多个值(这样就可以快速调用一些数据)

函数传参

提取json数据(解构对提取json尤其有用)

函数参数默认值(es6允许函数的参数设置默认值)

7.函数默认初始值

一般用法:(直接将默认值写在形参之后)

function fun(x,y ='world'){

      console.log(x,y);

}

与解构配合使用:

function fun({x,y=5}={}){

      console.log(x,y);

}

三、对象的简化写法


1.ES6允许在大括号里面,直接写入变量和函数,作为对象的属性和方法在Vue中经常使用,这样写会使得编写更加的简洁!

四、箭头函数


1.ES6允许使用「箭头」(=>)定义函数

声明函数的两种方法:

let fn = function(){

}


let fn = (a,b) => {

return a+b;

}

2.this是静态的,this始终指向函数声明时所在作用域下的this的值


3.箭头函数的this值是静态的,始终指向函数声明时所在作用域下的this的值

4.箭头函数不能作为一个构造函数实例化对象!


5.箭头函数不能使用arguments变量

五、Symbol

Symbol是一种标识符,是一种类型,表示独一无二的值

1.Symbol简介:

Symbol的值是唯一的,用来解决命名冲突的问题

Symbol的值不能与其他数据进行运算

Symbol定义的对象属性不能使用for…in...进行循环遍历,但是可以使用Reflect.ownKeys来获取对象的所有键名

1.直接使用Symbol进行创建

2.使用Symbol.for进行创建

六、迭代器


1.for…in…:遍历返回的是键名~~~for…of…:遍历返回的是键值


2.迭代器的工作原理


创建一个指针对象,指向当前数据结构的起始位置

第一次调用对象的next方法,指针自动指向数据结构的第一个成员

接下来不断使用next方法,指针不断向后移动直到指向最后一个数据成员

每调用一次方法返回一个包含value和done属性的对象(done代表是否完,为一个布尔值,如果遍历完成则为ture,否则为false)

3.注意:要自定义遍历数据的

时候,要想到迭代器!

七、ES6模块化

1.有助于处理各个模块之间的冲突,易于维护,易于修改

2.ES6之前的模块化规范主要有:

1. CommonJS => NodeJS、Broeserify

2. AMD => requireJ

3. CMD => seaJS

3.模块化功能主要由两个命令构成:export和import


1)export命令用于规定模块的对外接口

2)import命令用于输入其他模块提供的功能

八、浏览器使用模块化的两种方式

1、使用import引入

2、建立一个入口文件然后仅直接引入入口文件

你可能感兴趣的:(2021-03-16)