2020年5月11日 星期一
今天主要复习了js、ES6的知识,ES是由Ecma组织下的TC39委员会制定的,我们常用的ES2015(简称:ES6)。
github:es6源码 https://github.com/tc39/ecma262
let const var区别
let 只在let命令所在的代码块内({})有效,变量;
const 只在let命令所在的代码块内({})有效,常量;
var 无作用域,全局,变量,可先使用,后声明。
箭头函数
箭头函数的this指向规则:
头函数没有prototype(原型),所以箭头函数本身没有this
let a = () =>{};
console.log(a.prototype); // undefined
使用箭头函数,可以让我们的回调函数特别的简洁。
解构赋值:
可以对相同结构的类型进行值的提取,通常对数组或对象处理
//数组的解构 var arr = ['hello', 'vue.js']
var [a, b] = arr;
//对象的解构
var obj = {
name: 'alice',
age: 20,
address:'北京'
}
var { name, address } = obj
set和map:
set:可以理解成是不重复的数组
add:添加一个值 delete:删除一个值 clear:删除所有值 通过for of 来遍历set数据结构 如何通过set可实现数组去重?
var arr=[3,4,5,2,2,3,5,6,3,5,65,46,34,23,2]
Array.from(new Set(arr))
或[...new Set(arr)]
set和数组的互转:
-
数组转换成set:new Set(数组)
-
set转换成数组:Array.from(set类型的变量) set官文档:developer.mozilla.org/zh-CN/docs/…
map:可以理解成是一个对象
注意:注意这里的map是一个构造函数,不是数组中的map
优点:可以将将任意的数据类型的值当作对象的属性来使用,避免了传统的对象属性只有是字符串类型 map官方mdn文档:developer.mozilla.org/zh-CN/docs/…
展开运算符或rest: ... ...有两个作用:
将数组转换成数据列表 (展开操作) [3,4,5]=>3,4,5 例如:
//实现合并两个数组
var arr1=[3,4,5]
var arr2=[6,7,8]
var result=[...arr1,...arr2] 4,5,6,7,8
将数据列表转换成数组(rest操作) 4,5,6,7,8 => [ 4,5,6,7,8]
function sum(...test) {
var result=0;
for(var i=0;i<test.length;i++) {
result+=test[i]
}
return result;
}
sum(3,4,4,5,5)