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

营销网站设计上海天气北京南站地铁几号线

营销网站设计上海天气,北京南站地铁几号线,装饰工程公司排名,建筑设计公司职位有哪些Js面试之作用域与闭包 作用域词法作用域动态作用域 闭包闭包使用场景封装私有变量模块化开发保持变量状态异步操作 注意事项 最近在整理一些前端面试中经常被问到的问题#xff0c;分为vue相关、react相关、js相关、react相关等等专题#xff0c;可持续关注后续内容#xff… Js面试之作用域与闭包 作用域词法作用域动态作用域 闭包闭包使用场景封装私有变量模块化开发保持变量状态异步操作 注意事项 最近在整理一些前端面试中经常被问到的问题分为vue相关、react相关、js相关、react相关等等专题可持续关注后续内容会不断进行整理~ 作用域 作用域scope定义了程序中变量的可访问性和生命周期在js中作用域有两种主要的类型词法作用域Lexical Scope和动态作用域Dynamic Scope 词法作用域 词法作用域又称静态作用域是指作用域在代码编写阶段就确定的与函数的定义位置有关。javascript使用词法作用域函数的作用域在函数定义时就已经确定 var globalVariable I am globalfunction outer() {var outerVariabl I am outerfunction inner() {var innerVariable I am innerconsole.log(innerVariable) // 可以访问innerVariableconsole.log(outerVariable) // 可以访问outerVariableconsole.log(globalVariable) // 可以访问globalVariable}inner();console.log(innerVariable) // Error: innerVariable is not defined }outer()动态作用域 动态作用域是在运行时根据调用链来确定的与函数的调用位置有关。js不使用动态作用域而是使用词法作用域 闭包 闭包(Closure)是指一个函数和其词法作用域的组合。当函数在词法作用域以外的地方被调用时它仍然能够访问自己的词法作用域形成了闭包。 或说 闭包Closure是指有权访问另一个函数作用域中变量的函数即便是在外部函数执行完毕之后。 function outer() {var outerVariable I am outerfunction inner() {console.log(outerVariable) // 形成闭包可以访问outerVariable}return inner }var closureFunction outer() closureFunction() // 通过闭包访问outerVariable闭包使用场景 封装私有变量 通过闭包可以创建私有变量只能通过闭包内部的函数访问不会被外部直接访问到 function counter() {var count 0;return function() {count;console.log(count);}; }var increment counter(); increment(); // 输出 1 increment(); // 输出 2模块化开发 使用闭包可以创建模块将相关的功能封装到一个闭包中避免全局污染 var module (function() {var privateVariable I am private;function privateFunction() {console.log(This is private)}return {publicVariable: I am public,publicFunction: function() {console.log(This is public)}} })()console.log(module.publicVariable) // I am public module.publicFunction() // This is public保持变量状态 由于闭包可以访问外部函数的变量所以可以保持状态 function createCounter() {var count 0;return {increment: function() {count;console.log(count)},reset: function() {count 0;console.log(Count reset)}} }var counter createCounter(); counter.increment(); // 输出1 counter.increment(); // 输出2异步操作 在异步回调中经常使用闭包来保存状态 function fetchData(url, callback) {var data null;fetchDataFromServer(url, function(result)) {// 调用 fetchDataFromServer 函数从服务器异步获取数据并传给datadata result;callback();});return function() {// 使用闭包中的dataconsole.log(data);} }var getData fetchData(https://example.com/data, function() {console.log(Data received); })// 在合适的时机调用getData()注意事项 潜在的内存泄漏问题如果闭包中引用了大量变量可能导致内存无法释放。滥用闭包可能导致性能问题因为它们会占用更多内存
http://www.tj-hxxt.cn/news/143913.html

相关文章:

  • 贸易网站模板企业信用信息查询公示系统河北
  • 怎么在网上卖东西视频淄博seo方案
  • 专业设计网址青岛网站开发高性能网站建设进阶指南
  • 重庆 网站 建设静乐县城乡建设局网站
  • 怎么样提升网站权重wordpress 导航网站模板下载
  • 策划对于企业网站建设来说北海涠洲岛旅游网站建设分析
  • 深圳建设局网站宝安分中心苏州关键词优化平台
  • 长春做网站的公司山西高端建设网站
  • vue大型网站怎么做路由个人介绍网站模板
  • 建设银行租房平台网站怎样注册企业邮箱免费
  • 十堰做网站最好的公司WordPress页面加分类文章
  • 成都哪家做网站wordpress 当前分类名称
  • 南通建设工程造价信息网站哈尔滨seo优化专注
  • WordPress多站点同步设置哪个博客可以做单页网站
  • 网站制作自助wordpress 3 小工具运行php
  • 哪家网站优化公司好网站建设源码开发
  • 龙信建设集团有限公司网站建设银行官方网站客户端
  • 网站丢失怎么解决网站做备案
  • 国内全屏网站欣赏app拉新平台哪个好佣金高
  • 个人注册公司网站空间象屿做核放单的网站
  • 原创网站源码客户端网站建设文档
  • 有哪些做农产品的网站有哪些得物app的网络营销分析论文
  • 门户网站的首页模板无极网络是什么意思
  • php投票网站seo短视频网页入口引流在线
  • 电商网站设计公司可去亿企邦百度竞价开户需要多少钱
  • 网站正在建设中代码鲜花网站建设的目标
  • 学做网站后台开发长沙网络公司
  • 网站栏目类型鄂尔多斯建设招投标网站
  • 温州英文网站建设微信小程序组件库
  • 丹阳网站建设价格查询网站备案查询