Javascript代码编写的逻辑冗余
数据冗余,用空间换取空间。
最常见的就是,关系型数据库设计,故意加其它table出现过的字段,然后查询某些数据就不用跨表查询,这样查询效率较高,这是优点。
优点之后是缺点,缺点就是,修改数据,要跨表修改。
那么,逻辑冗余呢?
我遇到的情况之一就是,js自身的bug了,就是浮点数运算,偶尔会算着算着,突然冒出个结果是.0000000000之类。
(这个呢,本身就是语言错误,那么我们要不要进入这个语言的源代码,来改写我们的js代码。可以,但代价高。
而且,语言自己也会升级,当发现这是个bug,下个版本大多数情况下会修复。于是你以前写的代码很可能被废弃了。)
于是,在js浮点数计算里面,基本用toFixed(n)来保证你要的精确度,不止一次使用,可能的话,处处使用。
用代码数量换取结果的准确性。cpu对于同个逻辑执行好几次。
因为有时候,对于某段代码的执行结果,你也不敢确定。尤其是修改别人的代码。这时候你就要逻辑冗余。
优点就是,保证运算的结果准确性。
缺点就是,下次修改代码,处处修改。
另一个逻辑冗余的例子:
var i,j,temp,array_length = array.length;
for(i=0; i<array_length; i++){//第n次
for(j=0; j<array_length; j++){//筛选出最大值,调换
if(array[i] < array[j]){
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
return array;
}
上述例子,是冒泡排序。
在第二个for循环里面,其实没必要每次都循环array_length次,这样会增加判断次数,从而增加cpu负担。但是结果还是一样。
从性能上说,这不是块好代码。
但从代码的记忆上,和编写上,是块好代码。
转载于:https://www.cnblogs.com/samwu/archive/2012/07/02/2573612.html
Javascript代码编写的逻辑冗余相关推荐
- 纯javascript代码编写计算器程序
今天来分享一下用纯javascript代码编写的一个计算器程序,很多行业都能用到这个程序,例如做装修预算.贷款利率等等. 首先来看一下完成后的效果: 具体代码如下:(关注我的博客,及时获取最新WEB前 ...
- 使用Javascript代码编写一个“杭州亚运会倒计时”网页
一.需求 使用Javascript代码编写一个"杭州亚运会倒计时"网页,要求适合于手机上展示.时间能精确到秒,显示的时间格式,可自己定,例如:560天15时36分20秒. 二.实现 ...
- 如何为javascript代码编写注释以支持智能感知
在使用Visual Studio做开发的时候,智能感知是非常方便的.从VS2008开始,提供了对javascript的智能感知支持.例如 上述代码中,我们先用document对象的getElement ...
- 如何优雅的编写 JavaScript 代码
几乎每个大一点公司都有一个"运行时间长,维护的工程师换了一批又一批"的项目,如果参与到这样的项目中来,大部分人只有一个感觉--"climb the shit mounta ...
- 深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点
才华横溢的Stoyan Stefanov,在他写的由O'Reilly初版的新书<JavaScript Patterns>(JavaScript模式)中,我想要是为我们的读者贡献其摘要,那会 ...
- 深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点(转)
才华横溢的Stoyan Stefanov,在他写的由O'Reilly初版的新书<JavaScript Patterns>(JavaScript模式)中,我想要是为我们的读者贡献其摘要,那会 ...
- 编写高质量JavaScript代码绳之以法(The Essentials of Writing High Quality JavaScript)翻译...
原文:The Essentials of Writing High Quality JavaScript 才华横溢的Stoyan Stefanov,在他写的由O'Reilly初版的新书<Java ...
- 如果让莎士比亚、海明威编写JavaScript代码
本文作者Angus Croll是Twitter工程师.JavaScript迷.文学迷,并且非常喜欢作家海明威.他在梦中"梦见"一些名人编写JavaScript代码,不同的作家呈现出 ...
- php 怎么写个定时自理器,教你编写更加稳定、可读性强的JavaScript代码的示例
每个人都有自己的编程风格,也无可避免的要去感受别人的编程风格--修改别人的代码."修改别人的代码"对于我们来说的一件很痛苦的事情.因为有些代码并不是那么容易阅读.可维护的,让另一个 ...
- 《编写可测试的JavaScript代码》——1.4 小结
本节书摘来自异步社区<编写可测试的JavaScript代码>一书中的第1章,第1.4节,作者: [美]Mark Ethan Trostler 译者: 徐涛 更多章节内容可以访问云栖社区&q ...
最新文章
- “大数据系统软件国家工程实验室”建设项目通过验收
- 【Quartz】Quartz
- python-15:装饰函数之一
- 【总结】循序渐进,有三AI不得不看的技术综述(超过100篇核心干货)
- PHP进行图片下载的时候,出现图片损坏,无法打开(实质原因,多输出了一个空白字符ZWNBSP )
- Maven精选系列--发布jar包到Nexus私库
- java递增_java-8 – 如何按组递增
- Python私有化与poperty方法
- 修改system.img的大小限制
- phpMyAdmin源码配置过程
- 爱奇艺技术分享:轻松诙谐,讲解视频编解码技术的过去,android项目开发实战入门明日科技
- 计算机音乐对应的数字,音乐和数字之间的关系
- 将APPDATA 迁出C盘
- 2019冬令营集训1月7-10日总结
- 王家林人工智能AI第九节课:AI的上帝视角:神经网络能够完成各种计算模式的根本原因及神经网络能够识别图片宇宙密码 老师微信13928463918
- 2016 工作、生活与得失
- 新书来了 | 邀您一起来看看
- Golang学习日志 ━━ gin-vue-admin实现多数据库db-list
- const与const
- table标签中cellspacing和cellpadding,border的意思?
热门文章
- RDN:Residual Dense Network for Image Super-Resolution
- UnboundLocalError: local variable 'XXX' referenced before assignment
- 数据分析中会常犯哪些错误,如何解决? 三
- 机器学习,参数之-学习率设置
- LaTeX报错 Difference (2) between bookmark levels is greater (hyperref)	than one, level fixed.
- Ajax无刷新评论的PHP代码,PHP Ajax实现页面无刷新发表评论
- Ipa-medit:针对重签名IPA的内存搜索和修复工具
- mysql里判断_mysql里如何使用判断语句?
- Eclipse 下载安装
- 09-Mysql数据库----外键的变种