虽然作家都是认识字的,但从认识字和成为作家还很远。同样道理,对学习编程
来说语法不是最重要的。所以本节课快速学习基本常用语法,不常用的可以等到用时再查
不迟。
变量,前面讲过,对应的是电脑里的一块存储空间。电脑里存的当然都是0和1,但程序使
用的些0和1的时候,是有不同的解读的。一般来说,存储数据以字节(byte)为最基本单位
,由8位,也就是8个0或1组成,可以组合出0-255的值。两个字节组成一个“字”(WORD)
,可以组合出0-65535的值。例如,ascii字符(0-9、a-z、A-Z、空格和一些符号)存的是
字符编码,占用一个字节,例如空格是20;汉字存的汉字编码,占一个字也就是两个字节
。如果一个变量,存进去一个字母,却把它当数字用,就会乱套的,所以变量必须区分不
同类型。
从原则上讲,变量必须有类型。在比较严肃的编程语言中,例如java,基本类型
主要有:
字符、整数、浮点数、布尔等类型,并且绝对不能混着用。但是啊但是,javascript比较
特殊,他就像一个拍马屁的部下,揣摩程序员您的意思,然后用“var”这样一个万能变
量类型来随时变换,同一个变量一会是3+2的结果,一会又是一首唐诗。有这样一个拍马
屁的,程序写起来会比较省事,对于初学者也会带来一定便利,但这也容易隐藏错误(就
像爱听马屁的领导容易犯错误一样),决定了javascript不能派太大的用场。做为入门者
,一定要记住这不是严肃的语法。要时刻记住,变量是有类型的,只是在javascript里可
以自动转换来转换去。例如:
var LeaderSay = 3;
这里定义了一个名为LeaderSay(领导讲话)的变量,赋值为 3,javascript揣摩圣意,
现在LeaderSay实际上是当整数类型用。
接下来,
LeaderSay = LeaderSay + “三年过去了…”;//领导有点大舌头
这时LeaderSay变量及时变身成了字符串类型。
这种类型转换,经常不能和程序员大爷的本意相符,有时需要点拨一下,后面会说明。对
于初学者来说,最好让每个变量的类型从一而终,不要使用自动转换,以免莫名其妙的出
现3+5=35这样的事情,反正对于初学者来说,只要掌握3种基本类型即可。
基本类型:
1, 数字型,javascript不分整数小数什么的,反正都是加减乘除那一套,在我们的
教学中,尽量全部使用整数,例如钱不要以元为单位而是以分为单位,这样减少点复杂度
,有利于快速入门。
2, 字符串,由0个、1个或多个字符组成。
3, 布尔型,只有true和false两个值,代表真假两种逻辑判断。
首先要对变量进行声明,然后才能使用:
var dutytoday ; //此变量保存今天的值日生是谁
程序运行到这句,就会给这个变量开出一块存储空间,就像班里实行值日生制度,就准备
一块小黑板写当天值日生是谁。
变量只能在声明时的程序块内使用,就像毕业了,这块黑板就被废弃,随时可能被派其他
用场。在这一程序块内,声明一次即可,其他变量不可与之重名。
不同程序块内的变量可以重名,就像别的班的值日生与本班的值日生毫不相干。
如果需要在不同程序块中使用同一变量,例如下面代码,获得密码和用密码开门在两个程
序块内:
{
Var MiMa = “123” ; //告诉我密码
}
……
{
OpenDoor(Mima);//开门
}
这样写的话,在开门的时候密码早已丢失。正确的方法是,在上级程序块中声明变量:
Var MiMa;
{
MiMa = “123” ; //告诉我密码
}
……
{
OpenDoor(Mima);//开门
}
给变量赋值,相当于在小黑板上写内容,语法如下:
变量名 = 表达式;
“表达式”的含义和数学中一样,由其他变量、固定值和运算符等组成。例如:
A=1;b=a+2;
数字型变量,主要运算符有我们熟悉的加(+)减(-)乘(*)除(/) ,此外比较常用的还有求
余(%)等等。和数学一样,运算符有先后顺序的规则,例如我们比较熟悉的先乘除后加减
,此外还有一些不常用的规则,也不必全都背诵下来,反正拿不准时就多加括号即可:
Xxx =((a+b)/(c+d))%col;
字符串型变量的值常常需要用引号括起来表示,例如:
S1= “我的第一句话”;
如果这句话里本身有双引号,就用单引号括起来。
字符型变量可以做加法,例如:
SS = S1 + “我的第二句话”;
加的结果就是两个字符串前后拼接在一起。
数字型和字符串型变量都支持简化的语法:
XXX = XXX + 123 ;
可以简化为:
XXX += 123;
类似的还有-=,但只限于数字型;
数字型的简化语法还有:
XXX = XXX + 1;
可以简化为:
XXX ++;
类似的还有--。
布尔型表达式常常需要用数字型或字符串型变量,经过大于(>)、小于(<)、等于(==,注意
是两个等号),大于等于()=)、小于等于(<=)、不等于(!=)等运算而成。例如:
是否报名学习编程 = 好处 > 坏处 ;
除了数字,对于字符串,也可以使用大于、小于等运算符。字符串的比较大小,首先是长
的比短的大。一般来说实际使用字符串比较都是相同长度的,从第一个字符开始比较字符
编码值,如果没决出胜负,就转向第二个字符,依此类推。一般程序员都不会背诵字符编
码,你只要知道在字母或数字比较时”9”>”1” 、”A”<”Z” 、”a”<”z”即可。
也可直接赋值为真或假:
A = true; ;B = false;
布尔值之间还有一些运算符可用:与(&&)、或(||)、非(!)。这些运算符放在一起用,再
套上4层括号,足以把人搞晕。
变量的声明和赋值是两件事,但是可以写在一行里:
Var Visited = false;
这和写成两句是一样的:
var Visited; Visited = false;
作为良好的编程习惯,变量声明的同时应该尽量赋一个初始值。
在以后的编程和调试中,可能会与”null”打交道,这里简要介绍一下。做个类比,黑板
上应该写今天值日生的地方是空的,在编程中这叫空字符串,用””表示,而null的含义
是:连这块黑板都没有。例如,你问今天值日生是谁,如果人家已经取消值日生制度,你
就会收到一个回答叫null。
下面介绍一下基本的控制语句,废话少说,多举例子,可以运行一下试试。
//if/else的用法:
if(confirm("打打打打打打打打打打打打打劫,把钱给我!")){
alert("打劫原来这么容易啊");
}else if(window.confirm("兄弟这几天手头紧,借点钱花花,给你留一半总可以了吧?
")){
alert("看来连抢带骗比较好使");
}else if(window.confirm("大哥多少给点吧,我中午饭都没钱吃呢")){
alert("乞讨这个职业很有前途啊");
}else{
alert("实在不给,我也没办法了");
}
//for循环的用法
for(i=1;i<=3;i++){
if(confirm("别笑,我们这打劫呢")){
alert("这次算白来了");
continue;//直接进入下一轮
}
if(confirm("事不过三,我现在是第"+i+"次来抢了,把钱给我!")){
alert("打劫成功,不用往下数了");
break;//退出循环
}
alert("这次还是没成功");
}
//while循环的用法
var XinXin = 100;//一开始信心满满
while(XinXin > 0){
if(!confirm("我以"+ XinXin +"分的信心前来打打打打打劫!")){
alert("人家不给钱,信心减两成");
XinXin -= 20;
}
if(confirm("别笑,我们这打劫呢")){
alert("被笑话了,信心减一成");
XinXin -= 10;
}
alert("还剩"+ XinXin +"分信心");
}
//do…while循环的用法,注意与while的区别
var XinXin = 0;//一开始就没信心
do{
alert("不管有没有信心,我至少得抢一次");
} while(XinXin > 0)
//switch的比较常用的用法,每一个case都带break,可以试试删去break会怎么样
var today = "星期日";
switch(today){
case "星期一":
alert("周一幼儿园放假,适合抢劫小孩");
break;
case "星期二":
alert("周二有早市,适合抢劫老人");
break;
case "星期三":
alert("周三有义诊,适合抢劫残疾人");
break;
default: //除了以上情况,都按下面执行
alert("今天无人可抢");
}
练习题:
来点有难度的吧,判断一个1000以内自然数是否质数。可以用比较笨的办法,因
为我们这节的内容是基本语法,只要能练习运用这些语法就可以了。
把以下内容保存到一个htm文件:
<html>
<input type="text" id="thenumber">
<input type="button" value="判断是否质数" onclick="checkit()" >
<script language=javascript>
function checkit(){
var aaa = parseInt(document.getElementById("thenumber").value);
if(isNaN(aaa)){
alert("请填入一个1000以下自然数");
return;
}
if(aaa > 1000){
alert("请填入一个1000以下自然数");
return;
}
//从这里开始写一段代码,判断aaa是否质数
}
</script>
</html>
看不懂的部分可以先不理会,在指定位置写上判断aaa是否质数的内容即可。
如果感觉有困难,可以向下翻页,参考一下我的代码注释。
//用一个布尔型变量代表aaa是否质数,先假设是质数
//从2开始,一直到aaa-1,
//如果被aaa除完余数是0,
//那就不是质数
//就不需要继续循环了
--
FROM 114.251.89.*