发表日期: 2021-06-16 10:57:20 浏览次数:177
【网站建设】深圳网站制作-深圳网络公司-深圳网页设计-深圳网店美工-深圳网站开发
深圳,简称“深”,别称鹏城,是广东省副省级市、计划单列市、超大城市,国务院批复确定的中国经济特区、全国性经济中心城市和国际化城市 [1] 。全市下辖9个区,总面积1997.47平方千米,建成区面积927.96平方千米。2020年全市常住人口1756.01万人 [2-6] [244] 。
深圳地处中国华南地区、广东南部、珠江口东岸,东临大亚湾和大鹏湾,西濒珠江口和伶仃洋,南隔深圳河与香港相连,是粤港澳大湾区四大中心城市之一 [7] 、国家物流枢纽、国际性综合交通枢纽 [8] 、国际科技产业创新中心 [9] 、中国三大全国性金融中心之一 [10-11] ,并全力建设中国特色社会主义先行示范区 [12] 、综合性国家科学中心 [13] 、全球海洋中心城市 [14] 。深圳水陆空铁口岸俱全,是中国拥有口岸数量最多、出入境人员最多、车流量最大的口岸城市。 [15]
深圳最早的前身为广州宝安县 [231] ,深圳之名始见史籍于明朝永乐八年(1410年),1979年成立深圳市,1980年成为中国设立的第一个经济特区,中国改革开放的窗口和新兴移民城市,创造了举世瞩目的“深圳速度”,被誉为“中国硅谷” [16-18] 。在中国高新技术产业、金融服务、外贸出口、海洋运输、创意文化等多方面占有重要地位,也在中国的制度创新、扩大开放等方面肩负着试验和示范的重要使命。 [6]
2019年12月,位列2019中国城市创意指数榜第三名。 [19] 2019年12月,荣登年度中国城市品牌前10强。 [20]
2020年6月,经中央依法治国委入选为第一批全国法治政府建设示范地区和项目名单。 [21]
2021年,华顿经济研究院发布的中国百强城市排行榜中,深圳排名第三。 [247]
当我们想要复制原始值和引用值(对象)时,它们的行为会大不相同。
我们假设一个变量 name
具有一个与之关联的原始值(number,string,boolean,undefined 和null)。 如果我们将此变量 name
复制到另一个变量name2
,则原始变量的任何修改都不会影响到第二个变量,因为它们是原始值。
let name="前端博客"; let name2= name; console.log (name, name2); // 前端博客, 前端博客 name="码云笔记"; console.log (name,name2); // 码云笔记 前端博客
但是,如果我们对引用类型的值进行相同的操作,则我们对一个变量所做的任何更改也将反映在另一个变量中,因为两个变量都指向同一对象。
要拷贝数组,slice()
方法用于创建数组的新副本。 可以独立修改此副本,而不会影响原始数组。
如果未传递任何参数,则它会精确复制数组,但数字也可以作为参数传递。 如果仅传递一个数字,它将确定我们要从其进行复制的索引的值,而如果传递两个数字,则将标记开始和结束。
// 示例1 const names = ['前端博客', '前端技术', '码云笔记']; const names2 = names; console.log(names, names2); // ["前端博客", "前端技术", "码云笔记"] // ["前端博客", "前端技术", "码云笔记"] // 示例2 names2[2] = '前端开发'; console.log(names, names2); // ["前端博客", "前端技术", "前端开发"] // ["前端博客", "前端技术", "前端开发"] // 示例3 const name2 = names.slice(); names[2] = '我是前端技术博客'; console.log(name2, names2) // ["前端博客", "前端技术", "前端开发"] // ["前端博客", "前端技术", "我是前端技术博客"]
当引用值是一个对象时,也会发生同样的情况,对其属性之一的任何修改都会影响这两个变量。 若要克隆对象,请使用 Object.assign()
方法,该方法会将一个或多个源对象的所有可枚举属性的值复制到目标对象,但是此方法仅对对象的一个浅拷贝。
// 示例1 const names = { name: '前端博客', surname: '码云笔记' } const names2 = names; console.log(names, names2) // 打印结果是一模一样的 // 示例2 names2.surname ='码云笔记'; console.log(names, names2) // {name: "前端博客", surname: "码云笔记"} // {name: "前端博客", surname: "码云笔记"} // 示例3 const names3 = Object.assign({}, names); names3.surname = '技术博客'; console.log(names, names3) // {name: "前端博客", surname: "码云笔记"} // {name: "前端博客", surname: "技术博客"}
要对对象进行深拷贝,需要使用其他方法。
正如我们所说,Object.assign()
方法只是一个浅拷贝(即,当我们的对象没有其他对象作为属性时)才有效。 在这些情况下,必须对对象进行深拷贝。
与浅拷贝不同,深拷贝以递归方式复制每个子对象,直到所有涉及的对象都被复制为止。
我们可以使用什么方法复制对象的深层副本?
此方法使用JSON.stringify()
将对象转换为字符串,然后再用JSON.parse()
将其转换回对象。 此方法对简单对象有效,但如果对象属性是函数时无效。
const names = { name: '前端博客', surname: '码云笔记', social: { wx: '技术博客', url: 'www.mybj123.com' } } const names2 = JSON.parse(JSON.stringify(names)); names2.social.url = 'www.baidu.com'; console.log(names, names2); /** { name: "前端博客" social: {wx: "技术博客", url: "www.mybj123.com"} surname: "码云笔记" } */ /** { name: "前端博客" social: {wx: "技术博客", url: "www.mybj123.com"} surname: "码云笔记" } */
另一种非常有趣和优雅的对象深度复制方法是使用递归函数。
我们创建了一个deepClone(object)
函数,将想要克隆的对象作为参数传递给它。在函数内部,将创建一个局部变量克隆,这是一个空对象,其中将从起始对象克隆的每个属性都将添加到该对象中。
具体思路:
如果该属性不是对象,则将其简单地克隆并添加到新的克隆对象中。
如果属性是对象,则再次执行deepClone(value)
函数,并将属性的值(在这种情况下为对象)作为参数传递,并重复相同的过程。
function deepClone(object) { var clone = {}; for (var key in object) { var value = object[key]; if (typeof(value) !== 'object') { clone[key] = value; } else { clone[key]=deepClone(value); } } return clone; } deepClone({value1:1,value2:{value3:2}}); //{value1:1,value2:{value3:2}} deepClone({value1:1,value2:{value3:{value3b:3}}}); //{value1:1,value2:{value3:{value3b:3}}}
备案号: 苏ICP备11067224号
CopyRight © 2011 书生商友信息科技 All Right Reserved
24小时服务热线:400-111-6878 E-MAIL:1120768800@qq.com QQ:1120768800
网址: https://www.768800.com 网站建设:上往建站
关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|
企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|
400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 昌平殡葬| 朝阳殡葬|
欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系
服务热线:400-111-6878