`
flyfox1982
  • 浏览: 78434 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

简化一段javascript代码

阅读更多

在实际的项目中,我们经常会有如下的需求:

从一个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]  ||  ""

```

##总结

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

 

欢迎关注公众号:

 

ITman彪叔公众号
ITman彪叔公众号

 

0
0
分享到:
评论

相关推荐

    Juicer–一个Javascript模板引擎的实现和优化

    让我们从一段代码说起,假设有一段这样的JSON数据:我们需要根据这段JSON生成这样的HTML代码:传统的Javascript代码一定是这个样子:不言而喻,这样的代码混杂了html结构和代码逻辑,而且代码不具可读性,不便于后期...

    兼容所有浏览器的动画Flash插入代码

    为了简化其中的代码,所以自行把代码重新整理了一下,使其每次插入动画的时候,只需要写入短短一行代码(例如:<script type="text/javascript">swf(455,200,'仿新浪焦点图','focus');),就可以达到跟Adobe官方同样的...

    C#利用delegate实现Javascript的each方法

    C#中有很多易混淆的关键词,例如delegate,Func, Action和 Predicate。Func, Action和 Predicate本质上都是delegate,下面看一下delegate概念。...下面有一段Javascript代码,JS中经常使用数组的each方法来遍

    JAVA上百实例源码以及开源项目源代码

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    JavaScript 拖放效果代码

    虽然每次整理都觉得很好了,不过每隔一段时间又会发现得某个地方可以改善,某个地方有错误,某些需求需要实现,就像自己学习的知识那样。 这里考虑到有的人可能只需要简单的拖放,所以有一个简化版的拖放SimpleDrag...

    一种运行修补匠的新方法。 简化Web Artisan的工作流程。-JavaScript开发

    Tinkerun一种运行Tinker的新方法。...代码段:管理您已运行的代码段; 编辑器:通过编辑器运行终端代码; 输出:关注您真正关心终端返回的结果; 下一功能表单模式:将编辑器切换到表单,以便您可以修改自己的

    编写可读代码的艺术.[美]Dustin Boswell,Trevor Foucher(带详细书签)

    例如,利用本书的几段代码编写程序是不需要许可的。售卖或出版O扲eilly书中示例的D-ROM需要我们的许可。引用本书回答问题以及引用示例代码不需要我们的许可。将本书的大量示例代码用于你的产品文档中需要许可。

    设计模式中的facade外观模式在JavaScript开发中的运用

    概念 外观模式(门面模式),是一种相对简单而...JavaScript代码示例 用一段再简单不过的代码来表示 var getName = function(){ return ''svenzeng" } var getSex = function(){ return 'man' } 如果你需要分别调用ge

    jQuery响应式宽屏图片3D旋转切换特效.zip

    JavaScript 使有规律地重复的HTML文段简化,减少下载时间。JavaScript 能及时响应用户的操作,对提交表单做即时的检查,无需浪费时间交由 CGI 验证。JavaScript 的特点是无穷无尽的,只要你有创意。

    JAVA上百实例源码以及开源项目

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    JavaScript中的alert()函数使用技巧详解

    在JavaScript代码中,可以使用window对象的alert()函数来显示一段文本,从而进行程序的调试,或者向用户警示相关信息: 代码如下: //Use window object’s alert() function window.alert(...

    web前段通用验证器common-validator-2.0.js

    一款灵活通用的JavaScript验证组件,支持灵活多样的验证方式。 此为2.0版本,是在1.0基础架构上做了全新的调整, 希望能通过这个JS验证器小组件为我们码农们提供微小的帮助。 1、启用创建Validator方式,不再使用...

    hexo-filter-lqip:一个Hexo插件,可帮助将低质量的图像占位符引入主题

    十六进制过滤器 一个Hexo插件,可帮助将低质量的图像占位符引入主题 安装 npm i hexo-filter-lqip --save 用法 为主题安装此插件,然后...为了使其能够用作真正的占位符,必须有一段JavaScript代码,该代码最终将用原

    关于javascript的一些知识以及循环详解

    2.浏览器是如何工作的简化版: 3.Js由ECMAjavascript;DOM;BOM组成; 4.js是弱类型语言(即需要游览器解析了才知道是什么类型的); 5.js是脚本语言(边解析边执行); 6.script也分行内样式,嵌套样式和外联样式。 ...

    Anzeixer:简化响应式Web设计的视图定义的工具包

    Anzeixer是一组CSS和JavaScript代码段,可让您一次定义视图的阈值,从而节省时间并减少错误。 如何使用Anzeixer? 使用@media规则在CSS中定义视图 定义使用媒体查询的视图,以在特定的断点处应用CSS规则,并为视图...

    js_separation_of_concerns

    根据模型组织JavaScript代码并查看职责 指示 分叉并克隆此仓库。 转到项目目录。 请遵循您老师的指示。 关注点分离 在计算机科学中,关注点分离(SoC)是将计算机程序分为不同部分的设计原理,这样每个部分都可以...

    js-separation-of-concerns

    根据模型组织JavaScript代码并查看职责 指示 分叉并克隆此仓库。 转到项目目录。 请遵循您老师的指示。 关注点分离 在计算机科学中,关注点分离(SoC)是将计算机程序分为不同部分的设计原理,这样每个部分都可以...

    PHP+HTML+CSS+Javascript+MySQL的网页留言板.zip

    >”界定PHP代码段。这种特性使得开发者能够轻松地在静态网页中插入动态内容,实现数据渲染、条件判断、循环处理等功能,极大地简化了Web开发流程。同时,PHP也支持纯脚本文件编写,适用于构建复杂的后台逻辑。 PHP...

Global site tag (gtag.js) - Google Analytics