标签语句

语句是可以添加标签的,标签是由语句的标识符和冒号组成:

indenfitier:statement

通过给语句定义标签,就可以在程序的任何地方通过标签引用这条语句。也可以对多条语句定义标签,尽管只有在给语句块定义标签时它才更有用,比如循环和条件判断语句。

break 和 continue是JavaScript中唯一可以使用语句标签的语句。

break语句

单独使用break语句的作用是立即退出最内层的循环或switch语句,由于它能够使循环和switch语句退出,因此这种形式的break只有出现在这类语句中才是合法的。

当break和标签一块使用时,程序将跳转到这个标签所标识的语句块的结束,或者直接终止这个闭合语句块的执行。

continue语句

continue语句和break语句非常类似,但它不是退出循环,而是转而执行下一次循环。

不管continue语句带不带标签,它只能在循环体内使用。在其他地方使用将会报语法错误。

当执行到continue语句的时候,当前的循环逻辑就终止了,随即执行下一次循环,在不同类型的循环中,continue的行为也有所区别:

  • while循环中,在循环开始处制定expression会重复检测,如果检测结果为true,循环体从头开始执行。
  • 在do/while循环中,程序的执行直接跳到循环结尾处,这是会重新判断循环条件,之后才会继续下一次循环。
  • 在for循环中,首先计算自增表达式,然后再次检测test表达式,用以判断是否执行循环体。
  • 在for/in循环中,循环开始遍历下一个属性名,这个属性名付给了制定的变量。

需要注意continue语句在while和for循环中的区别,while循环循环直接进入下一轮的循环条件判断,但for循环首先计算其increment表达式,然后判断循环条件。

return语句

return语句只能在函数体内出现,如果不是的话会报语法错误。当执行到return语句的时候,函数终止执行,并返回expression的值给调用程序。

throw语句

throw语句的语法如下:throw expression;

expression的值可以是任意类型的。可以抛出一个代表错误码的数字,或者包含可读的错误消息的字符串。当JavaScript解释器抛出异常的时候通常采用Error类型和其子类型,当然也可以使用它们。一个Error对象有一个name属性表示错误类型,一个message属性用来存放传递给构造函数的字符串。

try/catch/finally语句

Try/catch/finally语句是JavaScript的异常处理机制。其中try从句定义了需要处理的异常所在的代码块。catch从句跟随在try从句之后,当try快内某处发生了异常时,调用catch内的代码逻辑。catch从句后跟随finally快,后者中放置清理代码,不管try块中是否产生异常,finally块内的逻辑总是会执行。尽管catch和finally都是可选的,但try从句至少二者之一与之组成完整的语句。try、catch和finally语句块都需要使用花括号括起来,这个的花括号是必须的,即使从句中只有一条居于也不能省略花括号。


发表评论