首页
学习
活动
专区
圈层
工具
发布

使用 JavaScript 编写更好的条件语句

在天气应用中,如果在早上被查看,显示一个日出图片,如果是晚上,则显示星星和月亮。在这篇文章中,我们将探索JavaScript中所谓的条件语句如何工作。...如果你使用JavaScript工作,你将写很多包含条件调用的代码。条件调用可能初学很简单,但是还有比写一对对if/else更多的东西。这里有些编写更好更清晰的条件代码的有用提示。...这是一个编写更清晰、易理解和维护的代码的方法,不是吗? 2. 提前退出 / 提前返回 这是一个精简你的代码的非常酷的技巧。我记得当我开始专业工作时,我在第一天学习使用提前退出来编写条件。...我们能用三元运算符、&&条件等语法重构上面的功能,但让我们用多个返回语句编写更清晰的代码。...使用可选链和空值合并 这有两个为编写更清晰的条件语句而即将成为 JavaScript 增强的功能。当写这篇文章时,它们还没有被完全支持,你需要使用 Babel 来编译。

2.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    编写可测试的JavaScript代码

    编写可测试的JavaScript代码 既然要对代码进行测试,那么为什么不让这一过程变得尽可能简单和轻松呢?JavaScript客户端代码测试之所以尤其困难,是因为我们几乎无法控制代码运行的环境。...多种类型的操作系统、多个版本的操作系统、多种类型的浏览器、多个版本的浏览器,更不用说插件、扩展、多语言版本和缩放大小了,还有一些未知内容,所有这些因素交织在一起,阻碍着应用程序的性能。...无论如何,测试——尤其是JavaScript测试——是很复杂的。克服这种复杂性的最好办法是完全控制自己实际所控制的东西:代码。...代码是连续存在的,一方面是从别人的代码到自己的代码,另一方面是从遗留代码到非遗留代码。 什么是遗留代码(legacy code)?...我比较推崇Michael Feathers在他的优秀作品Working Effectively with Legacy Code(Prentice Hall出版社)中的定义:遗留代码是没有测试过的代码,

    69500

    编写可测试的JavaScript代码

    2.生成代码的圈复杂度可以使用像jsmeter这样简单的命令行工具 3.为了实现合理性和可维护性,保持较低的圈复杂度是一个好办法 4.圈复杂度高的代码通常是由很多if/then/else语句造成的,最简单的修复是将方法分解成更小的方法...在该定义中,如下任意操作都算作一个内部流程(以方法B和C为例): ①如果A调用B; ②如果B调用A,并且A返回一个B随后 可以利用的值; ③如果C调用A和B,且A的返回值传递给B。...F.扇入 1.过程A的扇入是过程A的内部流程数量与欲从过程A中获取信息的数据结构数量之和。...3.Docco/Rocco,从代码中解析出Markdown风格的注释。 三、基于事件的架构 A.基于事件编程的好处 1.从核心上看,所有的应用程序都与消息传递有关。...E.运行客户端JavaScript单元测试 1.PhantomJS 2.Selenium F.运行服务器端JavaScript单元测试 1.jasmine 五、代码覆盖率 为代码覆盖率信息构建相应的JS

    1.7K30

    怎样编写更好的 JavaScript 代码

    作者:Ryland G 翻译:疯狂的技术宅 来源:dev.to ? 我看到没有多少人谈论改进 JavaScript 代码的实用方法。以下是我用来编写更好的 JS 的一些顶级方法。...为了解决回调问题,JS 中增加了一个新概念 “Promise”。Promise 允许你编写异步逻辑,同时避免以前基于回调的代码嵌套问题的困扰。...如果你有 4 个可用的 CPU 核心,并且你的代码只能使用单个核心,则会浪费 75% 的算力。这意味着,阻塞、同步操作是并行计算的最终敌人。但考虑到 JS 是单线程语言,不会在多个核心上运行。...JavaScript 通过事件循环解决了这个问题。事件循环,即循环注册事件并基于内部调度或优先级逻辑去执行它们。这使得能够“同时”发送1000个 HTTP 请求或从磁盘读取多个文件。...在 JavaScript 中,只有绝对必要时才应使用传统的 for 循环。

    1.8K30

    基础|如何优雅的编写JavaScript代码

    提高自身的编码能力和编写易于阅读和维护的代码,是广大码农们提高开发效率和职业身涯中必做的事情。 那么究竟如何编写出可维护的、优雅的代码呢?...避免使用 JS 糟粕和鸡肋 这些年来,随着 HTML5 和 Node.js 的发展,JavaScript 在各个领域遍地开花,已经从“世界上最被误解的语言”变成了“世界上最流行的语言”。...但是由于历史原因,JavaScript 语言设计中还是有一些糟粕和鸡肋。...编写简洁的 JavaScript 代码 以下这些准则来自 Robert C. Martin 的书 “Clean Code”,适用于 JavaScript。...整个列表很长,我选取了我认为最重要的一部分,也是我在项目用的最多的一部分,但是还是推荐大家看一下原文: https://github.com/ryanmcdermott/clean-code-javascript

    87630

    Java中多个ifelse语句的替代设计

    欢迎您关注《大数据成神之路》 今天在改老代码的过程中,亲眼见证了一段30个if-else嵌套的代码... 然后搜集了一些资料做了以下简单整理。 概述 ifelse是任何编程语言的重要组成部分。...但是我们编写了大量嵌套的if语句,这使得我们的代码更加复杂和难以维护。 接下来,让我们探索如何简化代码的中的ifelse语句写法。...但是有可能嵌套的if语句只是转移到了工厂类,这违背了我们的目的。 或者,我们可以在Map中维护一个对象存储库,可以查询该存储库以进行快速查找。...稍后,业务对象用于在计算器中执行计算。 我们还可以设计一个Calculator#calculate方法来接受可以在输入上执行的命令。这将是替换嵌套if语句的另一种方法。...规则引擎从主代码中获取了这种复杂性。一个RuleEngine评估规则和返回基于输入的结果。

    4.1K40

    Excel公式技巧20: 从列表中返回满足多个条件的数据

    在实际工作中,我们经常需要从某列返回数据,该数据对应于另一列满足一个或多个条件的数据中的最大值。 如下图1所示,需要返回指定序号(列A)的最新版本(列B)对应的日期(列C)。 ?...IF子句,不仅在生成参数lookup_value的值的构造中,也在生成参数lookup_array的值的构造中。...原因是与条件对应的最大值不是在B2:B10中,而是针对不同的序号。而且,如果该情况发生在希望返回的值之前行中,则MATCH函数显然不会返回我们想要的值。...(即我们关注的值)为求倒数之后数组中的最小值。...由于数组中的最小值为0.2,在数组中的第7个位置,因此上述公式构造的结果为: {0;0;0;0;0;0;1;0;0;0} 获得此数组后,我们只需要从列C中与该数组出现的非零条目(即1)相对应的位置返回数据即可

    19.2K10

    分享:使用 TypeScript 编写的 JavaScript 游戏代码

    《上篇博客》我写出了我一直期望的 JavaScript 大型程序的开发模式,以及 TS(TypeScript) 的一些优势。...博客完成之后,我又花了一天时间试用 TS,用它来重构之前编写的一个 JS 游戏:《Javascript 坦克游戏》。...为了体验强类型对于重构的好处,我决定在这个版本之上做代码结构上的重构。 有了强类型编写的代码,我可以很方便地分析出每一个类型、每一个方法,具体在哪些地方被使用。...但是图画完之后,才发现与想象中差点很远,这就是没有画图直接编写代码的结果,见下面两张图: ? ? 可以看出各精灵类型之间的关系是比较乱的,双向依赖随处可见。...新版本的类型关系图如下: 分层: ? 精灵: ? 管理器: ? 代码层面,主要是把各精灵之间耦合的代码,都移植到了上层的管理器中。同时,为精灵定义事件来解除精灵与管理器的直接耦合。

    2.3K50

    抛弃变量,编写更加可读的JavaScript代码

    用命令式的方式编程通常也是很容易的。它只有极少数的限制,而且该架构也规定了你如何组织代码。这使得写代码比读代码更容易。但是考虑到整个生命周期的话,代码是这样一本书 --- 一次编写,多次阅读。...每一次优化都是有代价的,因为它本质上是从人到电脑的可读性的转变。如果你的项目已经很快的话,那么就继续保持代码的干净和可读性。 怎样实现 使用常量 首先,你要做的最重要的事情就是将声明的变量替换为常量。...但是也有个缺点,就是我们在JavaScript中可能很难编写纯粹的函数式代码。这时候就会产生副作用,它们能轻易地毁掉函数式编程所带来的所有好处。...不要在闭包中修改任何代码,因为人们通常不会认为这里会产生副作用。 只将副作用写在短小的函数中。如果函数比较长,将其中的计算部分提取成单独的函数,并进行调用。这会使得复杂的函数更加容易理解。...如果你使用合适的编译器,比如 Babel的话,那些展开运算符以及丰富的箭头函数同样可以兼容老版本的浏览器。 总结 有许多方式可以编写出易读的代码。

    66230

    5个技巧让你更好的编写 JavaScript(ES6) 中条件语句

    使用 JavaScript 时,我们经常需要处理很多条件语句,这里分享5个小技巧,可以让你编写更好/更清晰的条件语句。...1、使用 Array.includes 来处理多个条件 我们来看看下面的例子: JavaScript 代码: // conditionfunction test(fruit) { if (fruit...JavaScript 代码: function test(fruit) { // 条件提取到数组中 const redFruits = ['apple', 'strawberry', 'cherry...这种编码风格很好,特别是当你的 if 语句很长时(想象一下,你需要滚动到最底部才知道那里有一个 else 语句,这样代码的可读性就变得很差了)。...注:如果你还不了解 ES6 中函数默认参数的新特性,可以查看 JavaScript 函数中默认参数 了解更多详情。 如果我们的 fruit 是一个 Object 对象怎么办?我们可以指定默认参数吗?

    1.7K20

    深入JavaScript,编写高质量JavaScript代码的基本要点

    最小全局变量 JavaScript有隐含的全局概念,意味着你不声明的任何变量都会成为一个去全局的对象属性。...参考下面的代码: function sum(x, y) {//不推荐写法:隐式全局变量result = x + y;return result;} 此段代码中的result没有声明。...parseInt()下的数值转换 使用parseInt()你可以从字符串中获取数值,该方法接受另一个基数参数,这经常省略,但不应该。...当字符串以”0″开头的时候就有可能会出问 题,例如,部分时间进入表单域,在ECMAScript 3中,开头为”0″的字符串被当做8进制处理了,但这已在ECMAScript 5中改变了。...案例: eval我遇到过一个场景用这个非常的合适 当时的场景是这样的 一个页面有3个tab 每个tab下面又有50多个编辑框 每个编辑框对应一个公式 比如现在tab1下面有个编辑框名字叫a跟他对应的公式是

    65820

    用列表推导式编写更优秀的Python代码

    本教程演示如何使用Python的列表推导式,它为开发者提供了一种编写更高效、更易读代码的方法,用单行解决方案替换传统的循环。...Python 列表推导式在一行高效易读的代码中,从现有的列表和序列生成新的列表。它们提供了一种简洁的语法来完成此任务,从而减少了代码行数。...与其使用多行代码通过循环执行操作,列表推导式 使用一对方括号将循环和可选条件嵌入到一行中。列表推导式可以使用任何可迭代对象(集合、字符串、元组、列表)来生成新的列表。...列表推导式可以用于单个列表或展平嵌套列表。 列表推导式被认为是“Pythonic”风格的代码,因为它与 Python 编写简洁高效代码的理念紧密契合。...通过了解它们的优势和局限性,开发人员可以利用此功能编写更简洁、更“Pythonic”的代码。

    42710

    编写精炼的JavaScript代码:避免多余的Else, 尽早Return

    通过用 if/return 替换 if/else来减少过多的缩进 尽量减少方法(或函数)中“干或”代码的缩进。 错误处理是“噪音”。...(result变量)可能会被错误地修改 (间接)鼓励了一个或多个if/else 示例: if/else 重构 我们来看一下下面这段典型的node回调代码: function(err, results)...更重要的是,函数的主要功能被提到了level 0。(这一点很重要) 在JavaScript中我们不太关心方法(或函数)返回值。...所以我们可以将 if部分代码缩减为一行,从而移除多余的花括号: (译者:由于浏览器已经支持一行代码中的多步调试,这样做不会给代码调试带来不便) function(err, results) { if...综上,最终代码: 方法(或函数)处于最低的缩进等级 没有不必要的缩进 代码更短小精炼 以上 ---- 往期精选文章 使用虚拟dom和JavaScript构建完全响应式的UI框架 扩展 Vue 组件 使用

    1.5K10
    领券