var
:
let
与const
:不存在上面三种特征,let
与const
的区别:
let
定义的是变量,值是可以改变的const
定义的是常量,值是不能被改变的,所以const
在定义的常量的时候就要给他赋值function
关键字省略,在() {}
之间加上箭头 =>
()
,注意,没有形参不能省略{}
arguments
】对象this
与定义箭头函数的外部作用域的this
相同//1. 定义函数
//ES6之前定义方式
const fun1 = function(val) {console.log('Hello world!')}
//箭头函数定义方式
const fun2 = (val) => {console.log('Hello world!')}
//箭头函数省略()
const fun3 = val => {console.log('Hello world!')}
//箭头函数省略{}
const fun4 = val => console.log('Hello world!')
function fun(a = 100) {}
// 1. 解构数组
let[a, b] = [100, 200];
// 2. 解构对象
let{name, age} = {name:"zhangsan", age:23}
// 3. 解构对象映射
let{name:myName, age:myAge} = {name:"zhangsan", age:23}
模板字符串与普通字符串的区别:
${}
解析变量let age = 23;
let name = '张三';
let[a, b, c] = ['篮球', '足球', '排球']
let content = `大家好,我叫${name}, 今年${age}岁,我的爱好有:
- ${a}
- ${b}
- ${c}`
console.log(content)
...
class
类语法就是解决构造函数的弊端new
关键字直接调用,但是就没有了意义class Person{
//构造函数
constructor(name, age) {
this.name = name;
this.age = age;
}
//成员方法
sayHi() {
console.log('Hello world!')
}
//静态成员
static a = 100
//静态方法
static sayHello() {
console.log('Hello world!')
}
}