ES6语法学习

前言


一、ES是什么?

ES是ECMAsrcipt的缩写,ES是标准,javascript是实现,目前只有js实现了es的标准,所以js约等于es

类似html5也是标准,chrome、ie10是实现。

二、ES6语法

1.let和const

之前var的缺点:
(1)可以重复声明;var a=20;var a=30;不会出错。
(2)var无法限制修改;
(3)var没有块级作用域。{},if(){},for(){}块里面定义的var在外面也可以使用,只有在function中定义的外面不能使用。
let主要解决的问题:
(1)增加块级作用域;
(2)let不存在变量提升;(var生命的变量在编译时都会提升到代码的最开始)
(3)let不允许重复声明。
const:
(1)const定义的是常量,声明后无法修改,所以在刚开始必须有初始值。
(2)const如果生命对象或者数组,生命的常量在对内容中保存内容,栈内存中存储的是指向堆内存的引用;堆内存的内容可以修改,但栈内存存储的引用不能修改,既不能将此对象重新赋值给新的对象。

2.箭头函数

原先使用函数:
//函数也是一种变量。
const fun = function(x) {return x *x;}
console.log(fun(1));
箭头函数:
const fun = (x)=> {return x *x};将functon换为了箭头放在参数和函数体中间。
tips:(1)如果没有参数,或有多个参数,用小括号定义参数列表;
(2)如果有一个参数,可以不用();
(3)如果函数体中只有一条语句,可以将大括号以及return去掉。
(4)箭头函数没有构造器,如果要new一个函数对象,使用function定义,箭头函数会出错。
this指向问题:
(1)普通函数的this对象指向调用者,如果没有调用者是指window对象;
(2)箭头函数没有自己的this,他的this对象是继承来的,默认指向在定义它时所处的对象(宿主对象)。
箭头函数的主要适用场合:
(1)回调函数(一个函数是另外一个函数的参数时);
(2)this用继承过来的时候。

3.数组中新增的高级函数

1.fitler,数组调用filter时,filter传入回调函数,数组的每一个值传入一次调用一次函数,当函数返回true时,将此数值加入到新的数组中。
2.map,同filter的用法差不多,也是每个值调用一次回调函数,返回操作的值。
3.reduce,传入一个回调函数和一个数值,回调函数有两个参数,分别是s,n,reduce函数传入的另外一个参数就是s的初始值,n时数组中每次传入的数值,每次调用回调函数s是上一次调用的返回值。此函数用于做求和等计算时比较方便。
let sum=arr.reduce((s,n)=>s+n,0);

4.set、map

1.set:add、delete、has、size、clear等方法,set中元素不能重复,set中的元素可以是不同的数据类型。
2.map:set添加元素,需要指定键值对,get获取元素

5.字符串新增高级函数

startsWith()、endsWith()

6.解构赋值

let [a,b,c] = [1,2,3];
这个语句表示将数组中的123分别赋值给变量a,b,c。
接收的可以少于实际的,按顺序赋值即可。
对象使用解构赋值时接受的变量名必须与实际对象的键的名字相同

7.三点运算符

(1)用于合并数组,
let arr1=[1,2,3];
let arr2 =[4,5,6];
let arr3=[…arr1,4,5,6,…arr2];
(2)一个函数调用数组中的所有元素时也可以用此运算符。

8.新增了class、extends关键字

9.json对象的新应用

(1)属性和值名字一样可以简写为一个;
(2)方法一样可以简写
(3)串行化:JSON.stringify();
反串行化:JSON.parse();

10.模块化编程module

优点:1.减少命名冲突;
2.避免引用时的层层依赖‘;
3.可以提升执行效率,可以导入导出部分页面而不是全部。
export命令:一个模块就是一个独立的文件,文件内部的变量方法等,外部无法获取,使用export导出本模块内的变量方法,一般以json的形式导出,一般也会用到解构赋值的方法。
可以单独导出,也可以最后一起导出 *,每个文件可以有一个缺省导出default,还可以用as起别名。
import命令:此命令接受一对大括号,里面指定要从其他模块导入的变量名。大括号里面的变量名,必须与被导入模块的对外接口的名称相同。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值