首页 > 其他分享 >symbol对象不能用于数据运算,包括+、-、*、/

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

时间:2023-11-15 22:44:38浏览次数:26  
标签:题意 对象 symbol 属性 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 键名。

标签:题意,对象,symbol,属性,Symbol,运算
From: https://www.cnblogs.com/longmo666/p/17835037.html

相关文章

  • 使用new实例化对象时,this指向新创建的对象
    下面关于this工作原理的描述,哪一个是错误的?A在全局范围内,this指向全局对象(浏览器下指window)B对象函数调用时,this指向当前对象C全局函数调用时,this指向全局函数D使用new实例化对象时,this指向新创建的对象正确答案:C全局函数调用时,this指向全局函数;应该是指向调用全局......
  • 第9章 窗口和布局综合应用--编写云对象存储浏览器主界面(综合运用,非常重要!)
    除了每章小结以外,这节课是对前面所学知识点的综合运用,非常重要非常重要看完每一小节再跟着敲窗口和布局综合应用--编写云对象存储浏览器主界面(巩固加深课)很重要!界面最好是手敲,跟敲......
  • 第7章 Qt 窗口--开发云对象存储浏览器的登录窗口
    Qt窗口--开发云对象存储浏览器的登录窗口本章导学学习常用的控件,通过文档使用控件窗口基本知识讲解(代码7-2)生活中的窗口是连接人与外面风景的桥梁,计算机的窗口是连接人和操作系统资源的桥梁,并且更加方便,使用命令行太难了任务栏的应用程序上一般为顶层窗口,顶层窗......
  • 空对象转换为布尔类型为true
    以下结语句中,返回true的是?A!![]B1===’1’Cnull===undefinedD!!’’正确答案:AJavaScript有五个基本类型:number、string、null和undefined。其中null和undefined以外,其他三个具有所谓的包装对象,可以通过内置构造函数Number()、String()、Boolean()创建包装对象。选项A,ja......
  • 小学生加减乘除闯关运算练习流量主微信小程序开发
    小学生加减乘除闯关运算练习流量主微信小程序开发经过本次更新,我们增加了新的功能和特性,以提升用户体验和运算练习的趣味性:能量石与激励视频:用户可以通过观看激励视频来获取能量石,这些能量石可以用于解锁收费题卡,增加了免费用户的体验与题库的多样性。消息订阅与题卡排序:我们增加了......
  • 按位异或运算,同为1或同为0取0,不同取1
    假设有如下代码,那么a(10)的返回结果是?functiona(a){a^=(1<<4)-1;returna;}A5B10C15D16正确答案:A1<<4左移相当于1*2^4=16a^=16-1=15a=a15=1015^异或运算:10的二进制0000101015的二进制00001111========>00000101转成十进制:5(按位异或运算,同为......
  • 因为匿名函数具有全局性,匿名函数的this指向window对象
    执行以下程序,输出结果为()varuname="window";varobject={uname:"object",fun:function(){console.log(this.uname);returnfunction(){console.log(this.uname);......
  • js 对象深拷贝
    functiondeepObj(obj){vardest={};for(varkeyinobj){if(typeofobj[key]==='object'){dest[key]=obj[key].constructor===Array?[]:{};deepObj(dest[key],obj[key]);}else{dest[......
  • js按位运算符(按位或,按位与,按位异或)
    1.按位操作的概念:按位操作为,将数据转化为二进制八位展示/十六位展示后根据条件进行计算的操作2.按位运算符分类:&:按位与|:按位或^:按位异或~:按位非<<:左移运算符>>:右移运算符>>>:无符号右移3.具体讲解:&:按位与 ----将数......
  • 解决Python requests库不支持发送可迭代对象的问题
    在加班的路上,bug是那永远的陪伴。对于程序员来说,bug就像黑暗中的萤火虫,虽然微弱却永远指引着前进的方向。今天,我们要探讨的是Pythonrequests库在处理可迭代对象时遇到的问题,这是一道让许多开发者头痛的难题。本文将详细介绍一种临时解决方案,希望能帮助大家解决问题,让编程之路更加......