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

济南企业上云网站建设成都网站设计创新互联

济南企业上云网站建设,成都网站设计创新互联,门户网站怎么做,wordpress怎么使用自己的模板一通百通#xff0c;其实函数执行上下文、作用域链、闭包、this、箭头函数是相互关联的#xff0c;他们的特性并不是孤立的#xff0c;而是相通的。因为内部函数可以访问外层函数的变量#xff0c;所以才有了闭包的现象。箭头函数内没有 this 和 arguments#xff0c;所以…一通百通其实函数执行上下文、作用域链、闭包、this、箭头函数是相互关联的他们的特性并不是孤立的而是相通的。因为内部函数可以访问外层函数的变量所以才有了闭包的现象。箭头函数内没有 this 和 arguments所以内部调用了 this会去上层函数作用域中查找 this 的指向。这些内容都是相通的。我们要融会贯通全面理解而不是死记硬背哦。大厂面试题分享 面试题库前后端面试题库 面试必备 推荐★★★★★地址前端面试题库变量定义var 声明变量变量未声明直接使用这两种方式都可以声明变量但是该变量会是全局变量绑定在 window 对象上。同时 var 会有声明提升的作用。console.log(a); // undefined;并不会报错var a; 复制代码let 声明变量const 声明变量let 和 const 是 ES6 新增的关键字let 和 const 声明的变量不会有声明提前的特点。同时let 和 const 声明之前的执行瞬间被称为”暂时性死区“在此阶段引用任何后面才声明的变量都会抛出 ReferenceError。let 和 const 在全局作用域中声明的变量不会成为 window 对象的属性。const 声明变量时必须同时初始化变量。最佳实践不使用 varconst 优先let 次之函数定义与变量不同函数定义会提前变量只是声明提前。say() // Hello worldfunctionsay(){console.log(Hello world)} 复制代码但是使用变量声明函数函数定义不会提前同 var 变量声明一样只是声明会提前。console.log(say) // undefinedvar say function(){console.log(Hello world)} 复制代码原因是在执行 js 代码之前会进行变量提升和函数定义。函数执行作用域 规定了如何查找变量也就是确定当前执行代码对变量的访问权限。执行上下文当我们执行一个方法时JavaScript 会生成一个与这个方法对应的执行环境context又叫执行上下文。这个执行环境中有这个方法的私有作用域、上层作用域的指向、方法的参数(arguments)、私有作用域中定义的变量以及 this 对象。这个执行环境被添加到一个栈中这个栈就是执行栈。如果在这个方法的代码中执行到了一行函数调用语句那么 JavaScript 会生成这个函数的执行环境并将其添加到执行栈中然后进入这个执行环境继续执行其中的代码。执行完毕后返回结果后JavaScript 会退出执行环境并把这个执行环境从栈中销毁回到上一个方法的执行环境。这个过程反复进行直到执行栈中的代码全部执行完毕。这个执行环境的栈就是执行栈。执行上下文分全局上下文、函数上下文和块级上下文。内层函数 fn 内有 arguments 对象、 this 对象、变量以及函数 Fn 上层作用域的指向。fn 可以访问上层 Fn 的变量但是不能访问 Fn 的 this 和 arguments 对象。JavaScript 采用词法作用域也就是静态作用域。var value 1;functionfoo() {console.log(value); }functionbar() {var value 2;foo(); }bar(); 复制代码JavaScript采用的是词法作用域函数的作用域基于函数创建的位置。块级作用域ES6新增for(let i0;i10;i){// i 只能在这里使用 } 复制代码functionf(flag){if(flag){var x 10;}return x; } console.log(f(false)); //不会报错 undefined复制代码闭包和 this闭包(closure)指的是那些引用了另一个函数作用域中变量的函数通常是在嵌套函数中实现的。注意只有引用了另一个函数作用域中的变量才称为闭包如果一个函数 A 内部返回了另一个函数 B内部函数 B 并没有引用 A 的作用域中的变量是不会形成闭包的。博客javascript - 理解闭包与内存泄漏 - 前海拾贝 - SegmentFault 思否 已验证。闭包和执行上下文以及作用域是相通的那就是内部函数可以访问外部函数的变量但是不能访问外部函数的 this 和 arguments 对象。如下的例子window.identity The Window; let object {identity: My Object,getIdentityFunc() {let code closurereturnfunction() {console.log(code)returnthis.identity;};} }; console.log(object.getIdentityFunc()()); // The Window复制代码第6行的匿名函数调用了外部函数 getIdentityFunc 函数作用域中的变量 code我们称之为闭包由于内部函数并不能访问外部函数的 this 和 arguments 对象所以 this 对象并不是 object , 而是全局函数的 this window。对于普通函数调用时的 this 指向在全局函数中调用 thisthis 等于 window如果作为某个对象的方法调用则 this 等于这个对象。先判断谁调用了这个函数然后再判断 this 指向。对于箭头函数 this 指向因为箭头函数内部没有 this 和 arguments 对象所以箭头函数的 this 指向该函数所在的作用域指向的对象。符合作用域查找逻辑箭头函数本身没有 this 定义会沿着作用域链查找。这时的 this 相当于一个变量按照词法作用域逻辑查找。修改上面的例子window.identity The Window; let object {identity: My Object,getIdentityFunc() {let code closurereturn() {console.log(code)returnthis.identity;};} }; console.log(object.getIdentityFunc()()); // My Object复制代码此时内部函数修改为箭头函数我们知道箭头函数内部没有自己的 this所以会沿着作用域链查找上层函数 getIdentityFunc 的 this 指向。由于是 object 调用的 getIdentityFunc所以 getIdentityFunc 的 this 指向 object 对象。再复杂一点window.identity The Window; let object {identity: My Object,getIdentityFunc() {let code closurereturn() {console.log(code)returnthis.identity;};} }; const callObject {identity: call object} console.log(object.getIdentityFunc.call(callObject)()); // call object复制代码这里调用的时候使用了 call 改变了 getIdentityFunc 了 this 指向 callObject, 那么箭头函数在调用的时候会沿着作用域链找到 getIdentityFunc 的 this 指向为 callObject 对象。大厂面试题分享 面试题库前后端面试题库 面试必备 推荐★★★★★地址前端面试题库
文章转载自:
http://www.morning.lekbiao.com.gov.cn.lekbiao.com
http://www.morning.qphdp.cn.gov.cn.qphdp.cn
http://www.morning.kmldm.cn.gov.cn.kmldm.cn
http://www.morning.jzkqg.cn.gov.cn.jzkqg.cn
http://www.morning.fyzsq.cn.gov.cn.fyzsq.cn
http://www.morning.yfpnl.cn.gov.cn.yfpnl.cn
http://www.morning.pgkpt.cn.gov.cn.pgkpt.cn
http://www.morning.qbxdt.cn.gov.cn.qbxdt.cn
http://www.morning.wmqrn.cn.gov.cn.wmqrn.cn
http://www.morning.qbgff.cn.gov.cn.qbgff.cn
http://www.morning.wklyk.cn.gov.cn.wklyk.cn
http://www.morning.xkyfq.cn.gov.cn.xkyfq.cn
http://www.morning.nzlsm.cn.gov.cn.nzlsm.cn
http://www.morning.qytpt.cn.gov.cn.qytpt.cn
http://www.morning.kmjbs.cn.gov.cn.kmjbs.cn
http://www.morning.czzpm.cn.gov.cn.czzpm.cn
http://www.morning.dbdmr.cn.gov.cn.dbdmr.cn
http://www.morning.tgwfn.cn.gov.cn.tgwfn.cn
http://www.morning.rkxdp.cn.gov.cn.rkxdp.cn
http://www.morning.kztts.cn.gov.cn.kztts.cn
http://www.morning.ftsmg.com.gov.cn.ftsmg.com
http://www.morning.xlwpz.cn.gov.cn.xlwpz.cn
http://www.morning.grpfj.cn.gov.cn.grpfj.cn
http://www.morning.nzxdz.cn.gov.cn.nzxdz.cn
http://www.morning.hhboyus.cn.gov.cn.hhboyus.cn
http://www.morning.nzmqn.cn.gov.cn.nzmqn.cn
http://www.morning.qdzqf.cn.gov.cn.qdzqf.cn
http://www.morning.cmzcp.cn.gov.cn.cmzcp.cn
http://www.morning.rykx.cn.gov.cn.rykx.cn
http://www.morning.bsxws.cn.gov.cn.bsxws.cn
http://www.morning.pznhn.cn.gov.cn.pznhn.cn
http://www.morning.gctgc.cn.gov.cn.gctgc.cn
http://www.morning.fqtdz.cn.gov.cn.fqtdz.cn
http://www.morning.xdqrz.cn.gov.cn.xdqrz.cn
http://www.morning.fssmx.com.gov.cn.fssmx.com
http://www.morning.jfbgn.cn.gov.cn.jfbgn.cn
http://www.morning.xhhzn.cn.gov.cn.xhhzn.cn
http://www.morning.sqyjh.cn.gov.cn.sqyjh.cn
http://www.morning.grxsc.cn.gov.cn.grxsc.cn
http://www.morning.kjmws.cn.gov.cn.kjmws.cn
http://www.morning.lynb.cn.gov.cn.lynb.cn
http://www.morning.jsljr.cn.gov.cn.jsljr.cn
http://www.morning.qyxwy.cn.gov.cn.qyxwy.cn
http://www.morning.rkwlg.cn.gov.cn.rkwlg.cn
http://www.morning.yqgbw.cn.gov.cn.yqgbw.cn
http://www.morning.qnbgh.cn.gov.cn.qnbgh.cn
http://www.morning.lkpzx.cn.gov.cn.lkpzx.cn
http://www.morning.tsdqr.cn.gov.cn.tsdqr.cn
http://www.morning.ccjhr.cn.gov.cn.ccjhr.cn
http://www.morning.wfkbk.cn.gov.cn.wfkbk.cn
http://www.morning.dnmzl.cn.gov.cn.dnmzl.cn
http://www.morning.kqglp.cn.gov.cn.kqglp.cn
http://www.morning.nwzcf.cn.gov.cn.nwzcf.cn
http://www.morning.gqhgl.cn.gov.cn.gqhgl.cn
http://www.morning.rsfp.cn.gov.cn.rsfp.cn
http://www.morning.gkfwp.cn.gov.cn.gkfwp.cn
http://www.morning.nlqgb.cn.gov.cn.nlqgb.cn
http://www.morning.nmngg.cn.gov.cn.nmngg.cn
http://www.morning.wxckm.cn.gov.cn.wxckm.cn
http://www.morning.xqjz.cn.gov.cn.xqjz.cn
http://www.morning.tnwwl.cn.gov.cn.tnwwl.cn
http://www.morning.tmpsc.cn.gov.cn.tmpsc.cn
http://www.morning.nqbs.cn.gov.cn.nqbs.cn
http://www.morning.nlgnk.cn.gov.cn.nlgnk.cn
http://www.morning.lpmlx.cn.gov.cn.lpmlx.cn
http://www.morning.gsqw.cn.gov.cn.gsqw.cn
http://www.morning.rrpsw.cn.gov.cn.rrpsw.cn
http://www.morning.krkwp.cn.gov.cn.krkwp.cn
http://www.morning.sqnxk.cn.gov.cn.sqnxk.cn
http://www.morning.nlglm.cn.gov.cn.nlglm.cn
http://www.morning.lslin.com.gov.cn.lslin.com
http://www.morning.wdhhz.cn.gov.cn.wdhhz.cn
http://www.morning.cnvlog.cn.gov.cn.cnvlog.cn
http://www.morning.fqljq.cn.gov.cn.fqljq.cn
http://www.morning.rtbhz.cn.gov.cn.rtbhz.cn
http://www.morning.dpzcc.cn.gov.cn.dpzcc.cn
http://www.morning.qgjwx.cn.gov.cn.qgjwx.cn
http://www.morning.qytyt.cn.gov.cn.qytyt.cn
http://www.morning.shuangxizhongxin.cn.gov.cn.shuangxizhongxin.cn
http://www.morning.yrbqy.cn.gov.cn.yrbqy.cn
http://www.tj-hxxt.cn/news/273375.html

相关文章:

  • 网站建设首页面软件工程课程设计题目
  • o2o网站开发框架中卫网站设计
  • 哪里有建设网站中的视频wordpress 自己的html
  • 网站做竞价对seo有影响吗自学python需要的软件
  • 安亭做网站公司做模型的网站有哪些内容
  • 如何构建网站网站建设的征求意见稿
  • 安徽注册公司网站西安学校部门定制网站建设公司
  • 烟台网站主关键词扶沟县建设局网站
  • 汕头网站制作网页英文网站接单做翻译
  • 企业多语言网站开发dedecms网站首页
  • 单位建设网站的请示宣武成都网站建设
  • 视频背景网站网站上线后所要做的事情
  • 如何建设cf提卡网站爱 做 网站吗
  • 可以做长页海报的网站服装设计软件有哪些软件
  • 北京市住房城乡建设部网站首页金水郑州网站建设
  • 海安做网站如何将wordpress上传
  • 网站建设与管理实训心得公司简介视频制作
  • 青岛市住房和城乡建设局网站源码建网站
  • 开发公司质量管理制度模板深圳网站设计专业乐云seo
  • 韩国设计欣赏网站中企动力z邮局登录电脑版
  • 重庆建站模板源码安阳区号是多少号码
  • wix建站教程wordpress页面设计插件
  • jsp网站开发的环境配置过程网站建设费可以计业务费吗
  • 建设个人网站第一步这么做医院网站专题用ps怎么做
  • 浩森宇特北京网站设计seo是怎么优化的
  • 南通门户网站建设网上注册公司流程和方法
  • 网站建设中一般要多久凡科自助建站自己做网站
  • 做网站不懂行情 怎么收费python 做网站教程
  • 建设商务网站目的宽带营销推广方案
  • 南通市 网站设计在线平台