博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一些小小的总结
阅读量:6277 次
发布时间:2019-06-22

本文共 1732 字,大约阅读时间需要 5 分钟。

try catch throw finally

引:看到过一篇文章说“try catch的使用,永远应该放在你的控制范围之内,而不应该防范未知的错误。如果让用户先发现你根本没预料到的错误,而不是你先发现错误,你是失职的。”

try 语句测试代码块的错误。

catch 语句处理错误。
throw 语句创建自定义错误。
finally 语句在 try 和 catch 之后无论有无异常都会执行。

  1. 首先看一个无异常情况
    clipboard.png
  2. 再来一个自定义抛出异常
    clipboard.png
    不难发现如果异常抛出之后,抛出那段之后的代码是不会执行了
  3. 程序报错抛出异常
    clipboard.png

为什么我们不用if呢?

还是上图吧,有图有真相
clipboard.png

obj.aa.bb.cc 本身已经是undefined 再往下找自然是没有dd的,此时如果是if就会报错并中断程序。而try catch不会。若是我们要使if的判断执行下去,则需要写成if(obj && obj.aa && obj.aa.bb & &obj.aa.bb.dd),而try cacth则不需要考虑这些。

&& 和 ||

这俩的含义不用解释了吧,且和或,主要是讲用&& 和 || 来节省if else 的写法

if(a === 1){    conosle.log('a=1')}

可以写为 a===1 && conosle.log('a=1')

或:

if(a===1 || a === 2){    console.log('a='+a)}

可以写为 (a===1 || a===2) && console.log('a='+a)

赋值也是可以的 a===1 && (b=1)(a===1 ||a===2) && (b=1)

我们会经常发现一个赋值 a = b ||'' b 若为真,a=b ,否则 a = ''

if else pk switch

clipboard.png

switch 完胜

对swtch的简写

var b = [];switch(area){    case 2:    b = ['重庆市', '福建省', '山东省', '内蒙古省', '上海市省']    break;    case 3:    b = ['北京市', '西北省', '甘肃省', '云南省', '宁夏省', '西藏省', '青海省',]    break;    case 4:    b = ['四川省', '辽宁省', '黑龙江省', '吉林省', '河北省', '山西省']    break;    省略......}

明明都是给b赋值,为什么不能简单点呢?

答案当然是可以了!我是江小白,世界很简单!!

用对象的方式组装一下:let object = {  1: ['重庆市', '福建省', '山东省', '内蒙古省', '上海市省'],  2: ['北京市', '西北省', '甘肃省', '云南省', '宁夏省', '西藏省', '青海省',],  3: ['四川省', '辽宁省', '黑龙江省', '吉林省', '河北省', '山西省'],  4: ['河南省', '江苏省', '安徽省', '广西省'],  5: ['新疆省', '江西省', '浙江省'],  6: ['陕西省', '辽宁省', '湖南省'],  7: ['广东省', '贵州省', '湖北省', '河南省', '海南省', '天津市']}b = object[area]如果你是规律的1234567,那么你还可以用数组哦let arr = [['重庆市', '福建省', '山东省', '内蒙古省', '上海市省'],['北京市', '西北省', '甘肃省', '云南省', '宁夏省', '西藏省', '青海省',],['四川省', '辽宁省', '黑龙江省', '吉林省', '河北省', '山西省'],['河南省', '江苏省', '安徽省', '广西省'],['新疆省', '江西省', '浙江省'],['陕西省', '辽宁省', '湖南省'],['广东省', '贵州省', '湖北省', '河南省', '海南省', '天津市']] b = arr[area]

是不是感觉少写了好多代码呢,你值得拥有哦~~

转载地址:http://uagpa.baihongyu.com/

你可能感兴趣的文章
Laravel 技巧锦集
查看>>
Android 使用 ViewPager+RecyclerView+SmartRefreshLayout 实现顶部图片下拉视差效果
查看>>
Flutter之基础Widget
查看>>
写给0-3岁产品经理的12封信(第08篇)——产品运营能力
查看>>
ArcGIS Engine 符号自动化配置工具实现
查看>>
小程序 · 跳转带参数写法,兼容url的出错
查看>>
开源干货!!!.NET Core + Vue.js(iview-admin) 通用动态权限(RBAC)管理系统框架[DncZeus]开源啦!!!...
查看>>
flutter error
查看>>
Flask框架从入门到精通之模型数据库配置(十一)
查看>>
10年重新出发
查看>>
2019年-年终总结
查看>>
聊聊elasticsearch的RoutingService
查看>>
让人抓头的Java并发(一) 轻松认识多线程
查看>>
从源码剖析useState的执行过程
查看>>
地包天如何矫正?
查看>>
中间件
查看>>
Android SharedPreferences
查看>>
算法与数据结构1800题 图
查看>>
css面试题
查看>>
Vue组建通信
查看>>