发表于: 2020-02-28 23:26:18

0 1625


今天完成的事情:


模板字符串
let [name,age] = ["Peter",10];
console.log(`${name},${age}`//Peter,10   用` `可以当普通字符串使用,也可以在字符串中嵌入变量

Set: 

//类似数组,不同的是数组中元素是允许重复的,而Set里面的元素都是唯一的。可接受字符串、数组、对象等作为参数。


参数是数组

let arr=new Set([1,1,1,2,2,2,3,3,3])
console.log(arr)//Set(4) {1, 2, 3, 4}
console.log([...arr])// [1, 2, 3, 4]


参数是字符串

let s1 = new Set("abcdddd"
console.log(s1); // Set(4) {"a", "b", "c", "d"}
console.log([...s1]); // ["a", "b", "c", "d"] 
console.log([...s1].join('')); // abcd


参数是对象
let s1 = new Set({a:1},{b:1}) //不能直接new Set({a:1})这样写,这样会报错 Uncaught TypeError: object is not iterable (cannot read property Symbol(Symbol.iterator))
console.log(s1);
let s2 = new Set();
//可以用Set的add方法来添加 s2.add({a:1}).add({b:1})
s2.add({}).add({})//且任意两个对象都是不相等的,包括两个空对象,也是不相等的。这意味着add两个空对象后,Set的size是2而不是1:
console.log(s2.size// 2


//Set 内部判断两个值会认为:“4”和4是不相等的
let s1 = new Set([1,2,3,4,4,4,"4"]);
console.log([...s1]); // [1, 2, 3, 4, "4"]
// set 内部判断两个值会认为:NaN和自身相等
let s2 = new Set([1,2,3,4,4,4,NaN,NaN])

console.log([...s2]); // [1, 2, 3, 4, NaN]


Set实例的属性和方法

 size:获取元素的数量


let s1 = new Set();
s1.add(1).add(2).add(3).add(3);
s1.size // 3
s1.has(1// true
s1.has(4// false
s1.delete(1)
s1.has(1// false
s1.clear()
s1.size // 0


遍历方法:

let s = new Set(['name''age''gender']) //返回键名的遍历器
for (let i of s.keys()) {
    console.log(i)
    // name
    // age
    // gender
}
for (let i of s.values()) {  //返回键值的遍历器。由于Set结构没有键名,只有键值(或者说键名和键值是同一个值),所有keys()和values()返回结果是一样的。
    console.log(i)
    // name
    // age
    // gender
}
for (let i of s.entries()) {  //返回键值对的遍历器
    console.log(i)
    // ["name","name"]
    // ["age","age"]
    // ["gender","gender"]
}
s.forEach((keyvalue=> console.log(key + ":" + value))//使用回调函数对每个元素执行某种操作,没有返回值
    // name:name
    // age:age
    // gender:gender



Map实例的属性和方法

//类似对象,不同的是对象中的key是字符串或数字,而Map中的key可以是任何数据类型。


属性
size:获取元素的数量
操作方法


let m = new Map();
m.set("name","Peter");
m.set("age"26)
m.set({"gender":"male","add":"street"},"other info")
m.size // 3
m.get('name'// Peter
m.has("age"// true
m.delete("age")
m.has("age"// false
m.clear();
m.size // 0


let m = new Map();
m.set("name""Peter");
m.set("age"26)
m.set({ "gender": "male""add": "street" }, "other info")
for (let key of m.keys()) {    //返回键名的遍历器
    console.log(key);
    // name
    // age
    // {gender: "male",add: "street"}
}
for (let value of m.values()) { //返回键值的遍历器
    console.log(value)
    // Peter
    // 26
    // other info
}
for (let i of m.entries()) { //返回键值对的遍历器
    console.log(i)
    // ["name", "Peter"]
    // ["age", 26]
    // [{gender: "male", add: "street"},"other info"]
}
m.forEach((valuekey=> console.log(key + ":" + value)) //使用回调函数对每个元素执行某种操作,没有返回值,注意下这个Map的forEach()方法,第一个参数是键值,第二个参数是键。
    // name:Peter
    // age:26
    // [object Object]:other info



明天计划的事情:

继续学习实践


遇到的问题:


收获:

基础知识


返回列表 返回列表
评论

    分享到