在实际的项目中,我们经常会有如下的需求:
从一个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] || ""
```
##总结
这个问题并不难,拿这个问题问小伙伴,一些人也可以给出正确答案。但平时没有谁这样去主动思考。
欢迎关注公众号:
相关推荐
"超实用的javascript代码段"是席新亮著作的一个资源集合,提供了许多实际开发中常用且高效的代码片段,对于学习和提升JavaScript编程技能非常有帮助。 一、基础语法与类型 JavaScript的基础语法包括变量声明(var、...
这篇“超实用的JavaScript代码段”文档很可能包含了许多常用的、实用的JavaScript函数和技巧,可以帮助开发者提高效率,解决实际问题。 首先,JavaScript的基础知识包括变量声明(var、let、const)、数据类型...
CoffeeScript是一种基于Ruby语言的编程语言,旨在通过简洁的编码方式生成JavaScript代码。它结合了Ruby的简洁和JavaScript的灵活性,使开发者可以通过简洁易读的语法撰写逻辑规则。CoffeeScript编译器负责将代码...
"javascript常用代码及汇总"这个资源集合了JavaScript编程中的一些常见用法和实用技巧,是开发者学习和工作中的一大助力。 首先,JavaScript的核心概念包括变量、数据类型、控制结构、函数、数组、对象等。变量是...
以上只是JavaScript常用代码段的一小部分,实际应用中还有许多其他功能和技巧,如事件处理、定时器、正则表达式、错误处理等。通过深入学习和实践,你可以更好地掌握JavaScript这门强大的语言。在提供的PDF文档和...
这个名为"JavaScript前端开发案例教程-源代码.rar"的压缩包文件提供了一系列实践案例,帮助开发者深入理解和掌握JavaScript在网页开发中的应用。 首先,JavaScript是一种解释型、弱类型、基于原型的脚本语言,它的...
"javascript实用代码压缩工具"就是这样一个帮助开发者优化JavaScript代码的工具。 JavaScript代码压缩主要有两个目的:一是去除代码中的空格、换行符和注释,这种过程称为"混淆";二是通过变量重命名、合并函数等...
总之,JavaScript代码压缩工具是现代Web开发中的重要辅助工具,它可以帮助我们优化网站性能,减少加载时间,并提供一个便捷的GUI界面来简化这一过程。`jsmingui.exe`作为这样的工具,对于个人开发者和团队来说都是一...
这个压缩包文件“javascript代码和网页演示”显然包含了一些JavaScript源码实例,这些实例被设计成可以直接在网页上运行,以展示具体的编程效果。对于想要学习或提升JavaScript技能的开发者来说,这是一个宝贵的资源...
从给定的小游戏代码中,我们可以提取出一...综上所述,这段小游戏代码不仅涉及了HTML、CSS和JavaScript的基础知识,还涵盖了高级主题,如DOM操作、事件处理和性能优化技巧,为学习者提供了丰富的学习材料和实践机会。
JavaScript还有许多强大的库和框架,比如jQuery简化了DOM操作,React和Vue.js提供了高效的组件化开发方式,Angular则是一个全面的前端框架。这些工具和框架极大地扩展了JavaScript的功能,使开发更为高效。 在这个...
函数是一段可重复使用的代码块,可以接受参数并返回值。 JavaScript的另一大特性是对象,它是一种复杂的数据结构,可以存储键值对。你可以通过字面量语法创建对象,或者使用构造函数。原型和继承是JavaScript中实现...
这个“javascript实例”压缩包很可能包含了一系列JavaScript代码示例,旨在帮助初学者或开发者理解并掌握JavaScript的核心概念和常用技巧。 在JavaScript中,我们有以下几个重要的知识点: 1. **变量与数据类型**...
《超实用的JavaScript代码段》PDF版本下载提供了丰富的JavaScript代码片段,涵盖了从基础到进阶的多个方面。无论是新手还是有一定经验的开发者,都可以从中受益匪浅。通过实践这些代码段,不仅可以加深对JavaScript...
接下来,我们编写JavaScript代码来实现轮播效果: ```javascript $(document).ready(function() { var slideshow = $('#slideshow'); var images = slideshow.find('img:hidden'); function rotateImages() { ...
**jQuery**是一个快速、简洁的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互。jQuery使得JavaScript编程变得更加简单,通过使用链式操作、选择器等特性,开发者可以高效地编写跨浏览器的代码。 ...
图片轮换是一种常见的网页动态效果,它可以在一段时间间隔后自动更换展示的图片。JavaScript库如jQuery或更现代的Vue.js和React.js都有现成的方法来实现这一功能。核心思想是用数组存储所有图片的源,然后使用...
在这个代码中,可能会有一个定时器函数每隔一段时间自动切换图片,同时提供手动切换的选项,如点击按钮或使用键盘箭头。JavaScript也可以用来监听用户的这些交互事件,然后调用相应的动画函数。 CSS则主要负责样式...
标题 "处理ajax返回的js代码" 涉及的核心知识点是使用Ajax技术动态获取并执行JavaScript代码。Ajax(异步JavaScript和XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器交换...
JavaScript Helper 是一个强大的工具,专为开发者设计,旨在简化JavaScript编码过程中的各种任务。这个工具集可以帮助程序员提高生产力,减少代码冗余,并确保代码的质量和可维护性。它包含了一系列实用的功能,涵盖...