js中全局变量与局部变量实例、闭包
来源:互联网 发布:吴梅村 红楼梦 知乎 编辑:程序博客网 时间:2024/05/21 17:03
局部变量与全局变量实例,需要自己复制,再在浏览器实验,体验总结。说多可能记不住,自己实际操作了记忆深刻。
下面给出实验例子:
<!doctype html><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>测试页面</title> <script type="text/javascript" src="jquery.js"></script> </head> <body><input type="button" value="click me" onclick="q();d();q();" /> <script>//var t="tt";$(document).ready(function(){q();console.log("3:"+t);////var t="t0";//console.log("1:"+t);d();console.log("2:"+t);q();console.log("3:"+t);})$().ready(function(){})$(function(){})function a(){t="a";console.log("a()的t:"+t);}function s(){t="s";console.log("s()的t:"+t);}function d(){t="d";a();console.log("d()的t:"+t);}function q(){var t="q";s();console.log("q()的t:"+t);}</script> </body></html>
结果:
(1)当注释掉全局变量定义的var t="tt";
(后半部分是由点击“click me”按钮显示的)
(2)当取消注释var t="tt";进行全局变量定义时:
(后半部分是由点击“click me”按钮显示的)
(3)在(2)的基础上再打开$(document).ready(function(){}中的var a="t0";注释:
分析总结:
1.全局变量定义定义在script标签内,所有方法外,一般习惯定义在<script>内第一行,所有方法共享这一变量,都可以改变这一变量。如上例中的var t="tt";
2.局部变量定义在方法实体内,如q()中的var t="q"; ,只对q()方法内有效,形成闭包,连外调的s()方法都不能改变其值,并且全局变量定义var t="tt";也不能改变其值,此时的s()改变的是全局变量的值而不是q()的局部变量值,q()改变的是内部的局部变量的值,不改变全局变量的值。
3.当var t定义在$(document).ready(function(){}中,即加载页面就定义了,和局部变量一样,外调的方法只改变全局里的值,不改变局部变量值;(3)的结果和在(3)的基础上再注掉全局变量定义的var t="tt";的结果一样。
4.所以对比得出,全局变量即全局变量定义在script标签内其他所有方法外,建议定义在script标签的下一行(开头)
5.局部变量定义在方法体类,外调方法不会影响其值,形成闭包。
阅读全文
0 0
- js中全局变量与局部变量实例、闭包
- js中 局部变量、全局变量、闭包
- js变量:局部变量、全局变量、闭包
- js变量:全局变量、局部变量、闭包
- js-局部变量+全局变量+闭包
- JS局部变量、全局变量、闭包
- js全局变量和局部变量,闭包
- 清楚js的变量基础:局部变量、全局变量、闭包
- js 全局变量与局部变量
- js全局变量与局部变量
- js全局变量与局部变量
- js---局部变量和全局变量(3)---实例
- js中全局变量与局部变量小案例
- javascript中的局部变量、全局变量与闭包
- 全局变量与局部变量的初始化实例
- Js全局变量与局部变量_this关键字
- JS的全局变量与局部变量
- js的全局变量与局部变量
- shell入门--第一个shell脚本
- 博文阅读:WILDML-----在深度学习与自然语言处理领域的Attention和Memory(2016年1月3日)
- gitbash https git credentials 小乌龟 TortoiseGit 配置备忘
- javascript的作用域。
- ZOJ
- js中全局变量与局部变量实例、闭包
- 我们过日子吧
- CentOS 7.X 安装 node.js和 cnmp vue
- tf. np. 两类函数的坑。。。
- 滚动条
- linux shell脚本中cd命令无效的解决方法
- 【Android基础】setTextColor(),setBackgroundColor的参数设置方式
- spring定时任务详解(@Scheduled注解)
- 深入理解C/C++数组和指针