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

建企业网站需要多少钱宜春网站开发公司电话

建企业网站需要多少钱,宜春网站开发公司电话,设置网站首页,网站开发客户需求… 作用 扩展运算符#xff08;spread#xff09;是三个点#xff08;…#xff09;#xff0c;用于取出参数对象中的所有可遍历属性#xff0c;浅拷贝到当前对象之中。 常见用法 1.浅拷贝数组 const a1 [test1, test2]; const a2 [...a1];a2[0] test2; a2 // [te…… 作用 扩展运算符spread是三个点…用于取出参数对象中的所有可遍历属性浅拷贝到当前对象之中。 常见用法 1.浅拷贝数组 const a1 [test1, test2]; const a2 [...a1];a2[0] test2; a2 // [test2, test2] 2.合并数据 const arr1 [a, b]; const arr2 [c]; const arr3 [d, e];// ES5 的合并数组 arr1.concat(arr2, arr3); // [ a, b, c, d, e ]// ES6 的合并数组 [...arr1, ...arr2, ...arr3] // [ a, b, c, d, e ] 3. 解构赋值 const [first, ...rest] [1, 2, 3, 4, 5]; first // 1 rest // [2, 3, 4, 5]const [first, ...rest] []; first // undefined rest // []const [first, ...rest] [foo]; first // foo rest // [] 4.字符串/类数组转为真正的数组 因为任何定义了遍历器Iterator接口的对象都可以用扩展运算符转为真正的数组。 [...test] // [ t, e, s, t][...document.querySelectorAll(div)] // [div, div, div] 基本实现原理 如果不用 …如何实现一样的功能由上面的用法可以知道。扩展运算符主要就是浅拷贝可遍历对象属性那么我们可以用es5的写法实现如下 // 简单版实现 function _spread() {for (var ar [], i 0; i arguments.length; i){ar ar.concat(arguments[i]);}return ar; }; 用上面的例子测试一下结果如下 const a1 [test1, test2]; const a2 _spread(a1);a2[0] test2; a2 // [test2, test2] 可以看出上面的例子没有考虑到属性的可遍历性判断那么需要进一步优化。 严谨实现 这里分几种情况来考虑就好 判断是否为数组数组一定可迭代则直接复制数组后返回结果即可。判断是否为实现了遍历器Iterator接口的对象若实现了则转为数组。如果没有实现遍历器Iterator接口的对象则判断是否为普通字符串/Map/Set等。均不满足以上条件的话则抛错。 所以最后实现为 function _toConsumableArray(arr) {return (_arrayWithoutHoles(arr) || // 判断是否为数组_iterableToArray(arr) || // 判断是否为实现了遍历器Iterator接口的对象_unsupportedIterableToArray(arr) || // 判断是否为普调字符串/Map/Set等_nonIterableSpread() // 则抛错); }function _nonIterableSpread() {throw new TypeError(Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.); }function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (typeof o string) return _arrayLikeToArray(o, minLen);var n Object.prototype.toString.call(o).slice(8, -1);if (n Object o.constructor) n o.constructor.name;if (n Map || n Set) return Array.from(o);if (n Arguments || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o, minLen); }function _iterableToArray(iter) {if ((typeof Symbol ! undefined iter[Symbol.iterator] ! null) ||iter[iterator] ! null)return Array.from(iter); }function _arrayWithoutHoles(arr) {if (Array.isArray(arr)) return _arrayLikeToArray(arr); }function _arrayLikeToArray(arr, len) {if (len null || len arr.length) len arr.length;for (var i 0, arr2 new Array(len); i len; i) {arr2[i] arr[i];}return arr2; }
http://www.zqtcl.cn/news/370488/

相关文章:

  • django网站开发源码阿里邮箱登录
  • 机床网站建设网站关键词优化怎么做
  • 全网营销一站式推广wordpress新文章加new
  • 做网站哪个系统最安全长沙简界网络科技有限公司
  • 象山县城乡和住房建设局网站上海公司牌照最新价格
  • 复旦学霸张立勇做的网站开一个公司需要多少钱
  • 专业建设公司网站软件技术培训
  • 网站建设_聊城笑话小网站模板html
  • 智能建造师威海网站优化推广
  • 做网站如何选域名长沙房价2020最新价格
  • seo网站推广济宁一建建设集团有限公司
  • 高端大气网站设计欣赏有意思网站推荐
  • 什么网站做海宁的房产好北控京奥建设有限公司网站
  • 上海网站建设网络推广网页搜索框下记录删不掉
  • 团购网站大全做相册手机网站如何制作免费
  • 承德网站制作方案百度seo关键词排名s
  • 网站建设公司佛山国内网站推广
  • 辽宁网站制作公司潍坊网站建设维护
  • 手机网站图片切换平面图网站
  • 松岗建设网站广州网站定制开发方案
  • 东阳网站建设价格做理财的网站有哪些问题
  • 蓄电池回收网站建设wordpress cp 部署
  • cuteftp 备份网站网站制作课程介绍
  • 杭州网站搭建宁波企业官网建设
  • php免费网站源码网站建设电子书
  • 建设纺织原料网站专业网页制作室
  • 买域名做网站推广都是些什么湘潭什么网站做c1题目
  • 鲜花网站建设图片昆明网站建站平台
  • 密云网站制作案例昆明小程序开发
  • 网站紧急维护商丘手机网站制作