语句是 JavaScript 的基本执行单位。
1,语句块
我们一般使用代码块将需要一起执行的语句进行分组,需要注意的是,代码块结尾不需要加分号。
代码示例:
用花括号包含的多个语句{。。。}
{
var a = 123;
a++;
alert(a);
}
虽然JavaScript支持语句块,但是不能作为var变量的作用范围,let在语句块中定义,那么let定义的变量只在这个语句块中有效。
2,空语句
//空语句
;
作用:使代码更简洁
//使用空语句,完成数组初始化
for(var i=0;i<10;a[i++]=i+20);
3,异常抛出语句
JavaScript的所有异常都是Error对象。没有java异常那么丰富。
抛出Error对象的语法:
throw new Error('用户自定义错误');
程序:
当 i=5 时,手动抛出异常,但没有得到处理,因而异常传到浏览器,引起程序非正常中止,浏览器也有关于错误的提示。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script>
for(let i = 0;i<10;i++){
document.writeln(i+"<br>");
if(i>4){
throw new Error('用户自定义错误');
}
}
</script>
</body>
</html>
使用catch捕获异常
把可能出现异常的语句放在try块中,当try块出现异常时,只中止此try块中代码继续执行,程序会跳转到catch块中,做出相应的处理。
与java不同的是,无需定义多个catch块,与 Java 异常机制类似的是, finally 块是可以省略的 , 但一旦指定了 finally 块, finally 代码块就总会获得执行的机会。
语法:
try {
statements
} catch (e){
statements
} finally {
statements
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script>
try {
for(let i = 0;i<10;i++){
document.writeln(i+"<br>");
if(i>4){
throw new Error('用户自定义错误');
}
document.writeln(999999);
}
} catch (e) {
alert(e.message);
}finally{
document.writeln(8888888);
}
</script>
</body>
</html>
JavaScript 异常机制与 Java 异常机制存在如下区别。
- JavaScript 只有一个异常类: Error,无须在定义函数时声明抛出该异常,所以没有 throws 关键字。
- JavaScript 是弱类型语言,所以 catch 语句后括号里的异常实例无须声明类型。
- JavaScript 只有一个异常类,所以 try 块后最多只能有一个 catch 块。
- 获取异常的描述信息是通过异常对象的 message 属性,而不是通过 getMessage()方法实现的 。
with语句
with 语句的主要作用是避免重复书写同一个对象。
当需要连续使用同一个对象时,例如
document.writeln("Hello<br>") ;
document.writeln("World<br>");
document.writeln( " JavaScript<br> ");
上面代码可以简写成
with(document){
writeln("Hello<br>");
writeln("World<br>") ;
writeln("JavaScript<br>");
}