首页 > 其他分享 >注意break除了用于中断循环以及switch语句,还可以用于标签化语句的中断

注意break除了用于中断循环以及switch语句,还可以用于标签化语句的中断

时间:2023-11-10 22:14:33浏览次数:35  
标签:语句 break return 中断 try finally console

请问以下JS代码的输出结果以及变量i的值是?

var i = 100;
function foo() {
    bbb: try {
        console.log("position1");
        return i++;  }
    finally {
        break bbb;
    }
    console.log("position2");
    return i;
}
foo();

A
position1、position2、100

B
position1、position2、101

C
position1、101

D
100

正确答案:B
官方解析:
注意break除了用于中断循环以及switch语句,还可以用于标签化语句的中断,
这里的标签化语句即在一般语句前面多加了xxx:的标签,
如果在try或try except块中使用了return,那么这个break将发生于最后一行语句之后,但是却是在return语句之前。
所以这里的break是去中断bbb里面的语句,执行完所有的操作后才阻止了return,因此i是增加了,然后继续执行剩下的代码,在输出position2后才返回i变量。

以下主要说明三点:

try...catch...finally的用法
break的用法
本题的解题过程

一、try catch 还有finally的用法

标签:语句,break,return,中断,try,finally,console
From: https://www.cnblogs.com/longmo666/p/17825191.html

相关文章

  • 语句var arr=[a,b,c,d];执行后,数组arr中每项都是一个整数,下面得到其中最大整数语句正
    语句vararr=[a,b,c,d];执行后,数组arr中每项都是一个整数,下面得到其中最大整数语句正确的是哪几项?AMath.max(arr)BMath.max(arr[0],arr[1],arr[2],arr[3])CMath.max.call(Math,arr[0],arr[1],arr[2],arr[3])DMath.max.apply(Math,arr)正确答案:BCDA选项错误......
  • 以下哪些语句触发了隐式的类型转换?
    AparseInt(12.34,10)B0?1:2C2e1*0xaaD1+'1'正确答案:ABDparseInt()函数可解析一个字符串,并返回一个整数。所以说,number类型的12.34发生隐式转换为string。三元运算符,会判断?前的表达式为true或者false。所以number类型的0发生了隐式转换为boolean。+运算发生......
  • Sql Server根据表生成insert语句
    Createproc[dbo].[P_BackupsCompanyData](@tablenamevarchar(256),@wherevarchar(256))asbeginsetnocountondeclare@sqlstrvarchar(max)declare@sqlstr1varchar(max)declare@sqlstr2varchar(max)select@sqlstr='select''insertinto�......
  • POLARDB IMCI 到底是怎么工作的,事务的路由,执行的计划,与语句执行器
    6分析处理6.1透明查询路由在PolarDB-IMCI中,通过一种基于成本的路由协议,可以在不同的节点和不同的执行引擎上执行查询。路由过程对应用程序和用户完全透明,并且具有两级策略:节点间路由和节点内路由。节点间路由通过代理层实现读写流的分割(负载均衡),而节点内路由通过优化器提供对数......
  • Sql server 删除重复记录的SQL语句
     有两个意义上的重复记录:1.完全重复的记录,也即所有字段均重复的记录.2.部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。1、对于第一种重复,比较容易解决,使用selectdistinct*fromtableName就可以得到无重复记录的结果集。如果该表需要删除重复......
  • (十二)C#编程基础复习——break、continue、goto:跳出循环
    在使用循环语句时,并不是必须等待循环完成后才能退出循环,我们也可以主动退出循环,C#为我们提供了break、continue和goto三种方式来跳出循环:1、break它不仅可以用来终止switch语句,在循环语句中使用时还可以用来跳出循环,执行循环外的下一条语句。如果是在嵌套循环中使用,例如在内层的......
  • 如何保持 SSH 会话不中断?
    哈喽大家好,我是咸鱼不知道小伙伴们有没有遇到过下面的情况:使用终端(XShell、secureCRT或MobaXterm等)登录Linux服务器之后如果有一段时间没有进行交互,SSH会话就会断开如果正在执行一些非后台命令,SSH会话断开就可能会使得这些命令可能会被中断,导致任务无法完成那如何保......
  • 无涯教程-批处理 - For 语句 - List Implementations函数
    "for"构造为批处理文件提供循环功能,以下是用于处理值列表的"for"语句的常见结构。FOR%%variableINlistDOdo_something经典的"for"语句由以下部分组成-variable变量    -对于整个循环,此步骤仅执行一次,并用于声明将在循环中使用的任何变量,在批处理脚本中变量声......
  • 格式化SQL代码语句 format t-sql
      http://www.red-gate.com/products/SQL_Refactor/index.htmhttp://orafaq.com/utilities/sqlformatter.htmhttp://mikeschinkel.com/blog/anyoneknowofatsqlcodeformatter/http://software.topcoder.com/catalog/c_component.jsp?comp=10029208&ver=1http://www.red-gat......
  • 无涯教程-批处理 - While 语句 Implementation函数
    批处理脚本中没有直接的while语句,但是无涯教程可以使用if语句和标签很容易地实现此循环。下图显示了此循环的图解说明。while实现的第一部分是设置计数器,这些计数器将用于控制对"if"条件的判断,然后,无涯教程定义标签,该标签将用于体现while循环实现的整个代码,"if"条件将计算表......