代码

从前有个代码长这样

if (a) {if (b) {c}
} else {if (d) {c}
}

后来长这样

if (a && b  || !a && d) {c
}

再后来长这样。

if (a? b : d) {c
}

every 解决foreach中的return

有时候,我们需要从数组中筛选一些东西,filter当然可以,但是有些定制化的东西就很难,而且,在foreach中不能return。every 解决foreach中的return

array.every( item => {if (...){// some codereturn false} else {return true}
})

用!~代替 === -1

不过可能不容易看懂

!~ -1 // true!~[1].indexof(1) // false

常用code utils

函数节流

2次执行间隔为x ms

var tr = function (time, fn) {this.fn = fn;this.time = timethis.buffer = [];this._lastTriggerTime = 0;
}
tr.prototype._flushIfNeeded = function() {var start = Date.now();if ( this.buffer.length <=0 || start - this._lastTriggerTime <= this.time) {return;}this.fn(this.buffer.pop());this.buffer = [];this._lastTriggerTime = Date.now();setTimeout(this._flushIfNeeded.bind(this), this.time);
}
tr.prototype.trigger =function (arr) {this.buffer.push(arr);this._flushIfNeeded();
}
var nf = new tr(1000, function(arr){console.log(arr);
});
nf.trigger('hallo');
nf.trigger('hallo');
nf.trigger('hallo');

deepClone

function deepClone(obj){var res=Array.isArray(obj)?[]:{};for(var key in obj){if (typeof obj[key]=="object") {res[key]=deepClone(obj[key]);}else{res[key]=obj[key];}}return res;
}

Function.prototype.bind shim

function bind (context) {var target = thisvar bindArgs = Array.prototype.slice.call(arguments, 1)function bound () {var callArgs = Array.prototype.slice.call(arguments)if (this instanceof bound) { // 判断bind后的函数是不是通过new来调用的。如果是就指向自己,不然就指向contextreturn target.apply(this, callArgs.concat(bindArgs))} else {return target.apply(context, callArgs.concat(bindArgs))}}// 实现继承,让bound函数生成的实例通过原型链能追溯到target函数// 即 实例可以获取/调用target.prototype上的属性/方法var Empty = function () {}Empty.prototype = target.prototypebound.prototype = new Empty()  // 这里如果不加入Empty,直接bound.prototype = target.prototype的话.改变bound.prototype则会影响到target.prototype,原型继承基本都会加入这么一个中间对象做屏障bound.prototype.constructor = bound;  //  constructor修正,防止调用constructor函数出错return bound
}

用fixup 和autosquash让git commit 更清楚

某个正常的提交

git add .
git commit -m "feature A"
git log --graph --pretty=oneline --abbrev-commit

如果我的feature A有bug可以这样操作:

git add .
git commit --fixup 8831bd1 -> feature A的id

然后用autosquash合并两个commit

git rebase -i --autosquash 4dd17ad -> feature A的前一个id

git会自动帮你找出fixup的提交,和正常提交合并,你只需要在vim里面直接保存就可以了。

转载于:https://www.cnblogs.com/dh-dh/p/8645837.html

随手记一个漂亮的code相关推荐

  1. 【转】博客美化(3)为博客添加一个漂亮的分享按钮

    阅读目录 1.社会化分享 2.选择一个分享按钮 3.添加到博客园博客 博客园美化相关文章目录:博客园博客美化相关文章目录 在前2篇博客"博客美化(1)基本后台设置与样式设置"与&q ...

  2. 好看的php验证码,一个漂亮的PHP验证码_PHP教程

    一个漂亮的PHP验证码 验证码在WEB应用中非常重要,通常用来防止用户恶意提交表单,如恶意注册和登录.论坛恶意灌水等. 自己可以导入字体,可以按照自己的额需要随便修改. 一个漂亮的验证码,体现出网站的 ...

  3. vuejs 数组定义字段_一个漂亮的文本字段,用于格式化VueJS制作的电话号码

    vuejs 数组定义字段 电话号码输入 (vue-phone-number-input) A beautiful text field to format phone numbers made wit ...

  4. 一个漂亮的移动端评价页面

    源代码下载:一个漂亮的移动端评价页面 效果图: 这个水印影响效果了. 源代码下载:一个漂亮的移动端评价页面 文件结构图: HTML代码: <!DOCTYPE html> <html& ...

  5. java相册_java 这是一个漂亮的电子音乐相册JAVA小程序 联合开发网 - pudn.com

    java 所属分类:Java编程 开发工具:Java 文件大小:14337KB 下载次数:4 上传日期:2016-12-01 17:29:09 上 传 者:关关 说明:  这是一个漂亮的电子音乐相册J ...

  6. 如何在自己的信息管理系统里集成第三方权限控制组件 - 设计一个漂亮的WEB界面...

    我们大家都梦想有个完美的各种信息管理系统,其实一个人又会数据库,又会C#.NET程序,还要精通HTML,还要精通CSS,更要精通JS,还有精力去写很多东西,又要调试前台又要调试后台,而且每开发一个系统 ...

  7. 一个漂亮的输出MySql数据库表结构的PHP页面

    经常为了方便和直观,我们会首先直接在数据库中设计出表,但是接下来又要将表的结构和设计编写在设计文档中,以便编码的时候可以直观的查询,一旦数据库表非常多,字段非常多的时候,这无疑是件非常郁闷的工作. 这 ...

  8. myeclipse如何换一个漂亮的主题

    熟悉hbuilder的童鞋们都知道,在开发的时候主题有好几种可以随意切换,但是在开发java时用到的myeclipse的主题是否可以随意切换呢?如果可以在哪里切换,今天我们就来看看如何修改myecli ...

  9. 一个下载Google code源码的 绿色、迷你工具 MiniSVN v1.0

    一个下载Google code源码的 绿色.迷你工具 MiniSVN v1.0 想下载Google code中的源码 不需要装各种软件,只需要一个小工具即可! 如何使用? 访问一个谷歌开源项目网站,比 ...

最新文章

  1. hashmap value可以为空吗_美团面试题:Hashmap结构,1.7和1.8有哪些区别(最详细解析)...
  2. 各种 Optimizer 梯度下降优化算法回顾和总结
  3. Web App、Hybrid App与Native App的设计差异
  4. 9.1 正则介绍_grep(上);9.2 grep(中);9.3 grep(下)
  5. 如何使用Java代码给图片增加倒影效果
  6. VMware下主机与虚拟机通信问题
  7. python写appium_案例分享,Python +appium做登录功能
  8. 文艺平衡树 Splay 学习笔记(1)
  9. 博弈论之软件测试的价值
  10. 数组使用方法集合(建议收藏)
  11. (转)黑石帝国崛起的30年
  12. JAVA-生命游戏多线程
  13. 欧姆字符的编码c语言,欧姆符号怎么打
  14. MSN机器人 博客助手 for I-Favourite
  15. C语言求一元二次方程的根,这题很简单嘛?看看这种想法很惊奇!
  16. 这4个文档排版方式掌握了,工作效率提高的不止一点点!
  17. 腾讯企业邮箱api java_腾讯企业邮箱API实现同步成员资料
  18. 生成HTML注册页面
  19. RPA如何应用于银行渠道建设
  20. 【已发导读】CEEEA2.0 模型用于能源-环境-经济分析的动态CGE 模型

热门文章

  1. java语言开发的中间件名称,值得收藏!
  2. 清华大学信息 计算机科学与技术,清华大学信息科学与技术国家实验室
  3. 面试中 项目遇见的难点答案_5月6日周一晚八点CCtalk直播2019年江苏省考公务员面试冲刺类型题难点解析突破举一反三...
  4. java 每隔一小时运行_每隔一小时执行一次 Full GC 分析排查
  5. voxelnet_苹果最新机器学习论文:使用VoxelNet进行3D物体检测
  6. Javascript 操作二进制数据
  7. netbeans php 断点调试,windows7 + iis7 + fastcgi + php5 + netbeans + xdebug 调试 php
  8. centos 访问网页重启php_php项目上线基于docker运行php+源码编译实现Nginx+阿里云RDS连接实现...
  9. mysql 去重 根据id_点赞功能,用MySQL还是Redis
  10. 微信小程序四种父子相互传值方式