es6基础笔记
关于let
①let声明变量的作用域是块级作用域,即在{}外面不能访问
② 暂时性死区 即在作用域内,先用后声明
③ 在同一个作用域内不能重复使用
④ 防止变量污染
⑤ 在for中的let:
( )中的let默认为父作用域
{ }中的let默认为子作用域
注意:在es6中新增的声明变量方式中,在同一个作用域中全部都是唯一的,禁止重复声明.
var let const的区别是什么?
1: var 有变量提升,可以重复命名,默认全局变量
2: let 形成块级作用域 没有变量提升 不能重复命名
3: const 声明的常量(在node中用较多),赋值基本类型时值不可修改,赋值引用
类型时可以修改,没有提升,不能重复命名.
注:因为obj赋值的是地址,地址指向的是对象,可以修改(引用类型可以修改)
模板字符串
基本用法:
var s1=`abc`
优势:
var obj={name:"鱼旦",age:18};
var s1='我叫:'+obj.name+',今年:'+obj.age+'岁.'
使后期的维护更容易
宏任务与微任务
在JavaScript中将异步任务分为宏任务和微任务
1. 宏任务(macrotask)
异步Ajax请求、
setTimeout,setinterval、
文件操作、
其他宏任务
2. 微任务(microtask)
Promise.then,catch和.finally
process.nextTick
其他微任务
3.执行顺序如下图:
宏任务-->执行结束-->是否有微任务?-->否-->执行下一个宏任务
是-->执行所有微任务
解构赋值
概念:所谓的解构,就是将其结构进行分解.然后进行赋值.
解构对象、数组
解构对象:
需要哪个;就取值哪个就可以了,不用全部都获取。
例如:
let a = obj.a;
let b = obj.b;
let t = obj.a;
let {a,b} = obj;
声明变量t 赋值 obj.a
let { a: t} = obj;
解构数组:
结构数组 [变量,变量]
变量赋值是,数组做阴对应的数据
let [c, d, e] = [1, 2, 3]
console.log(c, d, e);