ES6是javascript的下一个版本,也叫做ECMAScript 2015,相对于es5,es6添加了许多新的特性,语言语法更加规范了,es6的出现使javascript步入了编程语言的正规军行列里,很多公司都逐渐使用es6语法进行发开,对于新的东西,我们要去拥抱它。
1.变量与常量
- es6出了一个let来定义变量,目的是想取代var,
{
// let的作用域在括号里
let a = 10;
var b = 15;
}
- 常量的定义
常量:不能被重复定义;关键字const
const PI = "3.14159265358979323846";
2.模板字符串
将一串字符串写在``之间,使用${}书写变量或者函数的调用,这个在渲染页面时使用简化了代码
let str = `姓名是${name}年龄是19`;
3. 对象的写法
方法:es6简写了:function,在es5中对象的方法的写法:action:function(){},
var Dog = {
name:"ll",
sex:"母",
action(){
var eat="食物";
var happy="哈哈";
var jiao="大声的";
console.log(eat,happy,jiao);
}
}
4. 箭头函数
- 下面是有参和无参的写法(es5与es6的对比)
// ------------有参函数--------------
// es5写法
var test = function(str){
return str;
}
// es6写法,自带return
var test = (test)=>str;
// ------------无参函数--------------
// es5写法
var test = function(){
var str = "你好";
return str;
}
// es6写法
var test = ()=>{
var str = "你好";
return str;
}
- 返还对象时加括号 "{}"作用域和对象冲突情况;在对象外面加个括号
var test = ()=>({
name: "张三",
age:19
})
- this穿透
下面是对象方法的es5和es6写法,es5,action1打印的this肯定是obj,二es6,action2打印的this是window; 箭头函数有this穿透,指向上一层。
var obj = {
// es5写法
action1:function(){
console.log(this);
}
// es6 箭头函数写法;(this穿透),指向上一层
action2:()=>{
console.log(this);
}
}
5. 类的概念
在es5里没有类的概念,使用构造函数模拟类的效果,es6出了类的概念,用处和c++,java等里的类相似。
- 类的写法:使用关键字class,构造函数关键字constructor:类最开始在加载的时候执行;
// 类es6
class Person{
// 构造函数 类最开始在加载的时候执行;
constructor(name,age){
this.name = name;
this.age = age;
}
hobby(){
console.log("喜欢篮球");
}
showName(){
console.log(this.name);
}
}
- 类的继承
使用关键字extends和super方法
class Student extends Person{
constructor(name,age){
// 继承属性
super(name,age);
}
action(){
console.log("我是action函数");
}
}
- 类的实例化
// 实例化对象
var newStudent = new Student("李四",19);
// 对象的属性
console.log(newStudent.name);
// 调用对象的方法
newStudent.hobby();