| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付买域名,送MP3、MP4
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY买空间,免费送域名(厦门中资源)
共有 473 人关注过本帖
标题:这个javascript脚本是怎么样实现循环的?
收藏  订阅  推荐  打印 
yms123
Rank: 12Rank: 12Rank: 12
等级:版主
威望:72
帖子:8032
积分:81926
注册:2004-7-17

<script type="text/javascript">
var cc=0;
function TestFunction1()
{
   alert(cc);
}
function TestFunction2()
{
   var cc=1;
   alert(cc);
}
TestFunction1();
TestFunction2();
</script>
楼主运行上面的代码考虑cc的变量输出为什么不同

http://www.lxzhcn.net
临时域名:http://yms126.1.suhai.com.cn/
版块版主招募中
网站论坛发帖无问题,欢迎发帖。
2008-8-18 21:25
yangzeng
Rank: 3Rank: 3
等级:中级会员
威望:1
帖子:265
积分:2998
注册:2008-4-23

TestFunction1();利用了全局变量的初值,是零,所以弹出提示框内容为0
TestFunction2()这个过程是里面又把cc定义了一个新值局部变量值,所以输出是1
2008-8-18 22:11
yangzeng
Rank: 3Rank: 3
等级:中级会员
威望:1
帖子:265
积分:2998
注册:2008-4-23

跟那个代码有什么联系吗?关键是,不理解的是:那个if判断语句为什么一点击后,cc=1,就等于1了,等于1后就执行它后面的语句了!问题是为什么等于1,他的全局变量的值是0
2008-8-18 22:15
yms123
Rank: 12Rank: 12Rank: 12
等级:版主
威望:72
帖子:8032
积分:81926
注册:2004-7-17

yangzeng 在 2008-8-18 22:15 的发言:

跟那个代码有什么联系吗?关键是,不理解的是:那个if判断语句为什么一点击后,cc=1,就等于1了,等于1后就执行它后面的语句了!问题是为什么等于1,他的全局变量的值是0
cc=0的确是初始化了
但是要注意的是初始化。
楼主并没有完全理解javascript的执行原理和过程
cc=0只是在开始的时候初始化了
当点击按钮后调用的只是那个函数,这时cc=0的这段代码并不属于这个函数,计算机会严格的只执行这个函数内的代码,再点击按钮同样如此。而且我想每本javascript的教材里都会明确的说明按钮点击后会执行按钮点击时所关联的函数。
并没有说会执行整个脚本,如果楼主看的教材里说过执行整个脚本,那我只想说楼主肯定买到了劣质教材。

http://www.lxzhcn.net
临时域名:http://yms126.1.suhai.com.cn/
版块版主招募中
网站论坛发帖无问题,欢迎发帖。
2008-8-18 23:06
anlige
Rank: 3Rank: 3
等级:中级会员
威望:2
帖子:221
积分:2412
注册:2006-11-3

cc是一个全局变量~这个变量代表灯的当前状态,通过cc与0和1比较来确认当前状态,从而改变状态为相反状态..................

http://www.ii-home.cn/
zhanghuiguoanlige@126.com
2008-8-19 01:13
yangzeng
Rank: 3Rank: 3
等级:中级会员
威望:1
帖子:265
积分:2998
注册:2008-4-23

那就先谢谢了!还有点模糊!
2008-8-19 08:43
yms123
Rank: 12Rank: 12Rank: 12
等级:版主
威望:72
帖子:8032
积分:81926
注册:2004-7-17

客户端与服务器端的执行原理是不同的,在ASP里服务器端的页面级全局变量是每次都会被初始化的,原因在于服务器端不会保留页面级的数据,当一个页面执行完毕就会清空所有数据。
而客户端不同在于客户端运行在浏览器上,浏览器在加载程序脚本后会一直执行,而且只加载一次浏览器脚本(除非刷新网页会从新加载脚本)。因此浏览器只有在当前页面被刷新和关闭时初始化或清空页面数据,所以在浏览器端的全局变量只在网页打开加载时初始化一次,而网页没有被关闭前这个变量一直有效,但不会再次被初始化(除非程序员人为的去初始化)。
因此楼主的同样一段程序运行在浏览器上这么写就是正确的,但放到服务器端cc无论怎么点击都是0,就是我说的那个原理。

http://www.lxzhcn.net
临时域名:http://yms126.1.suhai.com.cn/
版块版主招募中
网站论坛发帖无问题,欢迎发帖。
2008-8-19 10:27
yangzeng
Rank: 3Rank: 3
等级:中级会员
威望:1
帖子:265
积分:2998
注册:2008-4-23

谢谢版主!非常感谢,我明白了,这样的原理还真不少!请问版主是从哪里学到这方面的原理的,肯定有许多编网站是,存在很多这方面的原理,对于那些从事潜意识的编程人(也就是普通的编程人),我估计都不了解各个方面的原理!囊告诉我哪里能学到吗
2008-8-19 11:10
yangzeng
Rank: 3Rank: 3
等级:中级会员
威望:1
帖子:265
积分:2998
注册:2008-4-23

看来,开关这个代码东西,引出来的知识可真不少
2008-8-19 11:10
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.073346 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved