Symbol的作用、意义

1、ES6新增的Symbol是什么?

ES6新增的Symbol相当于一个身份证用于唯一识别的。

2、ES6新增的Symbol有什么用?

一般拿来做对象的KEY防止数据被篡改(二般情况我也没见过有知道的可以的话给我科普一下谢谢)。具体什么意思可以看第三点。

3、ES6新增的Symbol使用场景

一个方法test被另外一个类引用,假设test 中用var定义了变量name,即:

//文件A.js
test(){
	var name = '张三'
}

而你要在另一个类里面调用方法test,而且刚好的是,在当前类里面也用定义了name,这个时候name是会改变主方法test里面的name值的:

//文件B.js
modify(){
	var a = require("A.js");
	var name = '李四';
	//这个时候是会修改文件A.js里面的name值,也就是张三被改成李四了。
}

但是如果用symbol的话就不会出现以上问题,张三还是张三,李四是另外一个方法的李四(使用规则可以看看别人总结的我这里就不展开说了)

总结

在我理解里,symbol是为了解决var(全局变量)可能带来的数据不安全问题,对于let、const(局部变量)来说其实是用不上的,那用let、const不就行了吗?也不是,因为let、const是新出的,es4之前都是用的var为了兼容ES4之前的版本所以需要用symbol。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值