一、Map
/*
Object中的属性名只能是字符串或者符号,如果传递了一个其他类型的属性名,Js解释器会自动将其转化为字符串格式
Map数据类型可以储存任何类型的值
*/
const obj ={
name:"小明";
age:18;
[Symbol()]:"123"
}
const a = new Map()
a.size() //获取Map中键值对的数量
a.set(obj,123) //向Map中添加任意类型的键值对
a.set(NaN,"haha")
a.set("name","小明")
a.get(obj) // 根据key获取值
a.delete(NaN) // 删除指定数据
a.has(obj) // 检查a中是否包含指定键
a.clear() //删除a中全部数据
//将Map转换为数组
const arr = Array.from(a)
const arr2 = [...a]
//遍历Map
for(let [key,value] of a){
console.log(key,value)
}
map.forEach((k,v,c)=>{ //k,v对应Map中的键值对,c代表Map本身
console.log(k,v)
})
//a.keys(),a.values()获取Map中的所有key或者value;a.entries()获取Map中的所有实体
for(let k of a.keys()){
console.log(k)
}
二、Set
/*
Set用来创建一个集合,和数组的功能类似,但是不能存储重复的数据
size()获取元素的数量
add()添加数据
has()检查set中是否含有某元素
delete()删除元素
*/
let list = new Set()
list.add("1111")
list.has("1111")
三、Date
/*
getFullYear()获取四位数的年份
getMonth() 获取当前日期的月份(0-11)
getDate() 获取当前日
getDay() 获取当前是是星期几(0-6),0表示周日
getTime() 返回当前日期对象的时间戳
Date.now() 获取当前时间戳(不需要时间对象调用)
时间戳:自1970年1月1日0时0分0秒开始到当前时间的毫秒数
计算机底层存储时间都是用时间戳形式,
toLocalDateString()将日期转化为本地的字符串
toLocalTimeString()将时间转化为本地的字符串
toLocalString()将日期和时间转化为本地的字符串
*/
let a = new Date() //创建当前日期
let a = new Date("2019-11-12T11:02:33") //不推荐使用
let a = new Date(2016,1,13,11,02,13) //创建2016年2月13日11点02分13秒
let a = new Date(2006)//表示创建了一个距离1970年1月1日0时0分0秒时间2006毫秒的时间,计算机会自动处理时区问题(+8小时)
四、Math
/*
Math.pow() 求x的y次幂
Math.sqrt() 求一个数的平方根
Math.floor() 向下取整
Math.ceil() 向上取整
Math.round() 四舍五入取整
Math.trunc() 直接去除小数
Math.random() 生成一个随机数(0<=x<1) 但是多次测试(0<x<1)
*/
//生成一个0-x的随机数
let res = Math.round(Math.random()*x)
//生成一个x-y
let res = Math.round(Math.random()*(y-x)+x)