1、ES6简介:
1)、ECMAscript 与 Javascript的关系:
ECMAscript是规范,而Javascript是规范的具体实现,两者不能相提并论。
2)、ECMA的几个重要版本:
ECMA这个组织在2015年之前,使用的都是ECMAscript 5这个版本;
ECMA在2015年6月份正式颁布ES6,而之后的版本变化不大,以后每年6月份颁布新
版本(这个组织提的一些新规定);
ECMA在2016年颁布的版本称之ES7
2、let 和 const:
1)、ES6之前定义变量的方式:
定义变量:
以前 var 能够变量提升
可以带var 也可以不带var
2)、ES6定义变量的方式:
let 声明变量
①. 没有变量提升,先声明后使用
②. 而且新特性当中必须先声明后使用,
③. 只能声明一次
④. 块级作用域。let没有函数作用域
不考虑IE的情况下,或者在我们的Node或者使用前端框架去写东西,就不要用var了
const 声明常量
值不能改变,其它和let特性是一样的
常量名一般都使用大写
拓展:
我们知道,在javascript中只有全局作用域和函数作用域,并不存在块级作用域。这样,在使用时就会出现一些问题。 下面我们先来举例说明let块级作用域的使用。
{
var a = 5;
let b = 10;
}
console.log(a); //5
console.log(b); //报错 b is not defined
3.解构赋值:
解构赋值
* 解构:解析结构
* 赋值:
数组解构(用的场景比较少)
两两数据交换
对象解构(用的场景比较多)
1)、数组解构:
let arr1 = [11, 22, 33]
let [a, b, c] = arr1
console.log(a, b, c);//11 22 33 完全解构
2)、对象解构赋值:
var obj = { username: 'admin', age: 18 }
console.log(obj.username, obj.age); //admin 18
let { username, age } = obj //对象解构简写形式
//完整形式为:{ username:username,age:age } = obj1
console.log(username, age); //admin 18
let { username: u, age: a, sex } = obj
console.log(u, a, sex);//sex=undefined
3)、解构赋值的默认值:
var [a,b] = [11]
console.log(a,b) //11 undefined
//注意:默认值需要从后往前设置
var [c, d = 18] = [11]
console.log(c, d) //11 18
//默认值生效 必须右边为严格undefined的时候
var [x, y = 3] = ['aa', null]
console.log(x, y); //aa null
4、模板字符串:简化字符串的拼接:
1). 模板字符串必须用“
2). 变量的部分使用${xxx}定义
console.log(`你好啊,这个模板字符串真好用 我叫${username},年龄${age} `)
5、对象的简写形式:
var a = 1
var b = 2
var json = {
a, //简写形式
b,
fn1: function () {
//函数简写和普通的写法性质是完全一样的
console.log(this, 'fn1');
},
fn2() {
console.log(this, 'fn2');
}
}
console.log(json);
json.fn1();
json.fn2();
© 版权声明
站内部分资源由网友投稿或收集于网络,若侵犯了您的合法权益,请联系我们删除
THE END










暂无评论内容