资讯专栏INFORMATION COLUMN

简化一段javascript代码

李增田 / 1517人阅读

摘要:赋值操作合并首先,和这两行没必要写成两行,都是赋值,应此可以这样优化去掉判断如果把判断,改成三元运算符,可以减少代码,如下如果用符号,看起来更加方便当然,这两行代码,最终可以合并成如下代码至此完成,最终行代码简化成一行代码。

在实际的项目中,我们经常会有如下的需求:
从一个map中获取某key的值,如果发现对应的key的值为null,则为该key创建一个值(一般为初始值),然后把这个值存回到map中,代码如下:

var value = map[key];
if(value == null){
        value = "";
        map[key] = value;
}

但是总感觉这段代码很恶心,为啥,太啰嗦,太长。 实际项目中,这种操作会技巧多,如果到处都是这种操作的话,就很让人崩溃。坏蛋必须死。

赋值操作合并

首先,value = "" 和 map[key] = value这两行没必要写成两行,都是赋值,应此可以这样优化:

var value = map[key];
if(value == null){
        value = map[key]  = "";
}
去掉if判断

如果把if判断,改成三元运算符,可以减少代码,如下:

var value = map[key];
 value   = (value == null) ?( map[key]  = "") : value;

如果用 || 符号,看起来更加方便:

var value = map[key];
 value   = value || (map[key] = "");

当然,这两行代码,最终可以合并成如下代码:

  var value = map[key]  || (map[key] = "");

至此完成,最终5行代码简化成一行代码。

另外一个答案

拿这个问题问公司的小伙伴,下面是另外一种答案:

var value = map[key] = map[key]  ||  ""
总结

这个问题并不难,拿这个问题问小伙伴,一些人也可以给出正确答案。但平时没有谁这样去主动思考。

欢迎关注公众号:

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/95500.html

相关文章

  • javascript 匀速运动实现侧边栏分享效果

    摘要:原理采用对象距离左边的距离加固定速度。实现侧边栏分享效果用运动做一个侧边栏分享分享到当我们写好一段代码的时候,我们应该进行测试优化。实现侧边栏分享效果简化速度参数用运动做一个侧边栏分享分享到 原理 采用offsetLeft(对象距离左边的距离)加固定速度。 采用定时器setInterval和clearInterval 根据当前位置到目标位置是正值还是负值决定运行的速度为正值还是负值。...

    wind3110991 评论0 收藏0
  • 你真会用setTimeout吗?

    摘要:什么交互都处理不了怎么办简化复杂度复杂逻辑后端处理的多线程上面都是的做法,但是也是处理这种问题的一把好手。换一种思路,上面就是利用实现一种伪多线程的概念。 教科书里面的setTimeout 定义很简单 setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。 广泛应用场景 定时器,轮播图,动画效果,自动滚动等等 上面一些应该是setTimeout在大家心中的样子...

    jsyzchen 评论0 收藏0
  • JavaScript的计时器的工作原理

    摘要:创建了一个简单的计时器,在经过给定的时间后,回调函数将会被执行。接受一个计时器由之前两种计时器返回并且停止计时器回调函数的执行。然而,我们可以注意到,当定时器再一次触发在计时器回调函数正在执行的时候,这一次定时器回调函数被丢弃了。 最近都在看一些JavaScript原理层面的文章,恰巧看到了jQuery的作者的一篇关于JavaScript计时器原理的解析,于是诚惶诚恐地决定把原文翻译成...

    geekzhou 评论0 收藏0
  • JS 异步的实现

    摘要:由于引擎同一时间只执行一段代码这是由单线程的性质决定的,所以每个代码块阻塞了其它异步事件的进行。这意味着浏览器将等待着一个新的异步事件发生。异步的任务执行的顺序是不固定的,主要看返回的速度。 我们经常说JS是单线程的,比如node.js研讨会上大家都说JS的特色之一是单线程的,这样使JS更简单明了,可是大家真的理解所谓JS的单线程机制吗?单线程时,基于事件的异步机制又该当如何,这些知识...

    sihai 评论0 收藏0
  • JavaScript 与 异步编程

    摘要:然而异步编程真正发展壮大,的流行功不可没。于是从异步编程诞生的那一刻起,它就和回调函数绑在了一起。这个函数会起一个定时器,在超过指定时间后执行指定的函数。我们知道是异步编程的未来。 什么是异步(Asynchrony) 按照维基百科上的解释:独立于主控制流之外发生的事件就叫做异步。比如说有一段顺序执行的代码 void function main() { fA(); fB(); }...

    YFan 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<