什么是变量
这里是一个应用变量的例子:
var happiness = "a banana split"; alert("The monkeys think happiness is " + happiness);
这行代码声明一个叫做happiness的变量,然后在一个alert对话框中调用这个变量。如果你看过别人的JavaScript,你可能会注意到他们在声明变量时使用了var,这种用法可能会造成问题。首先,可能会造成有些版本的 MSIE瘫痪,或运行不正常。这种情况在Mac机上的MSIE最有可能发生。其次,如果你编写很复杂的JavaScripts,你必须编写你自己的函数,所以你必须了解变量的含义。
正如上次的JavaScript 教程: 第四天中所述,函数是被调用后执行某特定功能的JavaScript 程序代码。最好的函数具有模块化的特性,你可以控制输入的变量以及输出的结果。而且一旦编好之后你就无需担心它会出问题,而且不会和别的函数发生冲突。要使编写地函数具备这些稳定的特性,你必须确保不要轻易改变那些作为参数传递给其他函数的变量. 下面对例子显示了如果你不注意这些细节会造成什么后果。假设我们编写一个程序将华氏温度转换为摄氏温度。点击华氏/摄氏来观察一下我所指的意思。如果你转换转换华氏50度,则会出现一条信息:“华氏50度相当于摄氏10度。”以下是代码:
function fahrenToCelsius(fare) { temp = (faren - 32) * 5/9; return temp; } function convertTemp() { temp = prompt("what temperature fahrenheit? ","50"); celsius = fahrenToCelsius(temp); alert(temp + " degrees Fahrenheit is " + celsius + " degrees Celsius."); }
这个程序很简单。一个叫做convertTemp()得函数调用另外一个叫做fahrenToCelsius()并返回结果。如果你对本程序不是很懂,你需要重新学习以下上次的javasript教程第4日。
关于这个例子让人困惑之处在两个函数中都有一个叫做temp得变量,在convertTemp()函数中它的作用 是储存华氏温度Fahrenheit值 (由用户提供)。在fahrenToCelsius()函数中,它用于计算转换后灯摄氏温度值Celsius。这个不仅让我们感到困惑而且也会让这个Javascript程序感到困惑。如果你试图用变量运行这段代码就会发生下面的结果:如果你希望转换华氏50度,则会显示下面的信息:"10 degrees Fahrenheit is 10degrees Celsius."(华氏10度相当于摄氏10度)。为什么你输入的是华氏50度,而程序却将其理解为你输入了10度呢?我们来研究一下这个程序的执行过程。当我们调用函数convertTemp()并在提示栏中输入了"50"时,我们得到temp = 50;然后"temp"被传递给函数farenToCelsius()。在farenToCelsius()中,参数faren被设定为50,而"temp" 被设定为(50 - 32) x 5/9, 其结果是10。在返回结果之前,各项参数值是:
faren = 50 temp = 10
现在farenToCelsius()将10返回给变量celsius:
temp = 10 celsius = 10
现在我们得到一个错误的语句: "10 degrees Fahrenheit is 10degrees Celsius"。如果你仔细一些,不要将两个函数中等变量起同样的名称就可以避免这些问题。但这也不是最佳解决方案。当你不断加入更多的函数时,很难确保你不会将函数中的变量重名。而且如果你重复使用许多变量名例如loop,index,count, 和the_name时,使用不同的名称实在是一个很令人头疼的事。
最好的解决办法是让JavaScript明白在fahrenToCelsius()函数中用到达变量temp和在convertTemp() 函数中用到的变量temp是两码事。如果每个函数都有只应用于本函数内部的变量temp你就无需担心不同函数中的同名变量搅成一团。而var就是用于这个目的。
一、推荐使用迅雷或快车等多线程下载软件下载本站资源。
二、未登录会员无法下载,登录后可获得更多便利功能,若未注册,请先注册。
三、如果服务器暂不能下载请稍后重试!总是不能下载,请点我报错 ,谢谢合作!
四、本站大部分资源是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站将不对任何资源负法律责任.如果您发现本站有部分资源侵害了您的权益,请速与我们联系,我们将尽快处理.
五、如有其他问题,请加网站设计交流群(点击这里查看交流群 )进行交流。
六、如需转载本站资源,请注明转载来自并附带链接
七、本站部分资源为加密压缩文件,统一解压密码为:www.aizhanzhe.com
- 1尚硅谷前端学科全套视频[AVI][130.72GB]
- 2深入理解php:高级技巧、面向对象与核心技术(原书第3版) 【PDF】
- 3开发高质量PHP框架与应用的实际案例解析【PDF】
- 4响应式Web图形设计 ([美]Christopher Schmitt) 中文【PDF】
- 5响应式Web设计:HTML5和CSS3实践指南【PDF】
- 6响应式Web设计:HTML5和CSS3实战 第2版 (本·弗莱恩) 中文【PDF】
- 7Axure RP8 实战手册 网站和APP原型制作案例精粹(小楼一夜听春语) 试读版【PDF】【15.4MB】
- 8[马上学Android]安卓开发视频教程
- 9Android开发视频教程
- 10PHP100视频教程
- 1Java编程思想On Java 8[PDF][中文][英文][源码][15.31MB]
- 2PostgreSQL实战 (谭峰等著)【PDF】【221.29MB】
- 3【机器学习】菜菜的sklearn课堂(1-12全课)[PDF][源码][157.45MB]
- 4UNREAL ENGINE 4蓝图完全学习教程[PDF][66.67MB]
- 5加密与解密(第4版)[PDF][光盘源码][1.15GB]
- 6Qt 5.9 C++开发指南[PDF][276.26MB]
- 7Python数据分析与应用PPT、教案、实训数据、习题答案[PPT][142.49MB]
- 8数据中台:让数据用起来[PDF][12.80MB]
- 9计算机网络:自顶向下方法(第7版) 【PDF】【英文】【17.46MB】
- 10大话5G:走进万物互联新时代【PDF】【37.31MB】