随笔

今天第一次在项目中用到MySQL的union查询语句,应用场景是这样的:

在开发的课程中,有多个级别,不只是最小的级别可以包含课程详细内容,次级也可以;有一个需求是统计用户学习的单词数量,单词适合这两个级别相关联的,同时是可以重复的。

统计用户学习的单词数量也就是统计用户学过的这两个级别的课程的关联单词的数量,因为分成两个级别,如果用一条SQL语句查询不太方便而且还要去重。

此时比较方便的做法就是使用union同时查询两张表,并且union可以自动去重。


nextval


解构赋值的默认值问题

let form = {a=1, b=2}

let {a, b} = form 此时: a=1, b=2

如果form中没有b或者b的值为undefined,那么b的值为undefined;如果form中b的值是null,那么b的值是null;

当b有默认值的时候,即let{a,b=3} = form 此时:a=1, b=2(b依然是2,取form中的值)

只要form中有b,且b的值不是undefined,那么b都可以通过解构得到form中b的值(包括null和"");

即:

let {a,b,c=3,d=4,e=5,f=6} = {a:1,b:2,c:undefined,d:null,e:1} 此时:c=3,d=null,e=5,f=6;


代码中的默认值问题

在代码中用到解构赋值的地方,如果通过此种方式给对象的属性添加初始值则不太合适:

比如获取商品的折扣价格的接口:

let {discount} = data 

此时不能十分确定data中的discount属性的值是0或是null/undefined,虽然在前面做了相应处理,但还是要在这个接口中进行判断

这里看似可以给discount一个初始值,但后来经过验证,如果传递的值为null/""则不可以,所以依然需要在后面添加一个判断:if(!discount) { discount = 0} 来确保不会出错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值