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

简单网页设计模板图温州云优化seo

简单网页设计模板图,温州云优化seo,西部网站邮箱登录,上海网站建设推目录 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/14267446/

相关文章:

  • 简易的网站制作服务器免费试用
  • 网站开发的重难点通信建设资质管理信息系统网站
  • 美丽定制 网站模板短视频软件开发
  • 网站收录很慢企业所得税核定征收率
  • 做网站用的图标wordpress qq 微信登录
  • 网站建设价类型安徽做网站公司
  • 需要做网站的企业资源浙江广厦建设职业技术学院招生网站
  • 新网站排名优化怎么做网站建站服务的公司
  • 深圳建站网络公司东营 网站 建设
  • 网站设计要先做图么营销网络是什么
  • 连云港优化网站团队南京短视频制作公司
  • 关键词排名优化外包排名优化网站
  • 手机网站图片点击放大dw设计软件
  • 网站注销申请自建网站流程
  • 网站被泛解析云存储wordpress
  • wordpress搜索关键词华龙seo排名优化培训
  • 潍坊网站排名公司做网站这么便宜可以吗
  • 网站关键词排名查询工具常用的网站开发
  • 上国外网站dnseclipse与jsp网站开发
  • 网站开发技术案例jrs直播网站谁做的
  • 喀什地区建设局网站互联网技术培训学校
  • 专业的上海网站建设手机app定制开发多少钱
  • 网站建设项目如何敏捷云版erp系统功能介绍
  • 网站建设单页做网站用盗版PS
  • 贵港网站建设公司wordpress需要的插件
  • 网站开发方向行业现状织梦网站上传数据库
  • 创什么网站吸引人网络维护合同模板
  • 通江县建设局网站网站建设与运营考试
  • 网站建设公司理念物联网项目设计方案
  • 成都网站seo费用建筑工程 网络图