if 语句
if是基本的控制语句,是根据条件执行的语句。if语句一般分为两种:
if (expression) statement
另一种是:
if (expression){ statement1 } else { statement2 }
if语句的expression表达式只可以是true或false
switch 语句
switch语句满足于一个变量值多个分支执行语句设计的,语法结构:
switch(expression){ case value: statement break; default: statement break; }
expression:可以是字符串和数字类型,当expression的值等于case后value值就执行该case的statement。case语句块可以有多个,default只能有一个。default的作用是所有的case值都不等于expression值时,就会执行default。看一个例子:
<html> <head> <title>switch</title> </head> <body> <script> function test(x){ switch (typeof x){ case 'number' : document.write("number"); break; case 'string' : document.write("string"); break; case 'boolean' : document.write("boolean"); default : document.write(x); } } test('1');//结果是string </script> </body> </html>
while 语句
whlie语句和if一样也是基本语句,不过他可以循环执行。语句结构:
while (expression) statement
在执行while语句时,他会先判断expression的是true还是false。如果是true就会执行while循环体内的statement,如果是false就会跳出while循环,如果expression一直true那么就会形成一个无限循环。
do/while 语句
do/while语句和while语句很相似,区别在于while语句是先要判断循环条件在执行循环体,do/while语句是先要执行循环体,后判断循环条件。语句结构:
do statement while (expression);
注意do/while语句while的循环条件后面要加上分号,表示已经结束。
for 语句
for语句也是一个循环语句,它和while的不同在,for语句将初始化、检测、更新关键操作明确的声明到了for循环语句的一部分。语句结构:
for (initialize; test; increment) statement
for/in 语句
for/in语句和for语句很相似,for语句主要是循环数组,for/in主要是循环对象。语法结构
for (variable in object) statement
variable 是var值的变量名,准确的来说该变量是存放object对象每次循环的一个属性名称,也可以通过object[variable]取得该对象属性的属性值。
标签语句
标签语句通常是使用在循环语句上面,通过给循环语句加标签语句,就可以使用break和continue语句来退出循环或者退出循环的某一个迭代。语句结构:
identifier: statement
identifier可以是任何javascript 标示符,不能是保留字,可以喝变量名、函数相同。
break 语句
break 语句会使运行的程序立刻退出包含在最内层的循环或者退出一个switch 语句。语句结构:
break;
由于break 是退出循环或者switch 语句的,所以只有在这些语句内出现break 语句。
javascript 允许break 后面接一个标签语句。语句结构:
break lablename;
lablename 是一个标签名称,下面看一个break 加标签名称的用法:
<html> <head> <title>break</title> </head> <body> <script> outerloop: for (var i = 0; i < 10; i++){ innerloop: for (var j = 0; j < 10; j++){ if (j > 3) break; if (i == 2) break innerloop; if (i == 4) break outerloop; document.write("i =" + i + "j = " + j + "<br/>"); } } document.write("FINAL i = " + i + "j =" + j + "<br/>"); </script> </body> </html>
输出结果:
i =0j = 0
i =0j = 1
i =0j = 2
i =0j = 3
i =1j = 0
i =1j = 1
i =1j = 2
i =1j = 3
i =3j = 0
i =3j = 1
i =3j = 2
i =3j = 3
FINAL i = 4j =0
continue 语句
continue 和break 语句很相似,和break 不同的是它不是退出一个循环,而是开始循环的一个新迭代。语法结构:
continue;
也是可以加标签
continue labelname;
下面是continue的例子:
<html> <head> <title>continue</title> </head> <body> <script> var obj = new Object(); obj.one = '1'; obj.two = '2'; obj.three = '3'; obj.four = '4'; obj.five = '5'; obj.six = '6'; obj.seven = '7'; obj.eight = '8'; obj.nine = '9'; for (var prop in obj){ document.write("obj namne = " + prop + "<br/>"); if (obj[prop] > 5){ continue; } document.write("obj value = " + obj[prop] + "<br/>"); } </script> </body> </html>
输出结果:
obj namne = one
obj value = 1
obj namne = two
obj value = 2
obj namne = three
obj value = 3
obj namne = four
obj value = 4
obj namne = five
obj value = 5
obj namne = six
obj namne = seven
obj namne = eight
obj namne = nine
var 语句
var 语句允许声明一个或者多个变量。语法结构:
var name_1[ = value1] [,..., name_n [ = value_n]]
function 语句
function 语句是定义了一个 javascript 函数。语法结构:
function funcname([arg1 [...,argn]]){ statements; }
return 语句
return 语句就是用于指定函数返回值,这个值就是函数调用的表达式。语法结构:
return expression;
return 语句只允许出现在函数体内。当function 执行到return 语句时,return 会先就算expression ,然后返回expression 的值作为function 的值。如果执行function return语句后,function还有其他语句将不会被执行。
throw 语句
在javascript 中当程序运行时错误或程序明确使用throw 语句时就会抛出异常。语法结构:
throw expression;
expression 可以使任何类型,但通常是Error对象或Error子类对象实例。例如:
<html> <head> <title>throw</title> </head> <body> <script> function test(x){ if (x < 0){ throw new Error("x must not be negative"); } for (var i = 0; i < x; i++){ document.write("x = " + x + "<br/>"); } } test(-1); </script> </body> </html>
当test(-1)时页面什么都没有输出,可以进入页面控制台查看错误信息。
try/catch/finally 语句
try/catch/finally 语句是javascript 异常处理机制。语法结构:
try{ statement; } catch (e) { statement; } finally { statement; }