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

惠州网站建设信息网站兼容性怎么解决

惠州网站建设信息,网站兼容性怎么解决,wordpress煎蛋网,东莞市区最繁华的地方首先#xff0c;咱们通常被执行上下文#xff0c;执行上下文环境#xff0c;上下文环境#xff0c;执行上下文栈这些名词搞混。那我们一一来揭秘这些名字的含义。 这一块一直比较晦涩难懂#xff0c;还是需要仔细去斟酌斟… 首先咱们通常被执行上下文执行上下文环境上下文环境执行上下文栈这些名词搞混。那我们一一来揭秘这些名字的含义。 这一块一直比较晦涩难懂还是需要仔细去斟酌斟酌。 什么是执行上下文也叫做“执行上下文环境”“上下文环境” 咱们还是先看代码。 console.log(a) // undefined var a 100fn(bella) // bella 20 function fn(name) {age 20console.log(name, age)var age }console.log(b); // 这里报错 // Uncaught ReferenceError: b is not defined第一个console输出 undefined说明浏览器在执行console.log(a)的时候已经知道a的存在的但是不知道a的值。 第二个fn(bella)输出 bella 20说明浏览器在执行的时候已经知道fn函数了并且执行了 第三个console报错b is noe defined。说明没有找到b 那么可以看出来浏览器在执行之前做了一些准备工作。 那做了些什么准备工作 全局上下文环境 变量定义函数声明函数上下文环境函数内部变量定义函数声明thisarguments下面这个例子很多地方都用来讲解执行上下文和上下文栈。 1 // 这是一个压栈出栈的过程--执行上下文栈2 let a 10; // 1、进入全局上下文环境3 let fn; 4 let bar function(x) {5 let b 56 fn(x b) // 3、进入fn函数上下文环境7 };8 fn function(y) {9 let c 5 10 console.log(y c) 11 } 12 13 bar(10) // 2、 进入bar函数上下文  这里引出了执行上下文栈的概念上下文栈就是压栈和出栈的过程。 1.在代码执行之前首先创建全局上下文环境 // 全局上下文环境a: undefinedfn: undefinedbar: undefined, this: window 2.然后执行代码在代码执行到12之前全局上下文中的变量在执行中被赋值 // 全局上下文环境a: 10fn: functionbar: function this: window 然后执行13行代码调用bar函数会创建一个新的执行上下文环境。并将这个bar上下文环境压栈并设置为活动状态 // bar函数上下文环境b: undefinedx: 10arguments: [10] this: window 3.然后执行到第6行代码调用fn的时候会创建一个新的执行上下文。并将这个fn上下文环境压栈并设置为活动状态。 // fn函数上下文环境 c: undefined y: 15 arguments: [15]this: window 4.fn执行完毕后调用fn函数生成的fn上下文环境出栈销毁。然后bar出栈销毁。然后全局上下文出栈销毁     理解完了执行上下文再看看this 相信都知道这句话谁调用函数this就指向谁。那么我们理解下this var a {name: A,fn: function() {console.log(this.name)}}a.fn() // this aa.fn.call({name: B}) // this {name: B}var fn1 a.fnfn1() // this window this: this的值只有在执行的时候才能确认定义的时候不能确认。因为this是执行上下文的一部分而执行上下文需要再代码执行之前确定。 this执行会有不同主要集中在这几个场景中 作为构造函数执行构造函数中作为对象属性执行上述代码中a.fn()作为普通函数执行上述代码中fn1()用于call apply bind,上述代码中a.fn.call() 作用域 ES6之前没有块级作用域除了全局作用域函数会创建自己的作用域。 作用域在函数定义的时候已经确定了不是在函数调用确定区别于执行上下文环境this是执行上下文环境中的 作用域只是一个“地盘”其中没有变量。变量是通过作用域对应的执行上下文环境中的变量对象来实现的。所以作用域是静态的而执行上下文是动态的。 有闭包存在的时候一个作用域存在两个上下文环境也是有的。 也就是说作用域只是用于划分你在这个作用域里面定义的变量的有效范围出了这个范围就无效 作用域链 函数在定义的时候就确定了函数体内部自由变量的作用域 自由变量比如a,在fn作用域使用但是并没有在fn作用域定义。这就是自由变量 let a 100 function fn() {let b 20function bar() {console.log(a b) // a是自由变量}return bar }let x fn(), b 200 x() 那么自由变量是如何得到的这就引出了作用域链 bar要取得a的值就要在bar函数的作用域中取值如果没有就往上找找到fn作用域内也没有定义a继续往上找就找到全局作用域找到就结束了。这就是作用域链 讲完这些我们再通过一个例子来理解闭包 1 function F1() { 2 var a 100 3 return function () { 4 console.log(a) 5 } 6 } 7 var f1 F1() 8 var a 200 9 f1()   自由变量将从作用域链中去寻找但是 依据的是函数定义时的作用域链而不是函数执行时以上这个例子就是闭包。 怎么理解依据的是函数定义时的作用域链而不是函数执行时这句话 调用第9行之后 如果按照执行时就输出的时200 但是作用域都是在定义时就生成了所以f1回去再定义function的作用域去找因此输出100. 理解闭包之后我们就看看闭包的主要场景 函数作为返回值上面的例子就是 函数作为参数传递   转载于:https://www.cnblogs.com/thonrt/p/10333581.html
http://www.zqtcl.cn/news/712242/

相关文章:

  • 如何制作一个自己的网页网站合肥网络优化公司有几家
  • 做网站的公司一年能赚多少钱织梦修改网站背景颜色
  • 门户网站建设的报价淘宝联盟怎么建网站
  • 常用的网站开发公司注册名称怎么起
  • j动态加载网站开发南京建设网站公司哪家好
  • 云南网站建设工具wordpress防御ip攻击
  • 珠海市网站建设开发公司站长工具whois查询
  • 网站备案icp过期网站建设好了怎么做推广
  • 网站自动识别手机代码网络服务器是指
  • 做自媒体那几个网站好点乐清做网站建设
  • 如何制作自己的网站在线观看2021网页源码
  • 电子商务网站建设百度文库工业设计公司招聘
  • 网站seo测评餐厅设计公司餐厅设计
  • 深圳网站seo推广wordpress swf 上传
  • 织梦做双语网站怎么做制作网站的教程
  • 公司网站开发的国内外研究现状个人网页设计大全
  • 做一个网站人员网站建设及推广优化
  • 胶州市城乡建设局网站能进封禁网站的浏览器
  • 网站做几级等保荣耀商城手机官网
  • 营销网站费用渭南网站建设公司
  • wordpress主题集成插件下载网站如何做360优化
  • 有什么在线做文档的网站网站开发需要用到哪些技术
  • 网站套餐可以分摊吗吗移动登录网页模板免费下载
  • asp网站会员注册不了但是打不开网页
  • wordpress 中文网店杭州排名优化公司
  • wordpress建站安全吗wordpress企业主题教程
  • 网站构建的开发费用信息管理系统网站开发教程
  • 自己做网站怎么维护wordpress素材模板
  • 如何选择一个好的优质网站建设公司wordpress 主题小工具
  • mysql数据库做网站广州网站seo地址