symbol对象不能用于数据运算,包括+、-、*、/

执行以下程序,会抛出语法错误的式子是()

var s = Symbol('key'); ...① console.log(s + '123'); ...② var obj = { [s]:function(){console.log(1);} ...③ } var b = Reflect.ownKeys(obj); ...④

A

B

C

D

正确答案:B

Symbol是不完整的构造函数,创建symbol对象时不需要new操作符,①式不会抛出异常,A选项不符合题意;
symbol对象不能用于数据运算,包括+、-、*、/等,②式会抛出异常,B选项符合题意;
symbol对象的唯一作用是作为对象的属性名,这样可以防止属性因重名而覆盖,使用时必须用[],③式不会抛出异常,C选项不符合题意;
使用Reflect.ownKeys()可以遍历对象的属性,包括symbol属性,④式不会抛出异常,D选项不符合题意。

Symbol 本质上是一种唯一标识符,可用作对象的唯一属性名,这样其他人就不会改写或覆盖你设置的属性值。

注意事项
Symbol值不能与其他类型的值进行运算
Symbol 值不可以和其他类型值进行混合运算,否则会报错
Symbol 值如果想要作为属性名,那就不能再用点运算符,因为点运算符后面跟的总是字符串
在对象内部使用Symbol 值作为属性名的时候,必须要将值放在方括号中

Symbol 值不能与其他类型的值进行运算,会报错。

新的API:Reflect.ownKeys() 方法可以返回所有类型的键名,包括常规键名和 Symbol 键名。


__EOF__

本文作者龙陌
本文链接https://www.cnblogs.com/longmo666/p/17835037.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   龙陌  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示