一、let,const, var的区别
- var 声明的变量可以进行变量提升, let const声明的变量不能变量提升,因为在代码块内用let或者cont声明变量 当前代码块会形成一个暂时性的死区
- let声明的变量和var一样可以不给值 并且可以重新赋值
- const声明的变量必须给值 而且不能重新赋值,所以用来定义常量
二、解构赋值
- . . ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构
var arr = [1, 2, 3]
let [a, b, c] = arr
a = 1、 b = 2、 c = 3
三、es6中keys的作用
- 传入对象,返回的是属性名
var obj = { 'a': 123, "b": 456 };
console.log(Object.keys(obj)) //["a","b"]
var obj1 = { 100: "a", 2: "b", 23: "c" };
console.log(Object.keys(obj1)) //["2", "23", "100"]
var obj2 = Object.create({}, {
GETfOO: {
value: function() {
return this.foo
}
}
});
obj2.foo = 3;
console.log(Object.keys(obj2))
- 传入字符串,返回索引
var str = 'asfdw4tergdfv';
console.log(Object.keys(str))
//["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"]
- 输入构造函数,返回的是空数组或则属性名
function Pasta(name, age, gender) {
this.name = name;
this.age = age;
this.gender = gender;
this.toString = function() {
return (this.name + ", " + this.age + ", " + this.gender);
}
}
console.log(Object.keys(Pasta)) //[]
var newPasta = new Pasta("lilei", 20, "male");
console.log(Object.keys(newPasta)) //["name", "age", "gender", "toString"]
- 传入的数组,返回的索引
var arr = [1, 24, 45, 67];
console.log(Object.keys(arr)) //["0", "1", "2", "3"]
四、set和map:即数组和对象的升级版本
set:数组的升级版本
add:添加唯一值
delete:删除某一个值
clear:删除所有
forEach:遍历set对象
注:可以用set来实现数组去重,
var arr=[3, 4, 5, 5, 2, 2, 4, 6, 562, 2]
例如:[...new Set(arr)]
map:对象的升级版本
let m1=new Map() 创建map对象
m1.set(key,value)设置key的值
m1.get(key)获取key对应的值
m1.keys()获取key所组成的对象
m1.values()获取value组成的对象
m1.entries()获取key,values组成的对象
m1.forEach()遍历map对象
五、什么是模块化?导入和导出的方法是什么?
- 模块化开发指的是在解决某一个复杂问题或者一系列问题时,依照一种分类的思维把问题进行系统性的分解。
- 模块化是一种将复杂系统分解为代码结构更合理,可维护性更高的可管理的模块方式。对于软件行业:系统被分解为一组高内聚,低耦合的模块。
1、导入方法
export default {}
2、导出方法
import {key} from ‘模块文件所在的地址’
六、for…in和for…of的区别
- 推荐在循环对象属性的时候,使用 for…in,在遍历数组的时候的时候使用for…of。
- for…in 循环出的是 key,for…of 循环出的是 value
- 注意,for…of 是 ES6 新引入的特性。修复了 ES5 引入的 for…in 的不足
- for…of 不能循环普通的对象,需要通过和 Object.keys()搭配使用
_ 暂时先列举这六种,后续有时间还会补充,感谢观看,点个关注一起进步_