JavaScript 有许多高级技巧可以提高代码的可读性和可维护性,本回答将介绍其中的一些技巧并给出示例。 1. 使用函数式编程 函数式编程可以使代码更加灵活、可复用、容错性强,是一种将函数看作第一等公民的编程范式...
博客文章增加TOC
博客文章是使用Markdown写的,有了TOC(Table of Contents)阅读起来体验更好,TOC就是所有h1组成的标签目录,点击后调到相应的位置。 获取所有h1标签 我用的是github_markdown库,在renderer的Header方法中可以获取,存...
Chrome简单插件开发,自动初始化gitalk评论
Chrome简单插件开发——自动初始化gitalk评论 gitalk增加手动初始化评论 我给博客增加了gitalk评论,确实蛮方便好用的,但是没有初始评论需要管理员去创建,还好它提供了一个参数来手动创建 createIssueManually:...
本站鼠标滑动效果(仙尘光标)
本站鼠标滑动效果(仙尘光标)大家可能比较感兴趣,我也是无意中从其他地方看到,摘取过来的。2019年4月愚人节的时候看到大名鼎鼎的[stackoverflow](https://stackoverflow.com/)网站上有这个效果,简单查了下发现代码还蛮好找的就截取过来了,如下代码欢迎大家使用,放在body闭...
JavaScript 栈、队列
Stack 栈,后进先出 class Stack { constructor() { this.list = [] } pop() { const t = this.top() this.list.pop() return t } push(...item) { this.list.push(...item) } ...
koa2处理get,post参数的常见方式
koa2处理get,post参数的常见方式 举几个常见的例子 url显示传参 根据文章id获取这篇文章的内容 url:https://www.ningto.com/post/5b8f371ce1d77b114b42306a 路由: app.use(route.get('/post/:id', Posts.show)) 处理: module.exports.show = asyn...
Javascript小技巧
删除数组尾部元素 一个简单方法就是改变数组的length值 const arr = [1, 2, 3, 4, 5, 6] arr.length = 3 console.log(arr) // [ 1, 2, 3 ] arr.length = 0 console.log(arr) // [] console.log(arr[2]) // undefiend 使用对象解构(object destructuri...
JAVA8 十大新特性详解
JAVA8 十大新特性详解 > 本教程将Java8的新特新逐一列出,并将使用简单的代码示例来指导你如何使用默认接口方法,lambda表达式,方法引用以及多重Annotation,之后你将会学到最新的API上的改进,比如流,函数式接口,Map以及全新的日期API “Java is still not dead—and p...
react native中使用protobufjs
javascript使用protobuf google官方已经支持了可以看[这里](https://github.com/google/protobuf/tree/master/js),我只是简单的试用了下没有深究,这篇文章介绍的是dcodeIOde的[protobuf.js](https://github.com/dcodeIO/protobuf.js)库,web端使用还是蛮方便的,但在react...
ES6 class介绍
定义类 ES6类并不是一个全新的东西:它们主要提供更方便的语法来创建老式的构造函数,javascript的类并不像其他面向对象语言C++,java中的类,这里的类只是语法糖,实际上还是基于原型链的方式。 类申明 定义类的一种方式是使用类的申明,为了申明一个类,你可以使用clas...
node.js中exports与module.exports区别
我们知道exports是对module.exports的引用,那么使用的过程中有什么区别呢? 使用方法 通常我们有两种导出方式,假如将他们都放在test.js文件中 给exports增加成员 exports.hello = function() { console.log('exports hello') } module.exports.hell...
mongodb模糊匹配正则转义
如果我要根据标题和内容搜索关键字,可以如下写法: return this.find({ '$or': [ {title: new RegExp(keyword, 'i')}, {content: new RegExp(keyword, 'i')} ] }) .sort({ 'pv': -1 }) .exec(); 但是,keyword关键字有特殊字符...
19个JavaScript常用的简写技术
三元操作符 当想写if...else语句时,使用三元操作符来代替。 const x = 20; let answer; if (x > 10) { answer = 'is greater'; } else { answer = 'is lesser'; } 简写 const answer = x > 10 ? 'is greater' : 'is lesser'; 短路求值 ...
给marked增加TOC(Table of content)
一直使用marked库解析Markdown,现在想给它增加TOC功能 使用marked解析markdown文本是很简单的,如:marked(markdownText)就可以得到解析后的html内容 初始化marked 引入库 var marked = require('marked'); 重写renderer.heading tocObj后面再介绍,返回的...
如何优雅的编写JavaScript代码
几乎每个大一点公司都有一个“运行时间长,维护的工程师换了一批又一批”的项目,如果参与到这样的项目中来,大部分人只有一个感觉——『climb the shit mountain』。 所以我们经常会说谁谁谁写的代码就像排泄物一样,为了避免成为别人嘴里的谁谁谁,所以我写的代码一般不注明作者...
js库支持CommonJs和浏览器的标准写法
现在github上的很多开源js库都同时支持CommonJs和浏览器,简单的介绍一下写法。 如有两个库A.js和B.js,B.js引用了A.js,如果我们要使用B.js库,那应该怎么写呢? A.js源码 (function(global, factory) { / CommonJS / if (typeof require === 'function' && ...
javascript原型和继承
对象和类 javascript到处都是对象,一个对象是由方法和属性(值)组成的实体(这里我们叫实例)。例如:javascript中的数组就是一个具有值的对象,同时也包括了push,reverse和pop等方法。 var aArray = [1, 2, 3]; aArray.push(3); aArray.reverse(); aArray.pop(); var...
javascript怎么实现类似如C++函数中使用静态数据
静态数据是一些不变的数据可以多次使用而不用频繁创建,C++中通常把他们放在cpp文件的include下面,或者如果其他地方不会用到的话可以直接写在要用到的函数里面。如果是javascript的话把它直接写在函数外面就是全局变量了这个肯定是不好的,放在函数里面每次运行函数的时候都...