【ES6】05-Symbol

基本使用

ES6 引入了一种新的原始数据类型 Symbol,表示独一无二的值。它是JavaScript 语言的第七种数据类型,是一种类似于字符串的数据类型。

特点

  1. Symbol 的值是唯一的,用来解决命名冲突的问题
  2. Symbol 值不能与其他数据进行运算
  3. Symbol 定义的对象属性不能使用 for…in 循环遍历,但是可以使用Reflect.ownKeys 来获取对象的所有键名
//创建Symbol
let s = Symbol();
// console.log(s, typeof s);
let s2 = Symbol('st');
let s3 = Symbol('st');
//Symbol.for 创建
let s4 = Symbol.for('st');
let s5 = Symbol.for('st');

//不能与其他数据进行运算
//    let result = s + 100;
//    let result = s > 100;
//    let result = s + s;
let game = {
    
    
    name:"狼人杀",
    [Symbol('say')]: function(){
    
    
        console.log("我可以发言")
    },
    [Symbol('zibao')]: function(){
    
    
        console.log('我可以自爆');
    }
}

console.log(game)
console.log(game[Reflect.ownKeys(game)[1]]());
class Person{
    
    
    static [Symbol.hasInstance](param){
    
    
        console.log(param);
        console.log("我被用来检测类型了");
        return false;
    }
}

let o = {
    
    };

console.log(o instanceof Person);

const arr = [1,2,3];
const arr2 = [4,5,6];
arr2[Symbol.isConcatSpreadable] = false;
console.log(arr.concat(arr2));

猜你喜欢

转载自blog.csdn.net/shentian885/article/details/126611552