在最近的项目中要使用到一个格式化文件大小的算法,于是不假思索写了如下代码:

function formatSize(size){
if(size<1024){
return size+"B";
}else if(size <1048576){
return parseFloat(size/1024).toFixed(2)+"KB"
}else if(size <1073741824){
return parseFloat(size/1048576).toFixed(2)+"MB"
}else {
return ">1GB"
}
}

一共写了11行代码,那么是不是可以精简一下呢?想到对于纯粹的求值操作可以使用三目运算符号,代码修改如下:

function formatSize(size){
    return size<1024?size+"B":size<1048576?parseFloat(size/1024).toFixed(2)+"KB":size<1073741824?parseFloat(size/1048576).toFixed(2)+"MB":">1GB";
}

效果相当明显,同样的功能用三目运算符仅3行代码就实现了所有功能,而且代码更干净。

总结(参照以上示例代码):

使用三目运算符的优势:精简代码,减少了解释器所需要解析的代码行数。从这个意义上来讲,合理使用三目表达式能够帮助我们优化前端代码。

使用三目表达式的坏处:代码易读性差,不如使用if语句明了。

前端优化建议:合理利用JavaScript的条件运算符的更多相关文章

  1. YAHOO 34 条前端优化建议

    雅虎团队经验:网站页面性能优化的34条黄金守则 1.尽量减少HTTP请求次数       终端用户响应的时间中,有80%用于下载各项内容.这部分时间包括下载页面中的图像.样式表.脚本.Flash等.通 ...

  2. YAHOO 35条前端优化建议(转)

    Yahoo!的 Exceptional Performance团队为改善 Web性能带来最佳实践.他们为此进行了一系列的实验.开发了各种工具.写了大量的文章和博客并在各种会议上参与探讨.总结出了一系列 ...

  3. html前端优化建议

    1. css 尽可能的放到head里面,且避免css表达式 [@media 类似] 2. js 尽可能的放到</body>之前 <script>do something< ...

  4. [转] Web前端优化之 Javascript篇

    原文链接: http://lunax.info/archives/3099.html Web 前端优化最佳实践之 JavaScript 篇,这部分有 6 条规则,和 CSS 篇 重复的有几条.前端优化 ...

  5. Web前端优化最佳实践及工具集锦

    Web前端优化最佳实践及工具集锦 发表于2013-09-23 19:47| 21315次阅读| 来源Googe & Yahoo| 118 条评论| 作者王果 编译 Web优化Google雅虎P ...

  6. 转:浅谈CSS在前端优化中一些值得注意的关键点

    前端优化工作中要考虑的元素多种多样,而合理地使用CSS脚本可以在很大程度上优化页面的加载性能,以下我们就来浅谈CSS在前端优化中一些值得注意的关键点: 当谈到Web的“高性能”时,很多人想到的是页面加 ...

  7. web前端优化整理(转)

    如今浏览器能够实现的特性越来越多,并且网络逐渐向移动设备转移,使我们的前端代码更加紧凑,如何优化,就变得越来越重要了. 开发人员普遍会将他们的代码习惯优先于用户体验.但是很多很小的改变可以让用户体验有 ...

  8. 前端笔记知识点整合之JavaScript(三)关于条件判断语句、循环语句那点事

      一.条件分支语句 条件分支语句,也叫作条件判断语句,就是根据某种条件执行某些语句,不执行某些语句. JS中有三种语法是可以表示条件分支的 1.1 if……else…… 条件分支的主力语法,这个主力 ...

  9. 前端优化点(此文转载 http://mp.weixin.qq.com/s/6mVVKmqDL_xYl15AeoJTWg)

    此文转载自:http://mp.weixin.qq.com/s/6mVVKmqDL_xYl15AeoJTWg (原文地址) 围绕前端的性能多如牛毛,涉及到方方面面,以下我们将围绕PC浏览器和移动端浏览 ...

随机推荐

  1. Redis快速入门:初识Redis

    [IT168 专稿]在之前的文章中介绍了<Redis快速入门:选择Key-Value Store>,今天给大家介绍Redis的入门知识.Redis是一个开源的使用ANSI C语言编写.支持 ...

  2. mycat的安装及使用 看这一篇就够了

    1.环境准备 ​ 本次使用的虚拟机环境是centos6.5 ​ 首先准备四台虚拟机,安装好mysql,方便后续做读写分离和主从复制. 192.168.85.111 node01 192.168.85. ...

  3. Spring Cloud Alibaba 之 Nacos

    Nacos 技术讲解 一提到分布式系统就不的不提一下 CAP 原则 什么是CAP CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency).可用性(Availability ...

  4. 题解0004:单词接龙(洛谷P1019)

    题目描述:已知一组单词,给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙"中出现两次),在两个单词相连时,其重合部分合为一部分. 题 ...

  5. ES6中数组新增的方法-超级好用

    Array.find((item,indexArr,arr)=>{}) 掌握 找出第一个符合条件的数组成员. 它的参数是一个回调函数,对所有数组成员依次执行该回调函数. 直到找出第一个返回值为t ...

  6. 教你识别一些sequence的相关问题

    摘要:通过一些自定义的视图或者查询语句,批量识别集群的sequence相关问题 本文分享自华为云社区<GaussDB(DWS)运维 -- sequence常见运维操作>,作者: 譡里个檔. ...

  7. spring集成mongodb简单使用和测试方式

    @EnableMongoRepositories @ComponentScan(basePackages = "cn.example") @Configuration public ...

  8. 请说出作用域public,private,protected,以及不写时的区别?

    这四个作用域的可见范围如下表所示.说明:如果在修饰的元素上面没有写任何访问修饰符,则表示friendly.作用域    当前类  同一package  子孙类   其他packagepublic    ...

  9. jQuery--筛选【过滤函数】

    之前选择器可以完成的功能,筛选也提供了相同的函数 筛选函数介绍 eq(index|-index) 类似:eq()index:正数,从头开始获得指定所有的元素,从0算起,0表示第一个-index:负数, ...

  10. Maria DB数据库基础知识

    Maria DB连接 与MariaDB建立连接的一种方法是在命令提示符下使用mysql二进制文件. Maria DB命令行登录数据库服务: mysql -u root -p -- 换行输入密码 上面给 ...