ES6常用语法及实际应用

// 一、let和const

console.log(a);
var a = 1; // undefined

console.log(b);
let b = 2; // 报错

// 只有var和function会变量提升,提前解析;

// 华丽的分割线=======================================================================
function f(){
    var a = 1;
    if (true){
        var a = 2;
    }
    console.log(a);
}
f();// 2

function f(){
    let b = 1;
    if (true){
        let b = 2;
    }
    console.log(b);// 1
}
f();// 1
// 块级作用域{}
// let 严格的块级作用域 得不到if中的let
// var是函数作用域

// 华丽的分割线=======================================================================

// const 声明一个只读的常量(一旦声明不能更改) 不能只声明不赋值,一定要初始化。

const obj = {};
obg.name = 'john';
console.log(obj); // {name:'john'}

const arr = [];
arr.push(1);
console.log(arr); // [1]
//二、set和map

// set类似于数组,但是成员唯一
var s = new Set();
s.add(1).add(2);

// 另一种
var s2 = new Set([1,2,2,2,4,4,4,4,6]);
console.log(s2); // {1,2,4,6}

// 虽然类型变了,那么就顺便来个数组去重?
var s3 = Array.from(s2);
console.log(s3);// [1,2,4,6]

// 那么再看看
console.log(...s2); // 1,2,4,6
// 意思就是说我们可以这样 那么数据类型转换成功啦
console.log([...s2]);// [1,2,4,6]

// map不是地图哦

var m = new Map(); // 类似与对象,键值对进行存储;
m.set('name','Anna');

m.set('name','Anna').set('age',18);

m.get('age',18);
// map的键可以不是字符  可以和对象进行区分 
// 在对象中循环遍历 for in
// 在map中循环遍历 for of

for (let [k,v] of m){
 
}

// 类型转换
var m2 = new Map([['a',1],['b',2],['c',3],['d',4]]);
console.log(m2);

var o = {};
for (let [k,v] of m2){
  o[k] = v
}

console.log(o);

 

你可能感兴趣的:(ES6常用语法及实际应用)