JavaScript 整理笔记(二)

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 与表达式之间不允许换行。

--------内容系个人整理,如有错误,欢迎指出。谢谢!--------

猜你喜欢

转载自blog.csdn.net/Ama_zhe/article/details/81509477