博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第四章—变量,作用域和内存问题(二)
阅读量:4562 次
发布时间:2019-06-08

本文共 558 字,大约阅读时间需要 1 分钟。

JS没有块级作用域

    js没有块级作用域,这个概念容易导致误解,这里就区分下几个情况,大家好好参考下:

我们知道,在其他类C的语言中,由花挂号封闭的代码块都有自己的作用域。但是在JS中,却没有块级作用域:

这里if(true){}代表条件永真,永远执行这条。if(false){}的话就是永远不执行这条。

这个代码执行之后,在if语句定义的变量,在if语句外可以访问的到。在if语句中的变量声明会将变量添加到当前的执行环境中(这里是全局环境)。

还有如下的两个例子:

这里输出:

这里输出:

 

对于for语句而言,也要注意,由其创建的变量i即使在for循环语句结束后,也依旧会存在于循环外部的环境中。

怎么样实现块级作用域,实现js的块级作用域呢?那就是匿名函数。在匿名函数中定义的任何变量都会在执行结束后销毁,这样就很类似其他语言中的for循环中的i在执行循环后销毁i。此处的匿名函数是要自执行的,也就是(function(){......})()这种形式,两个()(),前一个放函数体,后一个代表‘执行’的意思,就像普通的函数调用,当然了也可以放参数如:(函数体)(参数)。用匿名函数模仿块级作用域的代码如下:

 

转载于:https://www.cnblogs.com/xuzhudong/p/6500841.html

你可能感兴趣的文章
【2019-09-13】耐心观察是一种技能
查看>>
mysql数据库2-常用命令
查看>>
安卓开发环境搭建(转)
查看>>
Harris角点检测
查看>>
Struts2的处理流程及为Action的属性注入值
查看>>
设计中最常用的CSS选择器
查看>>
Maven项目打包成可执行Jar文件
查看>>
nginx http proxy 正向代理
查看>>
对BFC的总结
查看>>
23醒
查看>>
Google Hack的一些整理
查看>>
[贪心] JZOJ P3757 随机生成器
查看>>
Codeforces Round #370 (Div. 2)(简单逻辑,比较水)
查看>>
操作系统进程调度算法
查看>>
less与sass的区别点
查看>>
event.keycode值大全
查看>>
array and ram
查看>>
工作笔记——禁用浏览器的返回按钮
查看>>
免费获得盛大网盘EverBox125G容量方法
查看>>
如何用spidermonkey在python里调用javascript代码
查看>>