`
FlashJava
  • 浏览: 22597 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

关于if语句的几种优化

    博客分类:
  • js
 
阅读更多
UglifyJS是一个对javascript进行压缩和美化的工具,在它的文档说明中,我看到了几种关于if 语句优化的方法。尽管我还没使用它去做一些尝试性的测试,但从这里可以看到它的确对js作了美化的工作。也许有人认为if语句就那么简单,能优化到什么程度?但是看看以下的几种方式,你也许会改变看法。

一、使用常见的三元操作符

if (foo) bar(); else baz(); ==> foo?bar():baz();
if (!foo) bar(); else baz(); ==> foo?baz():bar();
if (foo) return bar(); else return baz(); ==> return foo?bar():baz();

对于以上使用三元操作符来优化if语句你肯定不会陌生,或许你经常使用它。

二、使用and(&&)和or(||)运算符

if (foo) bar(); ==> foo&&bar();
if (!foo) bar(); ==> foo||bar();

老实说,我并没有这样去写过代码,这种写法我在学习《鸟哥的 Linux 私房菜》时看到过,但我并没想到在js中实现它。

三、省略大括号{}

if (foo) return bar(); else something(); ==> {if(foo)return bar();something()}

这种写法你我都很熟悉,但我建议在代码优化的时候这样做,或者交给UglifyJS帮你去解决。毕竟少一个大括号,代码的可阅读性并不高。

写到这里,我想到jQuery之父在《精通 JavaScript》中的一个获取HTML元素属性的方法。

function getAttr(el, attrName){
var attr = {'for':'htmlFor', 'class':'className'}[attrName] || attrName;
};

如果我们不这样写,可能我们需借助于两个if语句来进行处理,而上面的代码不仅简洁有效,而且可阅读性强。

仔细想想,好些时候我们都能找到解决问题的有效途径,但关键在于我们是否用心去寻找一种更好的途径。
分享到:
评论

相关推荐

    js中if语句的几种优化代码写法.docx

    ### JavaScript中if语句的几种优化代码写法 在JavaScript编程中,`if`语句是最基本也是最常用的控制结构之一。它允许程序根据条件执行不同的代码块,从而实现逻辑分支的功能。虽然`if`语句本身已经非常简单,但在...

    js中if语句的几种优化代码写法

    本文将探讨在JavaScript中优化`if`语句的几种方法,这些技巧可以帮助我们编写更加高效且简洁的代码。 首先,我们可以利用**三元操作符**来简化`if`语句。三元操作符`?`提供了一种简洁的条件判断方式。例如: ```...

    javascript教程:关于if简写语句优化的方法

    下面我们将探讨几种通过UglifyJS或直接在编写代码时采用的if语句优化技巧。 1. **使用三元操作符** 三元操作符是JavaScript中的一种简洁表达方式,它可以替代简单的if-else结构。例如: ```javascript if (foo) ...

    LR_if.rar_If..._LR中IF语句格式_条件语句

    在生成三地址码的过程中,`if`语句会被拆解为几个步骤: 1. **计算条件**:将条件表达式转换为三地址码,得到一个临时变量,例如: ``` t1 = expr1 op expr2 ``` 其中`op`是对应的比较运算符。 2. **生成跳转...

    C语言程序设计(第2版)-2期 拓展知识4-2 if语句的嵌套.pdf

    在使用if语句嵌套时,有几个重要的注意事项: - **代码可读性**:嵌套过深会使代码难以理解和维护,因此尽量保持if语句的深度在3-4层以内。 - **正确使用花括号**:花括号可以帮助清晰地表示代码块,避免else与错误...

    IF-ELSE条件语句的翻译程序设计(LR方法、输出三地址表示)

    通过这种方式,IF-ELSE语句被转换成一系列基本的三地址指令,便于后续的代码生成和优化。 在实际的编译器设计中,IF-ELSE条件语句的翻译涉及词法分析、语法分析、语义分析等多个阶段。词法分析负责将源代码分解为一...

    verilog中多个else_if级联造成的综合电路的低效率及解决办法

    为了解决上述问题,可以采取以下几种方法来优化代码结构: 1. **使用多个if_else替换else_if级联** - **优点**:每个条件都是独立判断,减少了不必要的逻辑层级,提高了电路的整体性能。 - **示例**: ```...

    sql优化的几种方法

    例如,当需要根据某个条件返回不同的结果时,可以考虑使用DECODE函数代替IF-THEN逻辑。 #### 七、整合简单且无关联的数据库访问 如果有多个简单的、相互之间没有关联的数据库查询,可以尝试将它们合并成一个查询。...

    浅谈选择结构if语句和switch语句的区别

    - 效率:对于简单的相等比较,switch通常比if语句更快,因为编译器可以生成更优化的代码。 - 代码可读性:当有多个等价条件时,switch结构的可读性往往优于嵌套的if-else结构。 - 控制流程:switch不支持逻辑运算符...

    武汉理工大学编译原理课程设计 IF-THEN条件语句的翻译程序设计(递归下降法、输出三地址码)

    在这个项目中,我们使用递归下降法来解析IF-THEN语句,这是一种结构简单的控制流语句。递归下降解析器通常由一系列的函数组成,每个函数对应语言中的一个语法构造。对于IF-THEN语句,我们可能需要定义一个或多个函数...

    if_else&case;语句分析.pdf

    例如,使用if和elseif语句时,如果第一个条件sel_C[1]为真,那么对应的data_C[1]就会被赋值给输出data_out_C,而不会继续检查后续的条件。这种特性使得在编写具有优先级逻辑要求的代码时,if_else结构非常有用。此外...

    编译原理课程设计 if-else ll(1)

    3. **If-else语句的文法**:在编程语言中,if-else语句用于根据条件执行不同的代码块。设计一个LL(1)文法来表示if-else结构,需要明确各个符号的产生式,确保没有二义性,并且满足LL(1)的要求。例如,文法可能包括...

    5152单片机proteus仿真和源码用if语句控制P0口8位LED的流水方向

    为了使LED流水灯更加有趣,可以通过以下几种方法进行改进: **4.1 双向流动** 除了单向流动外,还可以实现LED的双向流动效果。这可以通过设置两个不同的数组,并在循环中交替使用它们来实现。 **4.2 动态调整速度...

    C语言32个关键字九种控制语句34种运算符.pdf

    此外,C语言中的九种控制语句包括:顺序语句(按照编写顺序执行)、选择语句(if, switch)、循环语句(while, do...while, for)、跳转语句(break, continue)、函数调用、声明语句、表达式语句、空语句以及复合...

    sql查询优化(提高MySQL数据库查询效率的几个技巧)

    除了使用 Statement 进行绑定查询外,还有其他几种方法可以提高 MySQL 数据库查询效率: * 使用索引:在频繁查询的列上建立索引,可以提高查询效率。 * 优化 SQL 语句:使用 EXPLAIN 语句来分析 SQL 语句的执行计划...

    mybatis直接执行sql语句后续之一

    MyBatis提供了几种处理策略,如BasicResultHandler、MapResultHandler等,可以自定义实现以满足特定需求。 6. **TypeHandler**:负责Java类型与JDBC类型的转换,确保数据在Java对象和数据库之间正确地进行类型转换...

    oracle优化语句

    DECODE函数在Oracle中用于条件判断,类似于IF-THEN语句,但其执行效率更高。通过在查询中使用DECODE函数,可以实现基于不同条件的数据转换或格式化,同时保持较高的查询性能。例如,在报表生成或数据汇总时,DECODE...

Global site tag (gtag.js) - Google Analytics