推广 热搜: 广场  Java  app  Word  营业  微信公众号  北京代理记账  商城  代理记账  商标交易 

怎么将字符串转换成枚举 什么是枚举表达式?

   2023-04-28 企业服务招财猫40
核心提示:什么是枚举表达式?枚举是四种基本数据类型之一。常数、字符和布尔可以用来表示数字、字符和真理的描述。但是,我们还是觉得有点欠缺:他们可以不方便描述一些标识符,比如七种颜色:红、橙、黄、绿、青、蓝、紫。我

什么是枚举表达式?

枚举是四种基本数据类型之一。

常数、字符和布尔可以用来表示数字、字符和真理的描述。

但是,我们还是觉得有点欠缺:他们可以不方便描述一些标识符,比如七种颜色:红、橙、黄、绿、青、蓝、紫。我们认为很难用数据类型直接表达它们。

而计算机中有没有这样的数据类型,可以很容易的表达出来?

可以,枚举就可以。用四种基本数据类型表示标识符是不方便的,而且这些标识符的数量是有限的。我们可以通过列举所有要使用的标识符来表达它。这种方法更接近自然语言的表达。

是浅拷贝还是深拷贝?

()方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。

如果目标对象中的属性具有相同的键,则源对象中的属性将覆盖这些属性。下一个源对象的属性同样会覆盖前一个源对象的属性。

方法只将源对象本身的可枚举属性复制到目标对象。这个方法使用源对象的[[Get]]和目标对象的[[Set]],所以会调用相关的getter和setter。因此,它分配属性,而不仅仅是复制或定义新的属性。如果合并源包含getter,这可能会使它不适合将新属性合并到原型中。为了将属性定义(包括其可枚举性)复制到原型,应该使用()和()。

将复制字符串类型和符号类型的属性。

如果出现错误,例如,如果属性不可写,将会引发TypeError,如果在引发错误之前添加了任何属性,则可以更改目标对象。

当这些源对象的值为或时,不会引发错误。

对于深度复制,需要使用其他方法,因为()会复制属性值。如果源对象的属性值是对一个对象的引用,那么它只指向那个引用。也就是说,如果对象的属性值是简单类型(比如string,number),则由({},srcObj)得到的新对象是;如果属性值是一个对象或其他引用类型,那么对于这个对象来说实际上是真的。

深度复制的几种实现方法

使用将对象转换为字符串,然后使用将字符串转换为新的对象。

该方法只能用于可以转换为JSON格式的对象。如果对象包含function或R:1,b:{f:{g:1}},c:[1,2,3]}L:1,b:{f:{g:1}},c:[1,2,3]}letobj2_。clon:{}for(letkeyinsource){if(source.hasownproperty(key)){if(typeofsource[key]!object){target[key]source[key]}else{target[key]_deepclone(source[key])}}}else{targetsource}returntarget}

更多经典前端面试问题,请访问github或参与讨论。

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
合作伙伴
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  冀ICP备2023006999号-8