try-catch-finally执行以及他们在有return的情况下,基本数据类型、对象以及有异步赋值情况异同分析

这两天面试,遇到好几个人,都是那种我感觉我肚子里的墨水都吐出来完了,难不倒人家,于是问了下家里那位老狗,从最开始就念叨着你问他try-catch在有return的情况下怎么执行的,执行结果是啥,我前面没理,后面确实有点遭不住了,来看看吧,肚子里添点墨水,别把脸丢大了~

做了几个测试:

一、数据执行顺序以及返回结果

原始:try-catch-finally 方法正确书写

created() {
    console.log('outer')
    console.log(this.tryCatch())
  },
  methods: {
    tryCatch() {
      let a = 1
      try {
        console.log('===try inner')
        a = 3
        console.log('try 2')
      } catch {
        console.log('=====catch inner')
      } finally {
        console.log('======finally inner')
        console.log('===finally 2')
        console.log(a)
      }
    }
  },

在这里插入图片描述

运行没毛病。
然后开始变种了,加上 return 会怎么样呢?:

// 1. 在 finally 当中加 return
finally {
	console.log('======finally inner')
     a = 4
     console.log('===finally 2')
     return a
}

在这里插入图片描述
其他不变,只是 finally return 的结果被返回回去了。

再来在 try 中直接返回就返回 a 的值,而 finally 不改变呢?

try {
	a = 3
	return a
} ... finally {
	console.log('======finally inner')
	console.log('===finally 2')
}

在这里插入图片描述
有趣的是,try 中赋了值的 a 的值被返回了,同时 finally 的语句也执行了。

那么,同时在 try finally 中都返回值,最后会获得什么呢?

try {
	a = 3
	return 3
} ... finally {
	console.log('======finally inner')
	a = 4
	console.log('===finally 2')
	reteurn 4
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/129868.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android jetpack compose 组件学习

官网地址:https://developer.android.com/jetpack/compose/tutorial?hlzh-cn 一、写一个 hello world 在New Project的时候选择Photo and Tablet里的Empty Compose Activity,如下所示: 打开这个project之后,可以看到MainActivit…

WebSocket魔法师:打造实时应用的无限可能

1、背景 在开发一些前端页面的时候,总是能接收到这样的需求:如何保持页面并实现自动更新数据呢?以往的常规做法,是前端使用定时轮询后端接口,获取响应后重新渲染前端页面,这种做法虽然能达到类似的效果&…

RPC 框架 openfeign 介绍和学习使用总结

一、基本概念 RPC 远程过程调用(Remote Procedure Call)的缩写形式 Birrell 和 Nelson 在 1984 发表于 ACM Transactions on Computer Systems 的论文《Implementing remote procedure calls》对 RPC 做了经典的诠释。 RPC 是指计算机 A 上的进程&am…

这个平台竟然几秒就可以做出精致的翻页电子画册?

电子画册是现代人生活不可或缺的一部分,它美观大方,二次编辑方便,而且相比于传统纸质画册,电子画册还能够让你拥有更丰富的互动性和视觉体验。如何制作呢? 小编这里要给大家安利的平台是:FLBOOK&#xff0…

腾讯云2023年双11活动:云服务器1.8折起,还可领取9999元代金券!

2023年双11腾讯云推出了11.11云上盛惠大促活动,包括秒杀专区、服务器买赠、新人专区、代金券专区、境外优选、新老同享、续费专区以及热门上云场景等满足新用户、老用户、企业用户对云计算服务的各种需求。 一、腾讯云双11活动地址 活动入口:点此直达 …

vue同时校验多个表单

0 效果 1 代码 checkForm (formRef) {return new Promise((resolve, reject) > {this.$refs[formRef].validate((valid) > {if (valid) {resolve();} else {setTimeout(() > {this.$refs[formRef].clearValidate();reject(new Error(错误));}, 1500);}});}); }, conf…

达梦SQL语法兼容笔记

1. DDL工具语法 查看库和表列表 # 查看所有数据库 select distinct object_name from all_objects where object_typeSCH; # 查看所有可见的表名: SELECT table_name FROM all_tables; # 查看用户可见的所有表 SELECT table_name FROM all_tables WHERE owner s…

STM32H743XX/STM32H563XX芯片烧录一次后,再次上电无法烧录

近期在使用STM32H563ZIT6这款芯片在开发板上使用正常,烧录到自己打的板子就遇到了芯片烧录一次后,再次上电无法烧录的问题。 遇到问题需要从以下5点进行分析。 首先看下开发板的原理图 1.BOOT0需要拉高。 2.NRST脚在开发板上是悬空的。这里我建议大家…

算法打卡02——删除有序数组中的重复项

题目:删除有序数组中的重复项 给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑…

C4D vs Blender:哪个更适合你的需求?

对于初学者来说,选择合适的 3D 制作软件往往是一件很困扰的事情。近年来,C4D 和 Blender 成为了许多动画和 3D 建模爱好者的热门选择。那么,这两款软件各有什么特色呢?让我们一起来看看吧! 一、软件特色 C4D 是一款商…

若依框架升级(对若依框架进行了升级,升级为Mybatis-plus)

ruoyi-plus: 对若依进行了升级Mybatis-plus版https://gitee.com/xiao--yan/ruoyi-plus.git

【UE5】 虚拟制片教程

目录 效果 步骤 一、下载素材 二、将视频转成PNG序列 三、开始虚拟制片 效果 步骤 一、下载素材 首先下载绿幕视频素材 链接:百度网盘 请输入提取码 提取码:jyfk 二、将视频转成PNG序列 打开“Adobe Premiere Pro”,导入素材 …

绿色低碳 数字未来-辽宁省建筑电气2023年学术年会-安科瑞 蒋静

2023年8月18日,辽宁省建筑电气2023年学术年会在辽宁友谊国宾馆成功召开。本届大会以“绿色低碳 数字未来”为主题,着眼为辽宁省建设提供智慧化电气设计及高质量产品服务。 安科瑞围绕“绿色低碳 数字未来”的主题,携充电桩及运营管理平台、工…

亚数受邀参加第六届进博会配套论坛,获评“2023年度上海重点产业提升国际竞争力示范案例”!

11月8日,由上海市商务委指导,上海社科院和临港集团主办,上海社科院应用经济研究所、徐汇虹梅街道和上海市漕河泾新兴技术开发区开发总公司联合承办,长三角产业国际竞争力联盟协办的第六届中国国际进口博览会提升上海产业国际竞争力…

ssm+vue的项目管理平台(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频: ssmvue的项目管理平台(有报告)。Javaee项目,ssm vue前后端分离项目。 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 项目介绍…

xcorr函数的用法和程序举例

xcorr函数的用法和程序举例 xcorr函数返回两个离散时间序列的互相关。互相关测量向量 x 和移位(滞后)副本向量y 的之间的相似性,形式为滞后的函数。如果 x 和 y 的长度不同,函数会在较短向量的末尾添加零,使其长度与另…

SpringBoot的bean属性校验

1.导入坐标 <!-- 导入JSR303规范--> <dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId> </dependency> 2.Validated 说明&#xff1a;开启对当前bean的属性注入校验 package com.…

arm2 day4

汇编编写流水灯 代码&#xff1a; LED流水灯现象&#xff1a;

tomcat+idea--如何在idea上发布项目

对应于idea2022以后的版本 &#xff08;一&#xff09;如何配置idea上的tomcat&#xff1f; 1、新建一个项目&#xff0c;左上角File&#xff0c;new&#xff0c;project&#xff0c;新建后就和普通的java项目一样。 2、然后点击项目名&#xff0c;右键选择“Add framework s…

Redis数据类型之List类型

文章目录 简介常用命令赋值语法LPUSHRPUSHLPUSHXRPUSHX 取值语法LLENLINDEXLRANGE 删除语法LPOPRPOPBLPOPBRPOPLTRIMLREM 修改语法LSETLINSERT 高级命令RPOPLPUSH 应用场景 简介 List类型是一个链表结构的集合&#xff0c;其主要功能有push&#xff0c;pop&#xff0c;获取元素…
最新文章