这个系列教程从“零”开始,一方面是表明针对一点基础没有的同学,另一方面
是因为在java、C++等编程语言中,数数是从0开始的,这个在以后的教程中详细介绍。在
日常生活中,也有数数从零开始的,例如英国的电梯把咱们所说的一层叫地面(Ground),
咱们的二楼他叫一层。还有放火箭的时候是倒着数的,最后要数到零。从零开始数有一定
的合理性,例如从1层到3层和从3层到6层距离是不一样的,从零开始数就没这个问题。
通俗的说,编写程序,就是给计算机下任务,让他干这干那。现在用的都是高级
语言,需要“翻译”成机器代码。程序员辛苦写下的一行行东西,叫做“源代码”,翻译
之后的叫做“目标代码”,这个“翻译”术语叫“编译”或“解释”,“编译”相当于文
件翻译,“解释”相当于同声传译。机器代码都是天书,基本没法看懂的,目前除了特殊
场合,很少有直接写机器码的了,我记得我年轻时曾改过挖金子游戏的目标代码,把
20000分奖励一辆战车改为200分一辆。
就像世界上存在英语、法语、西班牙语等等一样,编程语言也有C++、JAVA、
BASIC等多种语言。在不同的编程环境中编程,相当于面对不同语言的翻译,要见人说人
话、见鬼说鬼话(我说的有点像废话)。需要特别说明的是,Javascript和JAVA不是一回事
,后者要复杂的多,前者主要用在网页上一些动态内容的处理,比较简单,适合入门学习
,和HTML配合很容易做出各种眼花缭乱的效果,有趣味性。Javascript的语法和JAVA高度
相似,学会Javascript再学JAVA可以省去很多需要学习的内容,可以更快的为社会主义建
设添砖JAVA。
下面是一个极简单的例子,把以下内容保存到一个htm后缀的文件,然后用IE浏
览器打开这个文件,就可以运行这些代码了。用浏览器运行本地文件,往往会被安全机制
怀疑为黑客在干活,所以需要人工干预一下,让其放行。如果需要再次运行,按F5刷新即
可。
<html>
<script language=javascript>
var a = 1 ;
var b = 2 ;
var c = a + b ;
if(c == 3){ //注意这里是两个等号
alert("计算结果正确:1+2=" + c );
}else{
//其实永远不会运行到这一句
alert("计算结果错误:1+2不=" + c );
}
</script>
</html>
Javascript是嵌入网页里的,最前面和最后面的html标签表示这是一个网页文件,其中嵌
入的Javascript内容用script标签与网页内容隔离开来。可以嵌入多处,与全放在一处是
一样的。script标签包裹的内容,就是程序源代码。
源代码最基本单位是行,分实体代码和控制代码两种。缺省情况下,程序从上到下一行一
行的顺序运行,控制代码可以影响运行的走向,形成程序分支。这个例子中,同学们猜也
能猜到,是计算1+2的结果,然后判断是否正确。
实体代码都以分号“;”结尾(我刚学java时每写一页至少有7、8行忘写分号)。实际上
,浏览器这个“翻译”只认分号,不认换行符。你可以把简单的几行写在一行上:
A=1; b=2; alert(a+b);
也可以把复杂的行分成几行来写,只要在最后才加分号即可:
WaiXingRenDiZhi = xxname + “星系” + hxname + “恒星系” + planetnumber + “
号行星”
+ conginent + “洲” + state + “国” + sheng + “省” + city + “市”
+ district + “区”
+ street +”街” + detail ;
控制代码管理的对象是“程序块”,以大括号“{}”括起来的一组代码,可以有
很多行,里面也可以包括下级控制代码。在本例中,如果计算正确,就执行 alert("计算
结果正确:1+2=" + c ); 这一程序块,否则就执行另一块。格式上,一般一个程序块应
采用“缩进式”格式以区别于上级块,就像本例中一样,以利一目了然。不用缩进式格式
对程序运行没有影响,但可能对你的奖金有影响,也会影响你在其他程序员中的形象。
在相声《小算算奇遇记》中提到:电子“算计”机区别于计算器的根本特征是,
1可以存储数据,2可以逻辑判断,本例中就体现了这两点。
本例中可以看到控制语句if的效果,控制语句还有for、while、switch等以后会一一介绍
。在BASIC等语言中,有if … goto … 这样的语法,就是判断如果条件成立,下一拍就
转向某一语句处开始执行,否则就顺序执行下一句。事实上,所有的控制语句在“翻译”
成机器码之后,都是表现为if … goto …这样的形式。但是在高级语言中,动辄数千行
的源代码中用goto来天马行空,万一写错了就摊上大事了,所以一般只在很特殊的场合才
使用。本教程本来想让同学们来个忆苦思甜,尝试一下if … goto …的玩法,但是很遗
憾javascript的字典里已经没有这种玩法了。
“变量”实际对应着程序运行时的一块存储空间(当然肉眼一般是看不到的),里边的数据
是可以随程序运行而变化的,就像黑板上写着:今天的值日生是:张三,这个数值明天就
改写为李四了。本例中的a、b、c都是变量,具体如何使用变量将在后续教程中介绍。
编写程序时,总是会遇到“起名字”的问题,除了变量需要起名,还有函数等很
多元素都需要起名。变量名的作用域是程序块,也就是只在本块内起作用,不同的块中的
变量可以重名,不会互相影响。一般来说,小范围使用的名字可以起的短一些,大范围使
用的名字要长一些并且好记,一看就知道这是哪一个做什么用的,一般就是用英语、拼音
、缩写等组合起来,大小写错落。就像在驾校里,每8人一辆车,本车人员可以互相称呼
“老大”、“老七”之类,大喇叭广播就必须是“请京B6188车的老七到传达室有人找”
。另外,系统有一些保留字要躲着走,起名不能与之冲突,假设有一个同学姓高,叫“高
三”,开大会时说“请高三同学到台上来”,结果一个年级的同学都来了。
程序运行中,一个变量当前是什么值,肉眼是看不到的,在javascript中可以用
alert语句输出。事实上,程序运行到哪一行了也是看不到的,往往需要用alert输出一个
标志,以便知道程序运行到这里了。在复杂程序的调试中,经常需要加alert语句,偶尔
也会在大功告成之后忘掉删除某一个alert语句。
程序往往是很复杂的,有时候你打开去年写的程序,发现已经看不懂了,更不要
提其他人看你的程序就更难看懂了,所以需要在程序代码中加入“注释”。本例中,“//
其实永远不会运行到这一句 ”就是注释,以双斜杠开头。浏览器在解释代码时会把一行
中双斜杠后面的内容当作注释忽略掉。注释除了可以对代码进行说明,还有一种功能,就
是临时让某行代码不要运行。当然,不让某行运行可以删除掉这行,可是之后再重新写一
遍岂不是很麻烦,所以先在这行前面加上双斜杠,当需要这行运行时只要删除双斜杠即可
。如果需要把较长的一段代码注释掉,可以用/* 和*/ 包裹起来即可。在实际的软件工程
中,往往充斥着被程序员注释掉却不舍得删除的代码(很像中国人家里的阳台),有时能
占四分之一。
代码有错误时,有时IE浏览器会在左下角显示一个黄色三角标志,双击这个标志
就会显示在第几行第几个字符处出错,供查找错误时参考。如果不显示,可以检查一下IE
设置:“显示每个脚本错误的通知”。
在学习和练习编程中,“照猫画虎”是一个经常用的策略。看看人家怎么写的,
自己就会了。由于javascript是用网站下载到本机执行的,因而如果你想看一个网站上的
网页功能是如何实现的,只要在网页上按:右键-查看源文件。所以你如果参加网站开发
的话,要知道javascript的内容是公开的,有的浏览器版本连注释都能被用户看到,在元
素起名和注释中不要夹带不雅词句。如果你写了一行注释:
//这个功能这么难用完全是因为赵处长非要要求做成这样
那么是有可能被用户看到的。
最后介绍一下快捷键。对于经常使用达到熟练程度的操作,一般来说键盘比鼠标
更快。编写程序的主要工作是编辑源代码,建议使用UltraEdit来做这件事情。UltraEdit
比较常用的快捷键如下:
查找:Ctrl+f
查找下一个:F3
多行涂黑:Alt + 上下箭头
复制:Ctrl + c
剪切:Ctrl + x
粘贴:Ctrl + v
回退:Ctrl + z
全文替换:Ctrl + r ,其中可用^p代替换行符
保存:Ctrl + s
另外,在查看一栏中选中“显示行号”可以在有人告诉你第xx行出错时很快找到这一行。
除UltraEdit外,其他常用快捷键:
切换Windows窗口,例如从UltraEdit切换到浏览器:Alt + Tab
浏览器刷新:F5
练习题:
1, 将“计算结果正确”这一行注释掉,看看程序运行会有什么变化。
2, 修改程序,让 “计算结果错误”这一行得到运行。
3, 修改程序,让程序运行出错(可以找一只猫来干这活),查看浏览器给出的报错
信息。
4, 将变量c 改名,改为一看便知这是计算结果。
5, 在程序的末尾加上一个alert语句,看看变量a的值是多少。
6, 打开任意一个互联网上的网页,用“右键-查看源文件”看看别人写的代码是什
么样的。
7, 尝试使用本篇介绍的常用快捷键。
--
FROM 114.251.89.*