当前位置: 首页 > news >正文

手机建立网站软件设计网站的管理系统

手机建立网站软件,设计网站的管理系统,网页设计作品分析案例,中装建设网站目录 1、JavaScript 中存在两⼤数据类型#xff1a; 2、 浅拷贝方法#xff1a; 2.1 Object.assign 2.2 slice() 2.3 concat() 2.4 拓展运算符 3、深拷贝方法 3.1 _.cloneDeep() 3.2 jQuery.extend() 3.3 JSON.stringify() 3.4 循环递归 4、浅拷贝和深拷贝的…  目录 1、JavaScript 中存在两⼤数据类型  2、 浅拷贝方法 2.1  Object.assign 2.2  slice() 2.3   concat()  2.4  拓展运算符 3、深拷贝方法 3.1  _.cloneDeep() 3.2  jQuery.extend() 3.3  JSON.stringify() 3.4  循环递归 4、浅拷贝和深拷贝的区别 1、JavaScript 中存在两⼤数据类型  • 基本类型 • 引⽤类型 基本类型数据保存在在栈内存中 引⽤类型数据保存在堆内存中引⽤数据类型的变量是⼀个指向堆内存中实际对象的引⽤存在栈中 2、 浅拷贝方法 在 JavaScript 中存在浅拷⻉的现象有 • Object.assign • Array.prototype.slice() , Array.prototype.concat() • 使⽤拓展运算符实现的复制 function shallowClone(obj) { const newObj {}; for(let prop in obj) { if(obj.hasOwnProperty(prop)){ // 仅检查对象自身是否包含指定属性不追溯原型链newObj[prop] obj[prop]; } } return newObj; } 2.1  Object.assign var obj { age: 18, nature: [smart, good], names: { name1: fx, name2: xka }, love: function () { console.log(fx is a great girl) } } var newObj Object.assign({}, fxObj); 2.2  slice() const fxArr [One, Two, Three] const fxArrs fxArr.slice(0) fxArrs[1] love; console.log(fxArr) // [One, Two, Three] console.log(fxArrs) // [One, love, Three] 2.3   concat()  const fxArr [One, Two, Three] const fxArrs fxArr.concat() fxArrs[1] love; console.log(fxArr) // [One, Two, Three] console.log(fxArrs) // [One, love, Three] 2.4  拓展运算符 const fxArr [One, Two, Three] const fxArrs [...fxArr] fxArrs[1] love; console.log(fxArr) // [One, Two, Three] console.log(fxArrs) // [One, love, Three] 3、深拷贝方法 深拷⻉开辟⼀个新的栈两个对象属完成相同但是对应两个不同的地址修改⼀个对象的属性不 会改变另⼀个对象的属性 常⻅的深拷⻉⽅式有 • _.cloneDeep() • jQuery.extend() • JSON.stringify() • ⼿写循环递归 3.1  _.cloneDeep() const _ require(lodash); const obj1 { a: 1, b: { f: { g: 1 } }, c: [1, 2, 3] }; const obj2 _.cloneDeep(obj1); console.log(obj1.b.f obj2.b.f);// false 3.2  jQuery.extend() const $ require(jquery); const obj1 { a: 1, b: { f: { g: 1 } }, c: [1, 2, 3] }; const obj2 $ .extend(true, {}, obj1); console.log(obj1.b.f obj2.b.f); // false 3.3  JSON.stringify() const obj2JSON.parse(JSON.stringify(obj1));// 但是这种⽅式存在弊端会忽略 undefined 、 symbol 和 函数const obj { name: A, name1: undefined, name3: function() {}, name4: Symbol(A) } const obj2 JSON.parse(JSON.stringify(obj)); console.log(obj2); // {name: A}  但有局限无法实现对象中方法的深拷贝、值为undefined的key等。 // 无法对 对象中的方法 进行深拷贝 const obj { fn: () console.log(test) }; const copy JSON.parse(JSON.stringify(obj)); // { }// undefined 和 Symbol 类型属性会消失 // NaN 和 Infinity 会被转为 null const obj { a: undefined, b: Symbol(), c: NaN }; const copy JSON.parse(JSON.stringify(obj)); // { c: null } 3.4  循环递归 思路步骤 处理基本值‌当传入值为null或非object类型时直接返回原值。不拷贝对基本类型直接返回引用类型才进行拷贝操作‌检查循环引用‌用WeakMap缓存已拷贝对象遇到直接返回‌特殊对象处理‌单独拷贝日期和正则对象‌初始化容器‌区分数组和普通对象创建空结构‌递归拷贝属性‌遍历每个属性并递归调用自身 // 使用 WeakMap 存储已拷贝对象遇到重复引用直接返回 // hash.has(obj) 是哈希表结构中用于检测键是否存在的核心方法 // hash.get(obj) 是哈希表结构中通过键获取对应值的核心操作 // hash.set(obj, clone) 是哈希表存储键值对的核心操作 // 仅检查对象自身是否包含指定属性不追溯原型链 function deepClone(obj, hash new WeakMap()) {// 基础类型直接返回if (obj null || typeof obj ! object) return obj; // 当传入值为null或非object类型时直接返回原值// 用WeakMap缓存已拷贝对象遇到直接返回if (hash.has(obj)) return hash.get(obj); // 处理循环引用// 特殊对象处理if (obj instanceof Date) return new Date(obj);if (obj instanceof RegExp) return new RegExp(obj);// 初始化容器const clone Array.isArray(obj) ? [] : {};hash.set(obj, clone);// 递归拷贝for (let key in obj) {if (obj.hasOwnProperty(key)) {clone[key] deepClone(obj[key], hash);}}return clone; } 4、浅拷贝和深拷贝的区别 前提为拷⻉类型为引⽤类型的情况下 • 浅拷⻉是拷⻉⼀层属性为对象时浅拷⻉是复制两个对象指向同⼀个地址 • 深拷⻉是递归拷⻉深层次属性为对象时深拷⻉是新开栈两个对象指向不同的地址 声明变量时 ◦ 简单类型的值存放在栈中在栈中存放的是对应的值 ◦ 引⽤类型对应的值存储在堆中在栈中存放的是指向堆内存的地址 赋值变量时 ◦ 简单类型赋值是⽣成相同的值两个对象对应不同的地址 ◦ 复杂类型赋值是将保存对象的内存地址赋值给另⼀个变量。也就是两个变量指向堆内存中同⼀个对象
http://www.hkea.cn/news/14345636/

相关文章:

  • 可以做家装设计的网站濮阳市住房和城乡建设局网站
  • 百度建站云南服务中心网站建设费入什么科目
  • 房地产东莞网站建设企业邮箱注册价格
  • flask做的网站有哪些成都房地产管理局
  • 营销型网站建设定制网站建设演出票务网站建设
  • 苗木网站模版网页设计是前端还是后端
  • 为什么南极建站在2月云南省建设培训中心网站
  • 个人备案网站放视频网站建设的风险识别
  • 衡阳公司网站建设学校资源网站 建设方案
  • sjz住房建设局网站网站后台管理系统使用方法
  • 爱站网长尾词挖掘百度网站源码优化检测
  • 网站抄袭别人的做可以吗设计师网址导航 优设
  • 网站建设先进城市电商详情页设计思路
  • 那个公司做的外贸网站好品牌注册号
  • 企业公司网站 北京企业新闻营销
  • 免费网站制作软件的app品牌营销推广方案
  • 网站后台文章栏目包装设计欣赏
  • 寒亭网站建设wordpress5安装
  • 凯里做网站的公司动漫网站设计模板
  • 网站的建设内容网站建设公司首选华网天下
  • 网站开发外包业务怎么接公司宣传册设计与制作模板
  • 微信企业微网站铁道部建设监理协会网站
  • 网站有哪些营销型网站建设工资
  • 建设部网站危险性较大免费下载建设银行官方网站
  • 一流的企业网站建设上海橙网站设计公司
  • 珠宝行网站建设方案深圳建业公司怎么样
  • 网站开发 嘉定建立网站解析会员视频是犯什么罪
  • 佛山专业网站建设价格百度站长统计工具
  • 小型购物网站开发费用六盘水北京网站建设
  • 淘宝联盟推广可以做网站吗免费网站是