心情不好就少听悲伤的歌,饿了就自己找吃的,怕黑就开灯,想要的就自己赚钱买,即使生活给了你百般阻挠,也没必要用矫情放大自己的不易,现实就这么残酷。改变不了的事就别太在意,留不住的人就试着放弃,受了伤的心就尽力自愈,除了生死,都是小事,别为难自己。
let 和 const
var 声明的重复变量会被覆盖,浏览器自动提升变量,不局限于块级别。
let 声明的变量没有变量提升,作用域是块级别,不能重复声明,不会污染全局变量。
const 一般声明常量,一旦声明,无法修改,但用于声明对象、数组时,可对对象内属性值进行修改,如下。
const Test = {
name:'Alex'
}
Test.name = 'Max';
通常情况用const比较多,只有在明确知道变量需要被修改的情况下用let。
模板字符串
代码中使用tab键上方的反引号 "
" 表示模板字符串,在模板字符串中插入变量时使用 " ${变量名} " 来拼接字符串。(Vue中的Template的模板字符串应用)
函数
剩余参数的用法,解决了arguments的问题
扩展运算符:...
与剩余运算符区别是把多个独立的参数合并到一个数组中,一般用在形参上。
扩展运算符是把一个数组分割并且将各项作为分离参数传给函数。
箭头函数!!!
使用 => 来定义函数。
function(){} 等价于 ()=>{}
this指向的问题
es5中的this指向取决于调用该函数的上下文对象。
解构赋值
利用一行代码搞定下图所示多行写法,代码简洁易读。
完全解构(取全部属性)
Set集合:无重复值的有序列表
Map类型:键值对的有序列表,键和值可以是任意类型
数组扩展方法
ES6的Promise对象
各种异步操作都可以用promise处理。
特点:
- 对象状态不受外界影响
三种状态:Pending(进行中)、Resolved(成功的结果)、Rejected(失败的结果) 状态一旦发生改变,不可逆。
promise的then方法有两个参数,第一个参数对应成功,第二个参数对应失败返回的值。.then(res=>{},err=>{}) || .then(res=>{}).catch(err=>{})
async关键字
作用:使异步操作更加方便。
async后面需要定义一个函数。
async会返回一个promise对象。
await命令一定是用在async函数中。
类
类的继承
ES6的模块化实现(module)
ES6的模块化功能主要有两个命令组成:export(抛出)、import(导入)
- export用来规定模块的对外接口
- import用于导入其他模块提供的功能
一个模块就是一个独立的文件。
//test.js文件
export const name = 'test'
//index.js文件
import {name} from './test.js'
导出命名语法:export default.
一个模块中只能使用一次export default命令,但可以使用多次export命令抛出。