js易错知识点 , https://quiz.typeofnan.dev/ 做题小结,里面包含了58js题,可以去尝试一下。

newSet去重
const mySet = new Set([{ a: 1 }, { a: 1 }]); const result = […mySet]; console.log(result); //[{a: 1}, {a: 1}]
原因:对象在内存中是不相等的
Object.freeze冻结对象
const user = { name: 'Joe', age: 25, pet: { type: 'dog', name: 'Buttercup' } }; Object.freeze(user); user.pet.name = 'Daffodil'; console.log(user.pet.name); // Daffodil
原因:Object.freeze只会浅冻结一个对象,不会保护深层对象的修改。
new Date()参数
let a = new Date("2019,1,1").toLocaleDateString(); let b = new Date(2019, 1, 1).toLocaleDateString(); console.log(a, b) // 2019/1/1 2019/2/1
原因:字符串的时候就是简单的月份设置,如果为数值,三个参数分别为年,月,日。月是从0开始的,所以为2月份