- 书籍:阮一峰es6标准入门第三版
- 立即执行函数
- 闭包
- 解决var存在的问题,出现了let和const定义
let
- 不存在变量提升
- 不能重复定义
- 存在暂时性死区
- 块级作用域
- let定义的不在window下
const
- 相当于声明一个只读常量,不可更改
- 不可更改的实质是内存地址不可改变
- RE:多从内存地址的角度考虑问题
变量的解构赋值
从数组和对象中提取值,对变量进行赋值就是解构
有以下几种:
- 数组解构
- 对象解构
- 字符串解构
- 应用:函数参数的解构赋值、函数返回值、变量互换、json应用
- 数组根据索引来,而对象不是,不能用索引,只能通过对象名
扩展运算符)和rest运算符(…)
- 不确定参数
(arg接收不确定新数组参数) - 作为数组的一部分
- 数组复制
- 合并数组
- 合并对象
- 解构
- 解构赋值——只能实现半深克隆
- rest();剩余的
字符串扩展
- 模板字符串(反引号) ${},支持标签、换行、数学运算
- indexOf()——检索字符串,有返回索引,没有返回-1
- includes()——检索是否包含
- startsWith()
- endsWith()
- padStart(n,“XXXX”)——把字符串加长,从头加,只能加长,不会减短
- padEnd()——从尾加
- repeat()
数值扩展
逐步减少全局性方法,更加模块化
- 进制转换
- Number.isFinite()——是否为数字
- Number.isNaN(NaN)——判断是否是NaN
- Number.isInteger(5)——判断是否为整型
- Number.parseInt——把浮点型等转化成整型
- Number.parseFloat
- Number.isSafeInteger——安全范围内数字【js最大是2的53次幂】
- Math.trunc()——去掉一个数的小数部分,保留整数部分
- Math.sign()——,判断正负数,正数返回1,0返回0,负数返回-1
函数扩展
- 参数默认值,与解构赋值结合(类似于解构)
- 方法.length——返回没有指定默认值的参数个数
- 方法 .name——返回函数名
- rest参数
- ‘use strict’——严格模式:
所谓严格模式即:
1. 变量必须先显式声明再使用,不能隐式声明
2. 禁止this关键字指向全局对象,构造函数必须new