ES6

let与const

声明一个变量常见的是var
他们有这样几点不同:
var用于全局变量,可以声明多次
let用于局部变量,只可声明一次
const声明的变量必须初始化,否则会报错

{
  let a = 0;
  var b = 1;
}
局外输出b=1,但是a检测不到值
const A;
直接输出A会显示错误

解构赋值

数组模型的解构

解构赋值可以让代码更加简洁明了,无需一个字符一个字符声明赋值。有一些常见类型

let [a, b, c] = [1, 2, 3];//基本
let [a, [[b], c]] = [1, [[2], 3]];//可嵌套
let [a, , b] = [1, 2, 3]; //可忽略
let [a = 1, b] = []; // a = 1, b = undefined //不完全解构
let [a, ...b] = [1, 2, 3];//a = 1  b = [2, 3]//剩余运算符
let [a, b, c, d, e] = 'hello';//字符串等

注意:当解构模式有匹配结果,且匹配结果是 undefined 时,会触发默认值作为返回结果。

let [a = 3, b = a] = [];     // a = 3, b = 3
let [a = 3, b = a] = [1];    // a = 1, b = 1
let [a = 3, b = a] = [1, 2]; // a = 1, b = 2
对象模型的解构
//基本
let { foo, bar } = { foo: 'aaa', bar: 'bbb' };
// 结果 foo = 'aaa', bar = 'bbb'
let { baz : foo } = { baz : 'ddd' }; // foo = 'ddd'

不完全解构
let obj = {p: [{y: 'world'}] };
let {p: [{ y }, x ] } = obj;
// x = undefined,y = 'world'

剩余运算符
let {a, b, ...rest} = {a: 10, b: 20, c: 30, d: 40};
// a = 10   b = 20  rest = {c: 30, d: 40}

MAP

Map类型是一种存储着许多键值对的有序列表

// 创建map对象
let map = new Map(); 
// set() 设置键值对
map.set('title', 'map title');
// get() 获取键对应的值, 不存在则返回undefined
map.get('title'); // map title

map的方法

var myMap = new Map();
myMap.set("bar", "baz");
myMap.set(1, "foo");

myMap.size;       // 2
myMap.has("bar"); // true

理解map后通常要去尝试了解for…of和forEach两个迭代的高级方法,迭代即更替

箭头函数

箭头函数也可以使代码更简洁

如x => x * x
相当于
function (x) {
    return x * x;
}
var f = (id,name) => ({id: id, name: name});
f(6,2);  // 结果 {id: 6, name: 2}

数组方法

   Array.of() 函数可将参数转换为数组,参数值可以包含不同类型
   Array.from() 函数将类数组对象或可迭代对象转化为数组。可以这样理解,与Array.of() 不同的是Array.of() 中的是参数,而Array.from() 中的是数组
   map 函数涉及到数组中每个元素的处理
   在了解之后我会继续尝试其中的扩展(查找、填充、遍历等)
let map = {
    do: function(n) {
        return n * 2;
    }}
let arrayLike = [1, 2, 3];
console.log(Array.from(arrayLike, function (n){ //arrayLike是伪类数组,这里没有特指逐个都会赋值
    return this.do(n);//将参数处理后返回这里
}, map)); // 结果[2, 4, 6]

类数组对象
一个类数组对象必须含有 length 属性,且元素属性名必须是数值或者可转换为数值的字符

let arr = Array.from({
  0: '1',
  1: '2',
  2: 3,
  length: 3
});
console.log(); // ['1', '2', 3]

转换可迭代对象

下面将元素给map处理,用Array.from将map的字符串转换为数组
let map = new Map();
map.set('key0', 'value0');
map.set('key1', 'value1');
console.log(Array.from(map)); //结果[['key0', 'value0'],['key1',
// 'value1']]

将arr赋给对象Set用Array.from转换为数组
let arr = [1, 2, 3];
let set = new Set(arr);
console.log(Array.from(set)); // [1, 2, 3]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值