ES6学习
1、let块级变量
usage :使用于循环中,解除闭包麻烦
2、块级作用域-可以多层嵌套
note: 没有返回值
{{}}
3、do{} 表达式
note: 可以将块级作用域的代码作为返回值
var test = do
{ let t = f();
t = t * t + 1;}
4、匿名函数--箭头函数
note:无return
var m = (x,y)=>x+y;
var m = (x,y)=>{x+y};
5、const命令
note:const声明一个只读的常量。一旦声明,常量的值就不能改变。
6、变量对位赋值[解构]
var [a, b, c] = [1, 2, 3];
a=1
b=2
c=3
note:解构不仅可以用于数组,还可以用于对象。
var { foo, bar } = { foo: "aaa", bar: "bbb" };
foo // "aaa"
bar // "bbb"
note:字符串的解构赋值
const [a, b, c, d, e] = 'hello';
a // "h"
b // "e"
c // "l"
d // "l"
e // "o"
当然还有数值和布尔值的解构赋值、函数参数的解构赋值
参考用途:http://caibaojian.com/es6/destructuring.html
7、参数的默认值
var m = x||56;
8、字符串的遍历器接口
for (let codePoint of 'foo') {
console.log(codePoint)
}
9、ES6 数组的扩展
Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括ES6新增的数据结构Set和Map)。
Array.from()
10、Array.of方法用于将一组值,转换为数组
11、ES6 对象的扩展
var name = "xgx";
var age = 26;
var json = {name,age};
以上ES6新写法,自动将变量变成作为对象的key,等价于
var json = {"name":name,"age":age}
12、ES6 symbol--第七种数据类型
前六种是:Undefined、Null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。
let s = Symbol();
typeof s
// "symbol"
13、消除强耦合
字符串“Triangle”就是一个魔术字符串。它多次出现,与代码形成“强耦合”,不利于将来的修改和维护。
14、ES6函数入参新特性,指定参数的默认值
ES5指定默认值的方式:
function buy(name,age){ name= name||'apple'; age=age||5; console.log(name,":",age) } buy() apple : 5
ES6则直接在参数定义里面设置函数参数的默认值,简化了默认值的处理:
function buy(name="pen",age="1"){ console.log(name,":",age) } buy(); pen : 1
15、箭头函数的写法理解
说一下我当时遇到这个写法的的疑惑,是我太菜,没看懂是箭头函数,总以为该箭头函数必须要这样写,()=>{ ...函数体代码} ,
var m = (x,y)=>x+y;
var m = (x,y)=>{x+y};
查了一下,如果箭头函数直接返回一个对象,必须在对象外面加上括号。这里是直接返回了一个对象的写法,()=>({}) 等价于 ()=>{return {}}。
希望对箭头函数有疏漏的童鞋留意一下。
var mi =x=>{return x+2} var mi =x=>x+2 var mi =x=>(x+2) //结果 mi(8) 10
以上三种写法返回的是函数,下面返回的是对象
var mi =x=>({x})//{x: 8}