【NodeJS】学习Koa之前的一些准备工作:Es6 的一些常用语法

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定义的变量会提升

  • 相同作用域中,letconst不能出现重复声明。而var就可以重复声明

  • const声明变量时必须设置初始值

  • 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

发布了143 篇原创文章 · 获赞 29 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_42554191/article/details/104008533