目录symbol数据类型symbol出现的原因Symbol特点symbol的应用在rb对象中添加up和down方法Symbol内置的属性值总结symbol数据类型 js语言中,es
ES6新提出symbol数据类型,所以symbol是js的第七种数据类型,表示独一无二的值。是一种类似于字符串的数据类型。
目的是为了防止属性名的冲突,保证对象中每一个属性名都是独一无二的。
let s1 = Symbol('foo');
let s2 = Symbol('foo');
s1 === s2 // false
Symbol类型可以有一个字符串参数,表示对Symbol实例的描述。所以相同描述的两个Symbol类型实例也是不相等的。
ES5 的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin 模式),新方法的名字就有可能与现有方法产生冲突。如果有一种机制,保证每个属性的名字都是独一无二的就好了,这样就从根本上防止属性名的冲突。这就是 ES6 引入Symbol的原因
//创建Symbol
let s= Symbol();
console.log(s, typeof s);
// 试试创建2个symbol相同
let s2 = Symbol(' 辣鸡rb');
let s3 = Symbol(' 辣鸡rb');
console.log(s2 === s3); //false
//用Symbol.for创建一样的symbol
let s4 = Symbol.for('辣鸡rb');
let s5 = Symbol.for('辣鸡rb');
console.log(s4 === s5); //true
//不能与其他数据进行运算
let result = s + 100;//报错,
文章结尾回顾一下js的数据类型
引用尚硅谷的一个记忆口诀
// USONB =>you are so .niubility 你是如此牛逼
// u=>undefined
// s=>string symbol
// 0=>object
// n=>null number
// b=>boolean
思考一下,决定再写点,
方法1
let rb = {
name: '日本战犯',
age: 500,
};
// 用symbol处理
// 声明对象,里面包含两个方法,方法用symbol()写
let methods = {
up: Symbol(),
down: Symbol()
};
// 把方法加进去
rb[methods.up] = function () {
console.log('原谅说的是人');
};
rb[methods.down] = function () {
console.log('畜生没脸让中华儿女原谅它');
};
console.log(rb);
方法2
在rb对象中添加sb和dsb方法
let rb = {
name: '日本战犯',
age: 500,
[Symbol('sb')]: function () {
console.log('我喜欢日本动画');
},
[Symbol('dsb')]: function () {
console.log('但不妨碍我恨他们在华夏大地犯的罪');
},
};
console.log(rb);
到此这篇关于ES6中symbol数据类型的文章就介绍到这了,更多相关ES6的symbol数据类型内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: 详细谈谈ES6中的symbol数据类型
本文链接: https://www.lsjlt.com/news/132976.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-01-12
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0