ES6学习-----symbol

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

symbol的特点

  1. symbol的值是唯一的,用来解决命名冲突的问题
  2. symbol的值不能与其他数据进行运算
  3. symbol定义的对象属性不能使用for in来进行遍历,但是可以使用reflect.ownkeys来获取对象的所有键名
let s=Symbol();
    console.log(s,typeof s)//Symbol() "symbol"
symbol的唯一性是不可见的我们看不到
 let s1=Symbol('张三')
    let s2=Symbol('张三')
    console.log(s1===s2)//false
  let s4=Symbol.for('张三')
  let s5=Symbol.for('张三')
  console.log(s4===s5)//true

最后总结一波数据类型

  1. undefined
  2. string
  3. object
  4. null
  5. number
  6. boolean
  7. symbol

Symbol 添加属性、修改值

symbol表示独一无二的值,他给对象添加属性和方法

    n1=Symbol('n1是我');
    n2=Symbol();
    let movie={
        name:'琉璃',
        year:2020,
        [n1]:'司凤',
        [n2]:'璇玑',
    };
    console.log(movie.name);//琉璃
    console.log(movie[n1]);//司凤
    console.log(movie);//{name: "琉璃", year: 2020, Symbol(n1是我): "司凤", Symbol(): "璇玑"}
    movie[n2]='袁冰妍';
    console.log(movie){name: "琉璃", year: 2020, Symbol(n1是我): "司凤", Symbol(): "袁冰妍"}

使用Symbol有什么好处呢?举个例子

 n1=Symbol('n1是我');
    n2=Symbol();
    let movie={
        name:'琉璃',
        year:2020,
        [n1]:'司凤',
        [n2]:'璇玑',
    };
    for (index in movie){
        console.log(movie[index])//琉璃 2020
    }
    Symbol的作用:
    1、Symbol可以把一些不需要对外操作和访问的属性使用Symbol来定义,因为Symbol类型的key是不能通过object.
    key()或者for in玫举的
    2、Symbol可以用来替代常量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值