1.1 语法
1.1.5 语句
在WEB浏览器中每个<script>标签中包含一个被编译且立即执行的编译单元。
一个编译单元包含一组可执行的语句。
var 用来定义变量,变量定义当在某个语句内,则称其为语句的私有变量。当定义在window下时,则称改变量为全局变量。
循环语句(while、for、do...while)允许有一个可选的前置标签(label),配合break使用。类似于锚点的作用。
例1:
var num = 0;
outer:
for (var i = 0; i < 10; i++) {
for (var j = 0; j < 10; j++) {
if (i == 5 && j == 5) {
// TODO
break oute;
}
num++;
}
}
console.log(num); // 55
例2:
var num2 = 0;
outer2:
for (var i = 0; i < 10; i++) {
for (var j = 0; j < 10; j++) {
if (i == 5 && j == 5) {
// TODO
continue outer2;
}
num2++;
}
}
console.log(num2); // 95
语句通常情况下会按照顺序从上至下执行。条件语句(if、switch)、循环语句(while、for、do...while)、强制跳出语
句(break、return、throw)和函数调用来改变执行顺序。
条件语句中的值一下情况被当做假:
false
null
undefined
""
0
NaN
其他的全为真值。
switch 语句执行一个多路分支。通常多路分支个数是已知的。表达式的值和所有指定的case条件(不一定是常量)进行匹配
(匹配是用 "===")
例:
switch(null){
case 0:
console.log(0);
break;
default:
console.log(1);
}
// 打印 1
switch(NaN){
case NaN:
console.log(0);
break;
default:
console.log(1);
}
// 打印 1
注意:每个case从句后必须跟随一个强制跳转语句。可用break退出switch语句。
for语句 一种是形式是由3个可选从句控制:
for(var i = 0; i < 10; i++){
// TODO
}
另一种是:
for(item in obj){
if(obj.hasOwnProperty(item)){ // 判断该属性名是否是对象的成员,还是来自于原型链
// TODO
}
}
该方法会枚举一个对象的所有属性名(或键名)。
while 和 do...while 唯一的区别就是do...while会先执行一次再进行判断,至少会执行一次。
try...catch...finally 用于捕捉代码块的异常
例:
try{
if(a){
throw "我捕捉到一个错误"; // err 的值,可以是对象{name: message}形式
}
} catch(err){
console.log(err);
} finally{
console.log("不论有没有异常,我都会执行");
}
// 我捕捉到一个错误
// 不论有没有异常,我都会执行
通常用于不确定代码块会不会报异常,从而避免导致整个代码报错不能继续执行。
return 语句会导致从函数中提前返回。可以设置返回值,不设置则返回 undefined。return 与表达式之间不允许换行。
--------内容系个人整理,如有错误,欢迎指出。谢谢!--------