ES6学习笔记六:Symbol数据类型

142 阅读1分钟

1.原始数据类型,表示独一无二(内存地址不同)的值,不能new

		const name = Symbol('name');
        const name2 = Symbol('name');
        console.log(name === name2); //false

2.在对象中的应用,定义对象的私有变量

//Symbol类型 用来定义对象的私有变量 
        let s1 = Symbol();
        console.log(s1);
        let obj = {
            a: 1,
            [s1]: "hattie" //[s1] 为Symbol类型的变量s1
        };
        console.log(obj[s1]); //取值时一定用[变量名]
        for (let key in obj) {
            console.log(key); //a Symbol类型的属性不能被遍历出来
        }
        console.log(Object.keys(obj)); //["a"]
        //获取Symbol类型的属性
        console.log(Object.getOwnPropertySymbols(obj)); //[Symbol()]
        console.log(Reflect.ownKeys(obj)); //["a", Symbol()]