JavaScript: ES6 代码笔记

// let
let name = "小明"
// const
const AGE = 18
// 解包
// 数组
let [a,b,c] = [1,2,3]
console.log(a,b,c)

// 对象
let {username, age} = {username:"xm", age: 19}
console.log(username,age)

// symnbol 表示独一无二
const ADD = Symbol("add")
console.log(typeof(ADD))

// Map Map键可以是任意数据类型, object建只能是字符串和symbol类型

let myMap = new Map();

let keyString = "a string";

// 设置键值对
myMap.set(keyString, "keyString -> value 11");
console.log(myMap);

// get 键取值
let value = myMap.get(keyString);
console.log(value)

// Map 的迭代
myMap.forEach( (value, key)=>console.log(`${key} - ${value}`
    ), myMap)

for (let [key, value] of myMap){
    console.log(key,'-',value)
}


// set 值唯一
let mySet = new Set();

mySet.add(1)
mySet.add(2)
console.log(mySet)
// 值唯一 所以set 里面的数据不变
mySet.add(2)
console.log(mySet)


// proxy
// 对象target
let target = {
    name: 'Tom',
    age: 24
}

// 对象handler
let handler = {
    get: function(target, key){
        console.log('getting' + key);
        return target[key];
    },
    set: function(target, key, value){
        console.log('setting' + key)
        return target[key] = value;
    }
}

// 实例一个proxy 需要传入两个对象 target 目标对象 handler代理target的行为
let proxy = new Proxy(target, handler)
proxy.name
proxy.age = 25


// 对象
const age1 = 12;
const name1 = "13";
const person = {age1, name1}
// 等同于 const person = {age:age1, name:name}
console.log(person)

const person1 = {
    sayHi(){
        console.log("Hi")
    }
}
person1.sayHi();

// 等同于
// const person = {
//     sayHi: function(){
//         console.log("Hi")
//     }
// }

// 扩展运算符 ...
let someone = { ...person}
console.log(someone)

// 数组创建
let arr = Array.of(1,2,3,4,5)
console.log(arr)
// 可迭代对象转换成数组
console.log(Array.from("12345"))

// 函数
// 箭头函数 ,只有一个参数书写方式
let f = v=>v
console.log(f(1))

// 没有或多个参数
let a1 = () => console.log("没有参数")
a1();

let b1 = (a,b) => console.log(`a: ${a} b: ${b}`)
b1(3,2);

// 当箭头函数体有多行语句
let c1 = (a,b) => {
    let result = a + b
    console.log(result)
    return result
}
let v = c1(3,6);
console.log(v);

// 箭头函数要返回对象
let o = (id, name) =>({id: id,
    name: name
    });
console.log(o(3,2));

// ps: 箭头函数里面没有this对象,用的是外面一层的this对象,此处即Window

let func = () => console.log(this)
func();

// 模块

let myName1 = "Tom"

let myFunc1 = () => console.log("箭头函数")

class MyClass{
    static a2 = "yeah1";
}

module.export = { myName1,myFunc1, MyClass }
// import
// MediaQueryListEvent { myfn } from './exports.js';
// const { myName, myAge, myfn, myClass } = require('./exports.js')
// myfn();

// async 函数 返回一个 Promise 对象,可以使用 then 方法添加回调函数。

async (()=>{})

作者:zy7y
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/zy7y/p/14446346.html