基本语法

首页 > JavaScript语法 > 基本语法

目录

对象

JavaScript继承了面向对象的编程思想,窗体、文档、表单等都可以被看成对象。对象有以下这些。

对象(Object)
├□ 数值(Number)
├□ 字符串(String)
├□ 布尔值(Boolean)
├□ 数组(Array)
├□ 数学函数(Math)
├□ 日期(Date)
├□ 函数(Function)
├□ 正则表达式(RegExp)
└□ 窗口(Window)
 ├□ 浏览器(Navigator)
 │├□ 插件(Plugin)
 │└□ MIME类型(MimeType)
 ├□ 框架(Frame)
 ├□ 事件(Event)
 ├□ 履历(History)
 ├□ 本地化(Location)
 ├□ 屏幕信息(Screen)
 └□ 文档(Document)
  ├□ 层(Layer)
  ├□ 图像(Image)
  ├□ 链接(Link)
  ├□ 锚(Anchor)
  ├□ 小程序(Applet)
  ├□ 表单(Form)
  │├□ 文本(Text)
  │├□ 密码(Password)
  │├□ 文件上传(File)
  │├□ 隐藏元素(Hidden)
  │├□ 文本领域(Textarea)
  │├□ 复选框(Checkbox)
  │├□ 单选框(Radio)
  │├□ 按钮(Button)
  │├□ 提交按钮(Submit)
  │├□ 重置按钮(Reset)
  │└□ 下拉列表(Select)
  │ └□ 条目(Option)
  └□ 元素(Elements)
   └□ 样式(Style)

属性

对象拥有可以调用或是设定值的属性。比如说 navigator 对象有以下属性。

navigator.appName       // 浏览器的名字
navigator.appVersion    // 浏览器的版本

方法

对象还拥有可以调用处理过程的方法。比如说 window 对象有以下方法。

window.alert("Hello");           // 显示警告对话框
window.open("xx.htm", "_blank"); // 在新窗口中打开目标文档

变量

除了对象、属性、方法,JavaScript里还可以使用变量。变量是一个起了名字的容器,可以给它赋予数值、字符串等值。下面的例子的意义是“把5这个值赋予名为xx的变量”,而不是“xx等于5”。

xx = 5;

变量名可以使用包括下划线(_)的半角英文数字,但是不能以数字开头。另外,不能使用JavaScript已经预先定义好的名字,比如 if 或 while 等等。

○ count_of_today
○ abc123
× 123abc
× if
○ if_while

声明变量时使用var。

var xx, yy, zz;
xx = 5;
yy = 8;
zz = xx + yy;

注释(/* ... */)

和 C++ 一样,从 // 开始到这一行的结束都是注释。

xx = 5;   // 在这里写注释

/* 与 */ 之间也是注释。

/* 这里的文字都是注释。*/

/* ... */ 可以用来注释复数行。

/*
 * 这里的文字都是注释。
 */

/* ... */ 无法嵌套使用。

/* 注释无法 /* 嵌套 */ 使用。*/ ← error

大小写

注意:JavaScript在使用变量和函数的时候是区分大小写的。比如以下变量名是不同的变量。

filename = "aaa.htm";
FileName = "bbb.htm";
FILENAME = "ccc.htm";

条件判断(if)

if (expression) statements1 else statements2

expression 的值为 true 则执行 statements1,值为为 false 则执行 statements2。在下面的例子中,变量 n 的值比10小则弹出 SMALL 对话框,否则就弹出 BIG 对话框。

if (n < 10) {
    alert("SMALL");
} else {
    alert("BIG");
}

else的部分也可以不写。

if (n < 10) {
    alert("SMALL");
}

也可以像下面这样写if语句。

if (n < 10) {
    alert("SMALL");       // 比10小的话弹出 SMALL 对话框
} else if (n > 20) {
    alert("BIG");         // 比20大的话弹出 BIG 对话框
} else {
    alert("NORMAL");      // 其他情况弹出 NORMAL 对话框
}

条件判断(switch)

switch (expression) { case value: statements; ... }

expression 的值的不同执行各种处理。在下面的例子中,xx 的值为1时,弹出 ONE 对话框,xx 的值为2时,弹出 TWO 对话框,xx 的值为3或4时,弹出 THREEorFOUR 对话框,其他情况则弹出 OTHER 对话框。

switch (xx) {
case 1:
    alert("ONE");
    break;
case 2:
    alert("TWO");
    break;
case 3:
case 4:
    alert("THREEorFOUR");
    break;
default:
    alert("OTHER");
    break;
}

循环(while)

while (expression) statements

expression 的值为 true 时,循环执行 statements 中的处理。下面的例子输出0123456789。

n = 0;
while (n < 10) {
    document.write(n);
    n++;
}

循环(do)

do statements while (expression)

expression 的值为 true 时,循环执行 statements 中的处理。下面的例子输出0123456789。与 while (……) {……} 的不同点是,就算 expression 的值一开始就是false,statements 的处理也会被执行一次。

n = 0;
do {
    document.write(n);
    n++;
} while (n < 10);

■ 循环(for)

for (expression1; expression2; expression3) statements

先执行 expression1 的处理,然后在 expression2 的值为true的时候循环执行 statementsexpression3 的处理。下面的例子循环了10次,输出0123456789。

for (i = 0; i < 10; i++) {
    document.write(i);
}
for (variable in array) statements

遍历数组的各元素执行处理。下面的例子输出 ABC。

xx = new Array(3);
xx[0] = "A";
xx[1] = "B";
xx[2] = "C";
for (i in xx) {
    document.write(xx[i]);
}

for可以用来调查对象所拥有的属性。但也有些属性查不到(拥有DontEnum属性的属性)。

for (i in navigator) {
    document.write(i, "<br>");
}

■ 跳出循环(break)

break
break label

使用 break 可以跳出最接近的一层循环。包括 for、while、do 循环或 switch 语句的 case 部分。下面的例子输出01234。

for (i = 0; i < 10; i++) {
    if (i == 5) {
        break;
    }
    document.write(i);
}

label 可以用来一次跳到循环的最外面。JavaScript 1.2 以后版本支持。在下面的例子里,一旦 xx 大于 20 就会跳出最外面的 for 循环。

abc:
  for (i = 0; i < 10; i++) {
      for (j = 0; j < 10; j++) {
          xx = i * 10 + j;
          if (xx > 20) {
              break abc;
          }
          document.write(xx + "<br>");
      }
  }

■ 继续循环(continue)

continue
continue label

跳过循环内的剩余代码,从最接近的循环再次开始执行。在下面的例子里,跳过5,输出012346789。

for (i = 0; i < 10; i++) {
    if (i == 5) {
        continue;
    }
    document.write(i);
}

label 可以跳跃到指定的循环继续执行。JavaScript 1.2 以后版本支持。

abc:
  for (i = 0; i < 10; i++) {
      for (j = 0; j < 10; j++) {
          xx = i * 10 + j;
          if (xx == 55) {
              continue abc;
          }
      }
  }

■ 标记(label)

label:

用 label 可以在JavaScript代码中设置标记。break语句和continue语句都可以使用它。JavaScript 1.2 以后版本支持。

label1:
  for (i = 0; i < 10; i++) {
      for (j = 0; j < 10; j++) {
          if (func(i, j) {
              break label1;
          }
      }
  }

■ 使用对象(with)

with (obj) statements

使用 obj 指定的对象执行处理。比如下面的例子,

document.write(document.bgColor);
document.write(document.fgColor);

用 with 可以写成这种形式。

with (document) {
    write(bgColor);
    write(fgColor);
}