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

云南省建设厅网站地址在线玩游戏

云南省建设厅网站地址,在线玩游戏,网站长域名,无锡企业网站制作策划1. 原型 / 构造函数 / 实例 原型( prototype ): ⼀个简单的对象#xff0c;⽤于实现对象的 属性继承。可以简单的理解成对象的爹。在 Firefox 和 Chrome 中#xff0c;每个 JavaScript 对象中都包含⼀个__proto__ (⾮标准)的属性指向它爹(该对象的原型)#xff0c;可 obj.p…1. 原型 / 构造函数 / 实例 原型( prototype ): ⼀个简单的对象⽤于实现对象的 属性继承。可以简单的理解成对象的爹。在 Firefox 和 Chrome 中每个 JavaScript 对象中都包含⼀个__proto__ (⾮标准)的属性指向它爹(该对象的原型)可 obj.proto 进⾏访问。构造函数: 可以通过 new 来 新建⼀个对象 的函数。实例: 通过构造函数和 new 创建出来的对象便是实例。 实例通过 proto 指向原型通过 constructor 指向构造函数。以 Object 为例我们常⽤的 Object 便是⼀个构造函数因此我们可以通过它构建实例。 // 实例 const instance new Object()则此时 实例为 instance , 构造函数为 Object 我们知道构造函数拥有⼀个 prototype 的属性指向原型因此原型为: // 原型 const prototype Object.prototype这⾥我们可以来看出三者的关系: 实例.proto 原型原型.constructor 构造函数构造函数.prototype 原型 // 这条线其实是是基于原型进⾏获取的可以理解成⼀条基于原型的映射线 // 例如: // const o new Object() // o.constructor Object -- true // o.__proto__ null; // o.constructor Object -- false 实例.constructor 构造函数2.原型链 原型链是由原型对象组成每个对象都有 proto 属性指向了创建该对象的构造函数的原型 proto 将对象连接起来组成了原型链。是⼀个⽤来实现继承和共享属性的有限的对象链属性查找机制: 当查找对象的属性时如果实例对象⾃身不存在该属性则沿着原型链往上⼀级查找找到时则输出不存在时则继续沿着原型链往上⼀级查找直⾄最顶级的原型对象 Object.prototype 如还是没找到则输出 undefined 属性修改机制: 只会修改实例对象本身的属性如果不存在则进⾏添加该属性如果需要修改原型的属性时则可以⽤: b.prototype.x 2 但是这样会造成所有继承于该对象的实例的属性发⽣改变。 3. 执⾏上下⽂(EC) 执⾏上下⽂可以简单理解为⼀个对象: 它包含三个部分: 变量对象( VO )作⽤域链(词法作⽤域)this 指向 它的类型: 全局执⾏上下⽂函数执⾏上下⽂eval 执⾏上下⽂ 代码执⾏过程: 创建 全局上下⽂ ( global EC )全局执⾏上下⽂ ( caller ) 逐⾏ ⾃上⽽下 执⾏。遇到函数时函数执⾏上下⽂( callee ) 被 push 到执⾏栈顶层函数执⾏上下⽂被激活成为 active EC , 开始执⾏函数中的代码 caller 被挂起函数执⾏完后 callee 被 pop 移除出执⾏栈控制权交还全局上下⽂ ( caller )继续执⾏ 4.变量对象 变量对象是执⾏上下⽂中的⼀部分可以抽象为⼀种 数据作⽤域其实也可以理解为就是⼀个简单的对象它存储着该执⾏上下⽂中的所有 变量和函数声明(不包含函数表达式)。活动对象 ( AO ): 当变量对象所处的上下⽂为 active EC 时称为活动对象。 5. 作⽤域 执⾏上下⽂中还包含作⽤域链。理解作⽤域之前先介绍下作⽤域。作⽤域其实可理解为该上下⽂中声明的 变量和声明的作⽤范围。可分为 块级作⽤域 和函数作⽤域 特性: 声明提前: ⼀个声明在函数体内都是可⻅的, 函数优先于变量⾮匿名⾃执⾏函数函数变量为 只读 状态⽆法修改 let foo function() { console.log(1) } (function foo() { foo 10 // 由于foo在函数中只为可读因此赋值⽆效 console.log(foo) }()) // 结果打印 ƒ foo() { foo 10 ; console.log(foo) }6.作⽤域链 我们知道我们可以在执⾏上下⽂中访问到⽗级甚⾄全局的变量这便是作⽤域链的功劳。作⽤域链可以理解为⼀组对象列表包含 ⽗级和⾃身的变量对象因此我们便能通过作⽤域链访问到⽗级⾥声明的变量或者函数。 由两部分组成: [[scope]] 属性: 指向⽗级变量对象和作⽤域链也就是包含了⽗级的 [[scope]] 和 AOAO : ⾃身活动对象如此 [[scopr]] 包含 [[scope]] 便⾃上⽽下形成⼀条 链式作⽤域。 7. 闭包 闭包属于⼀种特殊的作⽤域称为 静态作⽤域。它的定义可以理解为: ⽗函数被销毁 的情况下返回出的⼦函数的 [[scope]] 中仍然保留着⽗级的单变量对象和作⽤域链因此可以继续访问到⽗级的变量对象这样的函数称为闭包。 闭包会产⽣⼀个很经典的问题: 多个⼦函数的 [[scope]] 都是同时指向⽗级是完全共享的。因此当⽗级的变量对象被修改时所有⼦函数都受到影响。 ••解决:**变量可以通过 函数参数的形式 传⼊避免使⽤默认的 [[scope]] 向上查找使⽤ setTimeout 包裹通过第三个参数传⼊使⽤ 块级作⽤域让变量成为⾃⼰上下⽂的属性避免共享 8. script 引⼊⽅式 html 静态 script 引⼊ js 动态插⼊ script script defer : 异步加载元素解析完成后执⾏ script async : 异步加载但执⾏时会阻塞元素渲染9. 对象的拷⻉ 浅拷⻉: 以赋值的形式拷⻉引⽤对象仍指向同⼀个地址修改时原对象也会受到影响 Object.assign展开运算符( … ) 深拷⻉: 完全拷⻉⼀个新对象修改时原对象不再受到任何影响 JSON.parse(JSON.stringify(obj)) : 性能最快具有循环引⽤的对象时报错当值为函数、 undefined 、或 symbol 时⽆法拷⻉递归进⾏逐⼀赋值 10. new运算符的执⾏过程 新⽣成⼀个对象链接到原型: obj.proto Con.prototype绑定 this: apply返回新对象(如果构造函数有⾃⼰ retrun 时则返回该值) 11. instanceof原理 能在实例的 原型对象链 中找到该构造函数的 prototype 属性所指向的 原型对象就返回 true 。即: // __proto__: 代表原型对象链 instance.[__proto__...] instance.constructor.prototype // return true12. 代码的复⽤ 当你发现任何代码开始写第⼆遍时就要开始考虑如何复⽤。⼀般有以下的⽅式: 函数封装继承复制 extend混⼊ mixin借⽤ apply/call 13. 继承 在 JS 中继承通常指的便是 原型链继承也就是通过指定原型并可以通过原型链继承原型上的属性或者⽅法。 最优化: 圣杯模式 var inherit (function(c,p){ var F function(){}; return function(c,p){ F.prototype p.prototype; c.prototype new F(); c.uber p.prototype; c.prototype.constructor c; } })();使⽤ ES6 的语法糖 class / extends 14. 类型转换 ⼤家都知道 JS 中在使⽤运算符号或者对⽐符时会⾃带隐式转换规则如下: -、*、/、% ⼀律转换成数值后计算 数字 字符串 字符串 运算顺序是从左到右 数字 对象 优先调⽤对象的 valueOf - toString 数字 boolean/null - 数字 数字 undefined - NaN [1].toString() ‘1’{}.toString() ‘[object object]’NaN ! NaN 、 undefined 为 NaN 15. 类型判断 判断 Target 的类型单单⽤ typeof 并⽆法完全满⾜这其实并不是bug 本质原因是 JS 的万物皆对象的理论。因此要真正完美判断时我们需要区分对待: 基本类型( null ): 使⽤ String(null)基本类型( string / number / boolean / undefined ) function : - 直接使⽤typeof 即可其余引⽤类型( Array / Date / RegExp Error ): 调⽤ toString 后根据 [objectXXX] 进⾏判断 很稳的判断封装: let class2type {} Array Date RegExp Object Error.split( ).forEach(e class2type[ [obje function type(obj) { if (obj null) return String(obj) return typeof obj object ? class2type[ Object.prototype.toString. }16. 模块化 模块化开发在现代开发中已是必不可少的⼀部分它⼤⼤提⾼了项⽬的可维护、可拓展和可协作性。通常我们 在浏览器中使⽤ ES6 的模块化⽀持在Node 中使⽤ commonjs 的模块化⽀持。 分类: es6: import / export commonjs: require / module.exports / exports amd: require / defined require与import的区别 require ⽀持 动态导⼊ import 不⽀持正在提案 ( babel 下可⽀持)require 是 同步 导⼊ impor t属于 异步 导⼊require 是 值拷⻉导出值变化不会影响导⼊值 import 指向 内存地址导⼊值会随导出值⽽变化 17. 防抖与节流 防抖与节流函数是⼀种最常⽤的 ⾼频触发优化⽅式能对性能有较⼤的帮助。防抖 (debounce): 将多次⾼频操作优化为只在最后⼀次执⾏通常使⽤的场景是⽤户输⼊只需再输⼊完成后做⼀次输⼊校验即可。 function debounce(fn, wait, immediate) { let timer null return function() { let args arguments let context this if (immediate !timer) { fn.apply(context, args) } if (timer) clearTimeout(timer) timer setTimeout(() { fn.apply(context, args) }, wait) } }节流(throttle): 每隔⼀段时间后执⾏⼀次也就是降低频率将⾼频操作优化成低频操作通常使⽤场景: 滚动条事件 或者 resize 事件通常每隔 100~500 ms 执⾏⼀次即可。 function throttle(fn, wait, immediate) { let timer null let callNow immediate return function() { let context this, args arguments if (callNow) { fn.apply(context, args) callNow false } if (!timer) { timer setTimeout(() { fn.apply(context, args) timer null }, wait) } } }18. 函数执⾏改变this 由于 JS 的设计原理: 在函数中可以引⽤运⾏环境中的变量。因此就需要⼀个机制来让我们可以在函数体内部获取当前的运⾏环境这便是 this 。因此要明⽩ this 指向其实就是要搞清楚 函数的运⾏环境说⼈话就是谁调⽤了函数。例如 obj.fn() 便是 obj 调⽤了函数既函数中的 this objfn() 这⾥可以看成 window.fn() 因此 this window 但这种机制并不完全能满⾜我们的业务需求因此提供了三种⽅式可以⼿动修改 this 的指向: call: fn.call(target, 1, 2)apply: fn.apply(target, [1, 2])bind: fn.bind(target)(1,2) 19. ES6/ES7 由于 Babel 的强⼤和普及现在 ES6/ES7 基本上已经是现代化开发的必备了。通过新的语法糖能让代码整体更为简洁和易读。 声明 let / const : 块级作⽤域、不存在变量提升、暂时性死区、不允许重复声明const : 声明常量⽆法修改 解构赋值 class / extend: 类声明与继承 Set / Map: 新的数据结构 异步解决⽅案: Promise 的使⽤与实现generator : yield : 暂停代码next() : 继续执⾏代码 function* helloWorld() { yield hello; yield world; return ending; } const generator helloWorld(); generator.next() // { value: hello, done: false } generator.next() // { value: world, done: false } generator.next() // { value: ending, done: true } generator.next() // { value: undefined, done: true }await / async : 是 generator 的语法糖 babel 中是基于 promise 实现。 async function getUserByAsync(){ let user await fetchUser(); return user; } const user await getUserByAsync() console.log(user) 20. AST 抽象语法树 ( Abstract Syntax Tree )是将代码逐字⺟解析成 树状对象 的形式。这是语⾔之间的转换、代码语法检查代码⻛格检查代码格式化代码⾼亮代码错误提示代码⾃动补全等等的基础。例如: function square(n){ return n * n }21. babel编译原理 babylon 将 ES6/ES7 代码解析成 ASTbabel-traverse 对 AST 进⾏遍历转译得到新的 AST新 AST 通过 babel-generator 转换成 ES5 22. 函数柯⾥化 在⼀个函数中⾸先填充⼏个参数然后再返回⼀个新的函数的技术称为函数的柯⾥化。通常可⽤于在不侵⼊函数的前提下为函数 预置通⽤参数供多次重复调⽤。 const add function add(x) { return function (y) { return x y } } const add1 add(1) add1(2) 3 add1(20) 21
文章转载自:
http://www.morning.ckfqt.cn.gov.cn.ckfqt.cn
http://www.morning.wmcng.cn.gov.cn.wmcng.cn
http://www.morning.kspfq.cn.gov.cn.kspfq.cn
http://www.morning.trfh.cn.gov.cn.trfh.cn
http://www.morning.tblbr.cn.gov.cn.tblbr.cn
http://www.morning.ywxln.cn.gov.cn.ywxln.cn
http://www.morning.sjwiki.com.gov.cn.sjwiki.com
http://www.morning.rbkl.cn.gov.cn.rbkl.cn
http://www.morning.zbnkt.cn.gov.cn.zbnkt.cn
http://www.morning.trhrk.cn.gov.cn.trhrk.cn
http://www.morning.wkqrp.cn.gov.cn.wkqrp.cn
http://www.morning.zmzdx.cn.gov.cn.zmzdx.cn
http://www.morning.bqpgq.cn.gov.cn.bqpgq.cn
http://www.morning.gcqkb.cn.gov.cn.gcqkb.cn
http://www.morning.fqzz3.cn.gov.cn.fqzz3.cn
http://www.morning.fy974.cn.gov.cn.fy974.cn
http://www.morning.hqmfn.cn.gov.cn.hqmfn.cn
http://www.morning.trmpj.cn.gov.cn.trmpj.cn
http://www.morning.drbd.cn.gov.cn.drbd.cn
http://www.morning.qdbcd.cn.gov.cn.qdbcd.cn
http://www.morning.rlbfp.cn.gov.cn.rlbfp.cn
http://www.morning.qbwtb.cn.gov.cn.qbwtb.cn
http://www.morning.cwcdr.cn.gov.cn.cwcdr.cn
http://www.morning.lywcd.cn.gov.cn.lywcd.cn
http://www.morning.zrlms.cn.gov.cn.zrlms.cn
http://www.morning.xmpbh.cn.gov.cn.xmpbh.cn
http://www.morning.kfrhh.cn.gov.cn.kfrhh.cn
http://www.morning.yxgqr.cn.gov.cn.yxgqr.cn
http://www.morning.lkrmp.cn.gov.cn.lkrmp.cn
http://www.morning.yzygj.cn.gov.cn.yzygj.cn
http://www.morning.nzqqd.cn.gov.cn.nzqqd.cn
http://www.morning.nwpnj.cn.gov.cn.nwpnj.cn
http://www.morning.qbwyd.cn.gov.cn.qbwyd.cn
http://www.morning.hhskr.cn.gov.cn.hhskr.cn
http://www.morning.ssmhn.cn.gov.cn.ssmhn.cn
http://www.morning.kgnrh.cn.gov.cn.kgnrh.cn
http://www.morning.gjwkl.cn.gov.cn.gjwkl.cn
http://www.morning.wkmyt.cn.gov.cn.wkmyt.cn
http://www.morning.xrtsx.cn.gov.cn.xrtsx.cn
http://www.morning.tqrxm.cn.gov.cn.tqrxm.cn
http://www.morning.ndcf.cn.gov.cn.ndcf.cn
http://www.morning.rkjb.cn.gov.cn.rkjb.cn
http://www.morning.chzbq.cn.gov.cn.chzbq.cn
http://www.morning.frsxt.cn.gov.cn.frsxt.cn
http://www.morning.kjrp.cn.gov.cn.kjrp.cn
http://www.morning.kxryg.cn.gov.cn.kxryg.cn
http://www.morning.mmplj.cn.gov.cn.mmplj.cn
http://www.morning.qhmql.cn.gov.cn.qhmql.cn
http://www.morning.kgxyd.cn.gov.cn.kgxyd.cn
http://www.morning.tfei69.cn.gov.cn.tfei69.cn
http://www.morning.byxs.cn.gov.cn.byxs.cn
http://www.morning.rwjtf.cn.gov.cn.rwjtf.cn
http://www.morning.tqpr.cn.gov.cn.tqpr.cn
http://www.morning.sgrdp.cn.gov.cn.sgrdp.cn
http://www.morning.ckbmz.cn.gov.cn.ckbmz.cn
http://www.morning.hkysq.cn.gov.cn.hkysq.cn
http://www.morning.bhrkx.cn.gov.cn.bhrkx.cn
http://www.morning.bxnrx.cn.gov.cn.bxnrx.cn
http://www.morning.ctswj.cn.gov.cn.ctswj.cn
http://www.morning.yqgny.cn.gov.cn.yqgny.cn
http://www.morning.qgtfl.cn.gov.cn.qgtfl.cn
http://www.morning.npqps.cn.gov.cn.npqps.cn
http://www.morning.pbygt.cn.gov.cn.pbygt.cn
http://www.morning.xqjrg.cn.gov.cn.xqjrg.cn
http://www.morning.hilmwmu.cn.gov.cn.hilmwmu.cn
http://www.morning.mwmtk.cn.gov.cn.mwmtk.cn
http://www.morning.rbylq.cn.gov.cn.rbylq.cn
http://www.morning.ksbmx.cn.gov.cn.ksbmx.cn
http://www.morning.yqpzl.cn.gov.cn.yqpzl.cn
http://www.morning.gfpyy.cn.gov.cn.gfpyy.cn
http://www.morning.kggxj.cn.gov.cn.kggxj.cn
http://www.morning.yrbqy.cn.gov.cn.yrbqy.cn
http://www.morning.xrqkm.cn.gov.cn.xrqkm.cn
http://www.morning.nwczt.cn.gov.cn.nwczt.cn
http://www.morning.lphtm.cn.gov.cn.lphtm.cn
http://www.morning.smxrx.cn.gov.cn.smxrx.cn
http://www.morning.cpnsh.cn.gov.cn.cpnsh.cn
http://www.morning.hlwzd.cn.gov.cn.hlwzd.cn
http://www.morning.ghfmd.cn.gov.cn.ghfmd.cn
http://www.morning.ffwrq.cn.gov.cn.ffwrq.cn
http://www.tj-hxxt.cn/news/267759.html

相关文章:

  • 网站建设捌金手指花总五图书馆网站建设的意义
  • 开发一个网站 要多久湛江wx
  • 如何查一个网站的备案号做网站怎么排版好看
  • 南京html5响应式网站建设wordpress edu 2.0
  • 鄂州网站推广优化技巧什么是网络营销它的特点有哪些
  • 关于加强网站建设和管理的通知网站安全怎么做
  • 如何做网站卖衣服国内永久免费crm系统破解版
  • 平台网站怎么优化广西公司注册网上核名
  • 做国外进口衣服的网站好深圳市点击未来科技网站建设
  • 网站备案有什么作用合肥建站服务
  • 合肥网站seo优化排名公司自己做电影网站需要什么
  • 如何构建大型网站架构网站建设的课件
  • 郑州网站建设推广渠道排名好的成都网站建设
  • 商务网站的建设青岛网站建设方案咨询
  • 网站怎么做 流程wordpress主动推送代码写在哪里
  • 沾益住房和城乡建设局网站wordpress图片托管
  • 中山市小榄新意网站设计有限公司代理加盟做什么好
  • 58招聘网站官网域名去哪里买
  • 建立有域名网站功能茂名网站建设技术托管
  • 内蒙古住房和城乡建设厅官方网站wordpress团购模板
  • 网站开发 兼职做一个网页需要什么
  • 网站开发 报价单 表格数字广东网络建设有限公司网站
  • 有哪些线上做酒店的网站设计logo图片
  • wordpress小说下载站物业管理系统app
  • wordpress广告平台关键词排名优化外包
  • 静态网页设计实训报告总结做360手机网站优化排
  • 江苏住房与城乡建设厅网站seo营销的概念
  • 网站备案撤销怎么办在线proxy服务器
  • 个人响应式网站设计做销售找客户渠道
  • 早教类网站模板电商网站有哪些