ES6的兼容性 -— IE10+ 、chrome、 Firefox、移动端、nodejs
ES5与ES6的区别(面试很喜欢问的问题哈哈)
主要ES6与之前不一样的地方有这以下几个比较核心的
1.变量 2.函数 3.数组 4.字符串 5.面向对象 6.Promise 7.genrator 8.模块化
首先我们看到变量
在ES5中我们用的是var 然而用var的话就有以下几个缺点:
1、可以重复声明。
2、无法限制修改
3、没有块级作用域
而在ES6中我们一般使用let和const以下是他们的区别:
let 不能重复声明 变量——可以修改。 块级作用域
const 不能重复声明。常量——不可以修改 块级作用域
其次我们看到函数,在ES6中新增了箭头函数,就感觉明显方便了很多
而且如果只有一个参数()可以省略;或者 如果只有一个return, { }可以省略;
参数扩展:
1.收集剩余的参数
如:function show(a,b,…args){ }
*Rest Parameter 必须是最后一个参数
2.用于展开数组
如:
let arr1 = [ 1, 2, 3] ;
let arr2 = [ 4, 5, 6] ;
Let arr = […arr1, …arr2]
alert(arr)
//1,2,3,4,5,6
解构赋值:
1.左右两边结构必须一样
2.右边必须是一个东西
3.声明和赋值不能分开(必须在一句话里完成)
如:let [a,b,c] = [12,5,8] ; let{a,b,c} = {a: 12, b: 5, c: 8};
我们看到数组,数组就多了几个比较好用的,现在举个例子:
1.map ———映射 一个对一个
直接上图就能看懂
2.reduce ——汇总
我们来算一个总数怎么算呢,这样来算
算个平均数
filter ——过滤器
forEach —循环(迭代)
至于字符串呢多了两个新方法
1⃣️starsWith
2⃣️endsWith
字符串模版:什么是字符串模版呢?看下面就知道了
promise —— 承诺
异步请求:操作之间没啥关系,同时进行多个操作(代码更复杂)
同步请求:同时只能做一件事
这个没有细讲,后续可能会更新一些关于promise去封装http的一些心得~
模块功能主要有两个命令构成:export 和 import
export 用于规定模块的对外接口 import 用于输入其他模块提供的功能
这个如果有项目经验的还是比较好理解的~
这篇文章呢主要是想记录一下今天下午所学习的内容,但是好像没有将到this指向的问题后续也将会去更新,大家一起学习进步!有什么建议也可以提出来哦,不喜勿喷!!!!