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
暂无评论内容