1、let声明变量
var声明的变量没有局部作用域,可声明多次
let声明的变量有局部作用域,只能声明一次
不存在变量提升
2、const声明常量
const常量值一旦定义,不能改变,必须初始化
不存在变量提升,块级作用域
3、解构赋值
数组解构 : let [x, y, z] = [1, 2, 3] ;
对象解构 : let user = {x : 1, y : '2'}; let { x, y } = user; !!结构的变量必须是user中的属性
4、模板字符串
可以换行:使用反引号 ` ` 可以实现换行
解析变量:在 `` 中可以插入变量和表达式,变量和表达式写在 ${} 中
在 `` 中可以调用方法,let str = ` demo, ${ f1() } `
5、声明对象简写
const age = 12; const name = "zyl"; //定义常量
const person = { name : name, age : age } //传统写法
const person = { name, age }; //简写
6、定义方法简写
const person = { sayHi : function(){ } } //传统定义
const person = { sayHi(){ } } //简写定义
7、对象拓展运算符
对象拷贝: let person1 = { name : "zyl", age = 12 }(对象)
let person2 = { ...person1 }(拷贝)
对象合并: let name = { name : "zyl" }(对象1)
let age = { age : 18 }(对象2)
let person = { ...name, ...age }(合并)
8、箭头函数
语法:参数=>函数体
var f1 = function(m){ return m } //传统函数
var f2 = m => m //箭头函数(return 可省略)
箭头函数没有自己的this
9、剩余函数
形参:(...形参)表示接收所有形参
10、array的扩展方法
扩展运算符(...ary):可将数组或对象转化 为用逗号分隔的参数序列
扩展运算符数组合并:
方法一:let ary1=[]; let ary2=[]; let ary3[...ary1, ...ary2]
方法二:ary1.push(...ary2);
将伪数组转化为真正的数组: array = [...array1];(array1)是伪数组,获得的array是真正的数 组。
构造函数方法:Array.from() 将类数组或可遍历对象转化为真正的数组
方法还可以接收第二个参数,作用类似于map方法,用于对每个元素进行处理,返回处理好的值
find():用于找出第一个符合条件的数组成员,如果没找到返回undefined
findIndex():用于找出第一个符合条件的数组成员的位置,如果没找到返回-1
include():表示某个数组是否包含给定的值,返回布尔值
String的扩展方法
startsWith():表示参数字符串是否在原字符串的头部,返回布尔值
endsWith():表示参数字符串是否在原字符串的尾部,返回布尔值
repeat(n):表示将原字符串重复n次,返回新字符串
11、Set数据结构
set本身是一个构造函数,用来生成set数据结构,类似于数组,但成员的值都是唯一的,没有重复的值
add(value):添加某个值,返回set结构本身
delete(value):删除某个值,返回一个布尔值,表示是否删除成功
has(value):返回一个布尔值,表示该值是否为set成员
clear():清除所有成员,没有返回值
12、
创建类
class 类名{ } (类名首字母大写)
类里的共用属性和方法一定要加this
constructor函数
可以接收传递过来的参数,同时返回实例对象
只要new生成实例是,就会自动被调用
方法
方法之间不用加逗号
方法名(参数){ }
继承
class 子类名 extends 父类名{ }
super调用父类中的方法
super放在子类this前