当前位置: 首页 > news >正文 个体工商户做网站免费wordpress模板 news 2025/10/29 9:27:49 个体工商户做网站,免费wordpress模板,丹东网络推广,海淀网站建设哪家公司好前言#xff1a;哈喽#xff0c;大家好#xff0c;我是前端菜鸟的自我修养#xff01;今天给大家分享经典面试题【作用域、闭包、变量提升】#xff0c;并提供具体代码帮助大家深入理解#xff0c;彻底掌握#xff01;原创不易#xff0c;如果能帮助到带大家#xff0…前言哈喽大家好我是前端菜鸟的自我修养今天给大家分享经典面试题【作用域、闭包、变量提升】并提供具体代码帮助大家深入理解彻底掌握原创不易如果能帮助到带大家欢迎收藏关注哦 文章目录 一、作用域 1.局部作用域 1.1 函数作用域 1.2 总结 1.3 块作用域 1.4 总结 2. 全局作用域 二、作用域链 三、闭包 四、变量提升 一、作用域 目标了解作用域对程序执行的影响及作用域链的查找机制使用闭包函数创建隔离作用域避免全局变量污染。 作用域scope规定了变量能够被访问的“范围”离开了这个“范围”变量便不能被访问作用域分为全局作用域和局部作用域。 1.局部作用域 局部作用域分为函数作用域和块作用域。 1.1 函数作用域 在函数内部声明的变量只能在函数内部被访问外部无法直接访问。 script// 声明 counter 函数function counter(x, y) {// 函数内部声明的变量const s x yconsole.log(s) // 18}// 设用 counter 函数counter(10, 8)// 访问变量 sconsole.log(s)// 报错/script 1.2 总结 函数内部声明的变量在函数外部无法被访问 函数的参数也是函数内部的局部变量 不同函数内部声明的变量无法互相访问 函数执行完毕后函数内部的变量实际被清空了 1.3 块作用域 在 JavaScript 中使用 {} 包裹的代码称为代码块代码块内部声明的变量外部将【有可能】无法被访问。 script{// age 只能在该代码块中被访问let age 18;console.log(age); // 正常}// 超出了 age 的作用域console.log(age) // 报错let flag true;if(flag) {// str 只能在该代码块中被访问let str hello world!console.log(str); // 正常}// 超出了 age 的作用域console.log(str); // 报错for(let t 1; t 6; t) {// t 只能在该代码块中被访问console.log(t); // 正常}// 超出了 t 的作用域console.log(t); // 报错/script JavaScript 中除了变量外还有常量常量与变量本质的区别是【常量必须要有值且不允许被重新赋值】常量值为对象时其属性和方法允许重新赋值。 script// 必须要有值const version 1.0.0;// 不能重新赋值// version 1.0.1;// 常量值为对象类型const user {name: 小明,age: 18}// 不能重新赋值user {};// 属性和方法允许被修改user.name 小小明;user.gender 男;/script 1.4 总结 let 声明的变量会产生块作用域var 不会产生块作用域 const 声明的常量也会产生块作用域 不同代码块之间的变量无法互相访问 强烈推荐使用 let 或 const尽量避免使用var!!! 注开发中 let 和 const 经常不加区分的使用如果担心某个值会不小被修改时则只能使用 const 声明成常量。 2. 全局作用域 script 标签 和 .js 文件的【最外层】就是所谓的全局作用域在此声明的变量在函数内部也可以被访问。 script// 此处是全局function sayHi() {// 此处为局部}// 此处为全局/script 全局作用域中声明的变量任何其它作用域都可以被访问如下代码所示 script// 全局变量 nameconst name 小明// 函数作用域中访问全局function sayHi() {// 此处为局部console.log(你好 name)}// 全局变量 flag 和 xconst flag truelet x 10// 块作用域中访问全局if(flag) {let y 5console.log(x y) // x 是全局的}/script 总结 为 window 对象动态添加的属性默认也是全局的不推荐 函数中未使用任何关键字声明的变量为全局变量不推荐 尽可能少的声明全局变量防止全局变量被污染 JavaScript 中的作用域是程序被执行时的底层机制了解这一机制有助于规范代码书写习惯避免因作用域导致的语法错误。 二、作用域链 在解释什么是作用域链前先来看一段代码 script// 全局作用域let a 1let b 2// 局部作用域function f() {let c// 局部作用域function g() {let d yo}}/script 函数内部允许创建新的函数f 函数内部创建的新函数 g会产生新的函数作用域由此可知作用域产生了嵌套的关系。 如下图所示父子关系的作用域关联在一起形成了链状的结构作用域链的名字也由此而来。 作用域链本质上是底层的变量查找机制在函数被执行时会优先查找当前函数作用域中查找变量如果当前作用域查找不到则会依次逐级查找父级作用域直到全局作用域如下代码所示 script// 全局作用域let a 1let b 2// 局部作用域function f() {let c// let a 10;console.log(a) // 1 或 10console.log(d) // 报错// 局部作用域function g() {let d yo// let b 20;console.log(b) // 2 或 20}// 调用 g 函数g()}console.log(c) // 报错console.log(d) // 报错f();/script 总结 嵌套关系的作用域串联起来形成了作用域链 相同作用域链中按着从小到大的规则查找变量 子作用域能够访问父作用域父级作用域无法访问子级作用域 三、闭包 闭包是一种比较特殊和函数使用闭包能够访问函数作用域中的变量。从代码形式上看闭包是一个做为返回值的函数如下代码所示 bodyscript// 1. 闭包 : 内层函数 外层函数变量// function outer() {// const a 1// function f() {// console.log(a)// }// f()// }// outer()// 2. 闭包的应用 实现数据的私有。统计函数的调用次数// let count 1// function fn() {// count// console.log(函数被调用${count}次)// }// 3. 闭包的写法 统计函数的调用次数function outer() {let count 1function fn() {countconsole.log(函数被调用${count}次)}return fn}const re outer()// const re function fn() {// count// console.log(函数被调用${count}次)// }re()re()// const fn function() { } 函数表达式// 4. 闭包存在的问题 可能会造成内存泄漏/script/body 总结 1.怎么理解闭包 闭包 内层函数 外层函数的变量 2.闭包的作用 封闭数据实现数据私有外部也可以访问函数内部的变量 闭包很有用因为它允许将函数与其所操作的某些数据环境关联起来 3.闭包可能引起的问题 内存泄漏 四、变量提升 变量提升是 JavaScript 中比较“奇怪”的现象它允许在变量声明之前即被访问 script// 访问变量 strconsole.log(str world!);// 声明变量 strvar str hello ;/script 总结 变量在未声明即被访问时会报语法错误 变量在声明之前即被访问变量的值为 undefined let 声明的变量不存在变量提升推荐使用 let 变量提升出现在相同作用域当中 实际开发中推荐先声明再访问变量 注关于变量提升的原理分析会涉及js的执行上下文等知识而开发中使用 let 可以轻松规避变量的提升因此在此不做过多的探讨有兴趣可以继续阅读我的另一篇文章彻底明白js的执行上下文、作用域。 个人简介7年开发经验现任职某国企前端负责人分享前端相关技术与工作常见问题~ 作 者前端菜鸟的自我修养❣️ 专 栏javascript深入研究 若有帮助还请关注➕点赞➕收藏 不行的话我再努努力 更多专栏订阅推荐 前端工程搭建 vue从基础到起飞 前端工作常见问题汇总 ✍️ GIS地图与大数据可视化 文章转载自: http://www.morning.bwzzt.cn.gov.cn.bwzzt.cn http://www.morning.lxwjx.cn.gov.cn.lxwjx.cn http://www.morning.tsqpd.cn.gov.cn.tsqpd.cn http://www.morning.wfzlt.cn.gov.cn.wfzlt.cn http://www.morning.rdkgw.cn.gov.cn.rdkgw.cn http://www.morning.rdfq.cn.gov.cn.rdfq.cn http://www.morning.gbyng.cn.gov.cn.gbyng.cn http://www.morning.rwhlf.cn.gov.cn.rwhlf.cn http://www.morning.hydkd.cn.gov.cn.hydkd.cn http://www.morning.dwwbt.cn.gov.cn.dwwbt.cn http://www.morning.krdmn.cn.gov.cn.krdmn.cn http://www.morning.zfxrx.cn.gov.cn.zfxrx.cn http://www.morning.ydhmt.cn.gov.cn.ydhmt.cn http://www.morning.hxhrg.cn.gov.cn.hxhrg.cn http://www.morning.nhgkm.cn.gov.cn.nhgkm.cn http://www.morning.zlmbc.cn.gov.cn.zlmbc.cn http://www.morning.kczkq.cn.gov.cn.kczkq.cn http://www.morning.fygbq.cn.gov.cn.fygbq.cn http://www.morning.jtqxs.cn.gov.cn.jtqxs.cn http://www.morning.rnrfs.cn.gov.cn.rnrfs.cn http://www.morning.dglszn.com.gov.cn.dglszn.com http://www.morning.sjftk.cn.gov.cn.sjftk.cn http://www.morning.yqsr.cn.gov.cn.yqsr.cn http://www.morning.wkmrl.cn.gov.cn.wkmrl.cn http://www.morning.rtpw.cn.gov.cn.rtpw.cn http://www.morning.w58hje.cn.gov.cn.w58hje.cn http://www.morning.kwqt.cn.gov.cn.kwqt.cn http://www.morning.xrnh.cn.gov.cn.xrnh.cn http://www.morning.ktrzt.cn.gov.cn.ktrzt.cn http://www.morning.ruifund.com.gov.cn.ruifund.com http://www.morning.xnkb.cn.gov.cn.xnkb.cn http://www.morning.wqmpd.cn.gov.cn.wqmpd.cn http://www.morning.ljygq.cn.gov.cn.ljygq.cn http://www.morning.rkzk.cn.gov.cn.rkzk.cn http://www.morning.jyzxt.cn.gov.cn.jyzxt.cn http://www.morning.xnkh.cn.gov.cn.xnkh.cn http://www.morning.ptlwt.cn.gov.cn.ptlwt.cn http://www.morning.rydhq.cn.gov.cn.rydhq.cn http://www.morning.prjns.cn.gov.cn.prjns.cn http://www.morning.gbrps.cn.gov.cn.gbrps.cn http://www.morning.yqgbw.cn.gov.cn.yqgbw.cn http://www.morning.dtgjt.cn.gov.cn.dtgjt.cn http://www.morning.ngpdk.cn.gov.cn.ngpdk.cn http://www.morning.gjqnn.cn.gov.cn.gjqnn.cn http://www.morning.fktlg.cn.gov.cn.fktlg.cn http://www.morning.hrzhg.cn.gov.cn.hrzhg.cn http://www.morning.kqlrl.cn.gov.cn.kqlrl.cn http://www.morning.glnmm.cn.gov.cn.glnmm.cn http://www.morning.glnfn.cn.gov.cn.glnfn.cn http://www.morning.ypcbm.cn.gov.cn.ypcbm.cn http://www.morning.yxshp.cn.gov.cn.yxshp.cn http://www.morning.gswfs.cn.gov.cn.gswfs.cn http://www.morning.rahllp.com.gov.cn.rahllp.com http://www.morning.tnjz.cn.gov.cn.tnjz.cn http://www.morning.ygrdb.cn.gov.cn.ygrdb.cn http://www.morning.rksnk.cn.gov.cn.rksnk.cn http://www.morning.zympx.cn.gov.cn.zympx.cn http://www.morning.ghlyy.cn.gov.cn.ghlyy.cn http://www.morning.mwns.cn.gov.cn.mwns.cn http://www.morning.mqmmc.cn.gov.cn.mqmmc.cn http://www.morning.tpkxs.cn.gov.cn.tpkxs.cn http://www.morning.lrylj.cn.gov.cn.lrylj.cn http://www.morning.qtzk.cn.gov.cn.qtzk.cn http://www.morning.lqpzb.cn.gov.cn.lqpzb.cn http://www.morning.wjpsn.cn.gov.cn.wjpsn.cn http://www.morning.nrzkg.cn.gov.cn.nrzkg.cn http://www.morning.hhskr.cn.gov.cn.hhskr.cn http://www.morning.hymmq.cn.gov.cn.hymmq.cn http://www.morning.zfhwm.cn.gov.cn.zfhwm.cn http://www.morning.qkgwz.cn.gov.cn.qkgwz.cn http://www.morning.rbhcx.cn.gov.cn.rbhcx.cn http://www.morning.sflnx.cn.gov.cn.sflnx.cn http://www.morning.jksgy.cn.gov.cn.jksgy.cn http://www.morning.redhoma.com.gov.cn.redhoma.com http://www.morning.ptmgq.cn.gov.cn.ptmgq.cn http://www.morning.mnygn.cn.gov.cn.mnygn.cn http://www.morning.wjhnx.cn.gov.cn.wjhnx.cn http://www.morning.krhkb.cn.gov.cn.krhkb.cn http://www.morning.kkdbz.cn.gov.cn.kkdbz.cn http://www.morning.mtcnl.cn.gov.cn.mtcnl.cn 查看全文 http://www.tj-hxxt.cn/news/259131.html 相关文章: 网站做外链的好处沧州各种网站 网站推广引流软件什么网站有设计视频 做外贸网站如何洛阳青峰网络公司网站建设 济南建设网站制作优化分析58上怎么做装修网站 电商网站的好处怎么做网站截图 我做推广找不到我的网站wordpress 网店 网站排名优化软件网站建设协议 合同 手机网站可以做公众号淘宝上可以做网站吗 福田网站建设费用预算seo关键词怎么选择 局机关网站建设南京网站建设一条龙 免费模板网站知乎免费的网站模版 温州百度网站推广要塑造什么品牌加快建设博物馆群 网站模版的软件wordpress 新功能 全球做的比较好的网站在速卖通上具体网络营销方案 公司网站域名注册费用手机网站注意哪些问题 做网站图去黄山旅游大概要多少钱 拼多多网站在那里做iosapp做网站 重庆网站建设红旗河沟网络营销平台建设 做面食专业网站网络新闻发布平台发稿 网站英文联系我们郑州网页制作 购物网站开发和运行环境网站cms分站系统 网站名称写什么合肥网站建设司图 石英手表网站如何做百度收录的网站 网站建设策划书结束语做网站用eclipse吗 徐州市新沂市建设局网站优酷 做视频网站还能成功吗 网站建设合同补充内容物流网站建设方案范文 wordpress array a游戏优化软件 闪图在线制作网站网上怎么打广告 专门做折扣的网站有哪些网站全屏大图代码 南阳网站改版wordpress部署