JavaScript脚本特效编程给力起飞
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 JavaScript基础语法

1. 注释

JavaScript的代码语句由一行中的一个或多个项和符号组成。分号是JavaScript的终止字符,大括号括起来的一组JavaScript语句称为一个语句块。单行的JavaScript注释用“//”开始或者以“<!--”开始、“-->”结束。多行注释以“/*”开始、以“*/”结束。例如:

alert("这是第一个JavaScript例子!");  //弹出一个对话框,并显示“这是第一个JavaScript例子!”
<Script Language ="JavaScript">  /*弹出对话框,分别显示alert后()里的内容*/
alert("这是第一个JavaScript例子!");
alert("欢迎你进入JavaScript世界!");
alert("今后将共同学习JavaScript知识!");
</Script>

显示的效果如图2-1所示。

图2-1 欢迎示例

2. 数据类型

JavaScript有六种数据类型,主要的类型有number、string、object以及Boolean,其他两种类型为null和undefined。下面是一些简单的例子:

var str = "Hello, world";//字符串
  var i = 10;//整型数
  var f = 2.3;//浮点数
  var b = true;//布尔值

还有一种类型是对象类型,对象类型是一种复合的数据类型,其基本元素由基本数据类型组成,当然不限于基本类型,比如对象类型中的值可以是其他的对象类型实例。

3. 常量

在程序运行过程中,其值不能被改变的量称为常量。常量可根据不同类型分为整型常量、实型常量、字符型常量等。

整型常量由整数表示,如123、-2000,也可以使用十六进制、八进制表示其值。实型常量是由整数部分加小数部分表示的,如123.45。

4. 变量

在JavaScript中,变量用来存放运行中的值。在使用变量之前,先使用var语句进行声明。

下面是变量声明的代码示例:

var F = true;               // F中存储的值为Boolean类型。

JavaScript是一种区分大小写的语言,因此将一个变量命名为Name和将其命名为name是不一样的。另外,变量的名称长度可以是任意,但必须遵循以下规则:

第一个字符必须是一个字母(大小写均可)、一个下画线(_)或一个美元符号($)。

后续的字符可以是字母、数字、下画线或美元符号。

变量名称不能是保留字。

5. 运算符

JavaScript运算符包括算术、逻辑、位以及赋值运算符。

算术运算符:-(负值)、++(递增)、--(递减)、*(乘法)、/(除法)、%(取模运算)、+(加法)、-(减法)。

逻辑运算符:!(逻辑非)、<(小于)、>(大于)、<=(小于等于)、>=(大于等于)、==(等于)、!= (不等于)、&&(逻辑与)、||(逻辑或)、?: (条件“三元运算符”)、,(逗号)、===(恒等)、!==(不恒等)。

位运算符:~(按位取反)、<<(按位左移)、>>(按位右移)、>>>(无符号右移)、&(按位与)、^ (按位异或)、|(按位或)。

6. 程序流程控制

程序经常在不同的情况下完成不同的事情,JavaScript也为各种可行性提供了解决方案,包括条件语句、多分支语句、循环语句。

if条件选择语句

if(条件语句)
{
        执行语句
}

例2-1

<script language="javascript">
var x=2
if(x<3 && x>0 && x!=1)
{
alert("对");
}
</script>

效果如图2-2所示。

图2-2 条件语句

例2-2

格式1:变量 = 布尔表达式?语句1:语句2;

<script language="javascript">
var x=3
{
    x=x>5?'答对了,真聪明!':'答错了,你真笨!';
    alert(x);
}
</script>

效果如图2-3所示。

图2-3 布尔表达式

格式2:

if(条件语句)
{
  执行语句块1
}
else
{
  执行语句块2
}

例2-3

<script language="javascript">
        var x=2
        if(x<3 && x>0 && x!=1)
        {
        alert("对");
        }
        else
        {
        alert("错");
        }
</script>

效果如图2-2所示。

例2-4

<script language="javascript">
        var x                //体会一下"x"为空(或等于"0")和赋值后的区别
        if(x)
        {
        x=-x;
        alert(x);
        }
        else
        {
        alert("晕,空的!!")
        }
</script>

效果如图2-4所示。

图2-4 条件语句(否)

格式3:

if(条件语句)
{
  执行语句块1
}
else if(条件语句2)
{
  执行语句块2
}
...
else if(条件语句n)
{
  执行语句块n
}
else
{
  执行语句块n+1
}

例2-5

<script language="javascript">
        var x=5
        if(x>0 && x<10)
        {
            alert("x大于0并且x小于10");
        }
        else if(x<0 && x>-10)
        {
            alert("x小于0并且x大于-10");
        }
        else if(x<100 && x>10)
        {
            alert("x小于100并且x大于10");
        }
        else
        {
        alert("都不对");
        }
</script>

效果如图2-5所示。

图2-5 多条件语句

格式4:if语句的嵌套

例2-6

<script language="javascript">
        var x=0,y=5
        if(x<1)
        {
            if(y==1)
                  alert("x<1,y==1");
            else
                  alert("x<1,!=1");
        }
        else if(x>10)
        {
            if(y==1)
                  alert("x>10,y==1");
            else
                  alert("x>10,y!=1");
        }
</script>

效果如图2-6所示。

图2-6 条件语句嵌套

switch选择语句

switch(表达式)
{
case取值1:
      语句块1
    break;
...
case取值n:
      语句块n
    break;
default:
      语句块n+1
      break;
}

例2-7

<script language="javascript">
        var x=2
        switch(x)
        {
        case 1:
            alert("星期一");
            break;
        case 2:
            alert("星期二");
            break;
        case 3:
            alert("星期三");
            break;
        default:
            alert("不好意思,我不知道!");
        }
</script>

效果如图2-7所示。

图2-7 多分支语句(一)

例2-8

<script language="javascript">
        var x=5
        switch(x)
        {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            alert("工作日,不休息.");
            break;
        default:
            alert("休息日,太好了!");
        }
</script>

效果如图2-8所示。

图2-8 多分支语句(二)

while循环(判断)语句

while(条件表达式语句)
{
    执行语句块
}

例2-9

<script language="javascript">
        var x=1
        while(x < 3)  //这里不可加";",否则将作为整个while语句的从句部分,成为空语句死循环
        {
        alert("x=" + x);
        x++;
        }
</script>

效果如图2-9所示。

图2-9 while循环语句

do-while语句

do
{
执行语句块
}while(条件表达式语句)

例2-10

<script language="javascript">
        var y=5;
        do
        {
            alert("y=" + y); //虽然不成立,但还是要执行一次
            y++;
        }
        while(y<3) //上面执行完,然后再来检测对错
</script>

效果如图2-10所示。

图2-10 do-while循环语句

for循环语句

for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
    执行语句块
}

例2-11

<script language="javascript">
        var output = "";
        for(var x=1; x<10; x++)
        {
        output = output +" x=" + x; //等同于写法:output+="x="+x;
        }
        alert(output);
</script>

效果如图2-11所示。

图2-11 for循环语句

例2-12

<script language="javascript">
        var output = "";
        var x=1;
        for(; ; ) //这样就成为无限循环语句(等效于while(true)),需用下面的“break”跳出
        {
            if(x>=10)
            break;   //用于跳出上面的无限循环
            output+=" x="+x;
            x++;
        }
        alert(output);
</script>

效果如图2-11所示。

break与continue语句

break语句:

例2-13

st:while(true)
{
while(true)
{
    break st;  //使用"st"可以退出标记指定的循环,不用标记则只退出里层循环
}
}

执行例2-13,使用“st”可以退出标记指定的循环,不用标记则只退出里层循环。

continue语句:

例2-14

<script language="javascript">
        var output="";
        for(var x=1; x<10; x++)
        {
        if(x%2==0)                      //如需输出偶数,可写成if(x%2!=0)
            continue;
        output=output + " x=" + x;      //或写成:output+= " x=" + x;
        }
        alert(output);
</script>

显示效果如图2-12所示。

图2-12 continue语句

从上面的知识点可以看出,JavaScript的语法相当简单,对于一些有编程基础的人来说,学习JavaScript真是一件非常轻松愉快的事。下面可以根据这些基本的语法写一个跑马灯效果的脚本。

<html>
<head>
<script Language="javascript">
var msg="这是一个跑马灯效果的JavaScript文档";
var interval = 100;
var spacelen = 120;
var space10=" ";
var seq=0;
function Scroll() {
len = msg.length;
window.status = msg.substring(0, seq+1);
seq++;
if ( seq >= len ) {
    seq = spacelen;
    window.setTimeout("Scroll2();", interval );
}
else
window.setTimeout("Scroll();", interval );
}
function Scroll2() {
var out="";
for (i=1; i<=spacelen/space10.length; i++) out +=
    space10;
    out = out + msg;
    len=out.length;
    window.status=out.substring(seq, len);
    seq++;
    if ( seq >= len ) { seq = 0; };
    window.setTimeout("Scroll2();", interval);
}
Scroll();
</script>
<body>
</body>
</html>

将以上代码存为HTML文档后,用网页的方式打开,在页面最下方会以走马灯效果的方式显示“这是一个跑马灯效果的JavaScript文档”,如图2-13所示。

图2-13 跑马灯效果