ECMAScript

字符串的扩展方法:

const message = 'Error:foo is not defined .';
 console.log(
    //  message.startsWith('Error')
    //  message.endsWith('.')
    message.includes('foo')
 )

对象的字面量加强:
ECMAScript_第1张图片
可以在[]中输入任意的变量或者表达式来设置对象的属性名

Set数据结构是一个集合,不能有重复

const s = new Set();
 s.add(1).add(2).add(3)

 s.forEach(i=>console.log(i))

 for(let i of s){
     console.log(i)
 }
 console.log(s.size)

 //数组去重

 const arr = [1,2,3,4,5,5,6];
 const result = Array.from(new Set(arr));
 console.log(result)

Map数据结构可以用任意类型作为键,而对象只能用字符串作为键

const m = new Map();
 const tom = {name:"tom"};
 m.set(tom,90)
 console.log(m)
 console.log(m.get(tom))

image.png

Symbo:
1.避免对象属性名的重复
2.用来创建私有成员的属性名

const name = Symbol();
const person = {
    [name]:"zsd",
    say(){
        console.log(this[name])
    }
}
person.say()

最主要的作用就是为对象添加独一无二的属性名

如何创建一个相同的Symbo?

const s1 = Symbol.for('foo');
const s2 = Symbol.for('foo');
console.log(s1===s2)//true

想要获取对象里面的Symbo属性名,只能用Object.getOwnPropertySymbols(obj);除此之外,Object.key(obj)和 for in 和JSON.stringify(obj)都不行

生成器generator:可以用生成器去写一个迭代器,达到统一处理任何数据结构的遍历
ECMAScript_第2张图片

你可能感兴趣的:(ECMAScript)