es6学习笔记(es6-11 js高级 promise)
es6学习目录
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
let与var
let与var的区别:let为块级作用域,var为全局作用域,一般在用for循环时会使用块级作用域,以防止污染。
var arr = []
for (var i = 0; i < 2; i++) {
arr[i] = function() {
console.log(i)
}
}
arr[0](); //这里输出2
arr[1](); //这里输出2
var arr = []
for (let i = 0; i < 2; i++) {
arr[i] = function() {
console.log(i)
}
}
arr[0](); //这里输出0
arr[1](); //这里输出1
const
const也为块级作用域
解构赋值
解构赋值:在定义类中时,解构赋值的名字一定要与类名一致。
const team = [1, 2, 3, 4];
const [x, xx, xxx, xxxx] = team
console.log(x)//1
console.log(xx)//2
展开运算符,可以将多余的参数存为数组
let xx = [1, 2, 3, 4]
let yy = [2, 3, 4, 5]
let zz = [...xx, ...yy] //(8) [1, 2, 3, 4, 2, 3, 4, 5]
模板字符串
模板字符串:``反引号,拼接字符串可以直接加${},括号里面写内容
var str1 = "name"
let str = `abcacb${
str1}`
console.log(str) //abcacbname
箭头函数
箭头函数声明特点:如果使用call方法调用,箭头函数将会继续静态指向第一次声明的值。不能用来实例化对象和使用arguments对象(只有function可以用来实例化对象与使用arguments对象)。使用场景:addEventListener
Symbol
es6的数据类型有:Number,String,Boolean,Object,null,undefined和Symbol。
Symbol作为属性名的三种用法:
let sy=Symbol("kk")
let syyy={
}
syyy[sy]="kkk"
console.log(syyy) //{Symbol(kk):"kkk"}
let syyy={
[sy]:"kk2"
}
console.log(syyy) //{Symbol(kk):"kk2"}
let syyy={
}
Object.defineProperty(syyy,sy,{
value:'kk3'}) //第一个为集合名,第二个为symbol类型,第三个为你要将此symbol赋什么值
console.log