// 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 (()=>{})