Es6 常见语法的使用
1. let const var
ES5
中作用域有:全局作用域、函数作用域。没有块作用域的概念。
ES6
中新增了块级作用域。块作用域由 { } 包括,if语句和 for语句里面的{ }也属于块作用域。
1.关于块级作用域
2.关于var、let、const的区别
-
var
定义的变量,没有块的概念,可以跨块访问, 不能跨函数访问。 -
let
定义的变量,只能在块作用域里访问,不能跨块访问,也不能跨函数访问。 -
const
用来定义常量,使用时必须初始化(即必须赋值),只能在块作用域里访问,而且不能修改。
3.const定义的对象属性是否可以改变
因为对象是引用类型的,person中保存的仅是对象的指针,这就意味着,const仅保证指针不发生改变,修改对象的属性不会改变对象的指针,所以是被允许的。也就是说const定义的引用类型只要指针不发生改变,其他的不论如何改变都是允许的。
-
let/const
定义的变量不会出现变量提升,而var
定义的变量会提升 -
相同作用域中,
let
和const
不能出现重复声明。而var
就可以重复声明 -
const
声明变量时必须设置初始值扫描二维码关注公众号,回复: 8645486 查看本文章 -
const
声明一个只读的常量,这个常量不可改变。 -
在这里有个非常重要的点:JS中,复杂数据类型,存储在栈中的是堆内存的地址,存在栈中的这个地址是不变的,但是存在堆中的值是可以变的。
2. 箭头函数
箭头函数相当于匿名函数,并且简化了函数定义。
箭头函数有两种格式,
x => x * x
上面的箭头函数相当于:
function (x) {
return x * x;
}
一种像上面的,只包含一个表达式,连{ ... }
和return
都省略掉了。
还有一种可以包含多条语句,这时候就不能省略{ ... }
和return
x => {
if (x > 0) {
return x * x;
}
else {
return - x * x;
}
}
3. 对象、属性的简写
4. 模板字符串
模板字符串是在ES6中兴起:用反引号(`)标识,它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。
5. Promise
先学习promise
的基本概念。
-
promise
只有三种状态,未完成,完成(fulfilled
)和失败(rejected
)。 -
promise
的状态可以由未完成转换成完成,或者未完成转换成失败。 -
promise
的状态转换只发生一次 -
promise
有一个then
方法,then
方法可以接受3个函数作为参数。前两个函数对应promise
的两种状态fulfilled
,rejected
的回调函数。第三个函数用于处理进度信息。
参考文章:
let,const,var的区别有哪些_xiaoHelloWord的博客-CSDN博客
https://blog.csdn.net/xiaoHelloWord/article/details/94429357
【ES6】var、let、const三者的区别_joker-CSDN博客 https://blog.csdn.net/unionz/article/details/80032048
箭头函数 - 廖雪峰的官方网站 https://www.liaoxuefeng.com/wiki/1022910821149312/1031549578462080
模板字符串()的用途_轨迹-CSDN博客 https://blog.csdn.net/zwt_guiji/article/details/81979299
Nodejs-使用 promise 替代回调函数_hellochenlu的博客-CSDN博客 https://blog.csdn.net/hellochenlu/article/details/50081775