使用try/catch的好处是可以将很多可能的错误代码包在一个块中,然后只使用一个异常捕获。并且第一条执行语句并不再需要接收处理error。但现实生活中,基本上需要对每一处异常需要单独处理,这样使用try/catch的代码就会显得非常臃肿。
go语言使用类似javascript error first的原则,将异常变成了一个参数:
data, err := db.Query("SELECT ...")
if err != nil { return err }
OurJS网站之前一直使用Bing实现站内搜索,基本原理是搜索时添加关键字 site:ourjs.com 即可限定只搜索 ourjs.com 网站内的内容。因此在实现时需要通过JavaScript改变最终的搜索词。
但有用户反应对中文支持不太友好,并且提交 Sitemap 后,百度收录速度明显快于Bing。现在已经换成了百度搜索。
Vue是非常优秀的能实现双向数据绑定的前端框架,可极大提高开发效率。与在 React 中集成 jquery及原生javascript编写的组件一样。React 中也可集成vue。
这里我们通过一个 React+Vue 实现的登录页面为例,介绍如何将二者结合使用。本教程是React Hooks系统教程中的一部分。
loadtest 是支持通过 npm 安装的一个性能测试工具, 支持 windows和linux,在 node.js 的项目中使用非常方便, 全局安装:
npm install -g loadtest
使用: 连续测试下面的服务20秒,保持100个并发
loadtest http://localhost:8054/test -t 20 -c 100
当我们使用“老式”方法编写网页时,通常不太需要关注JavaScript内存管理。
但 SPA(单页应用程序)的兴起促使我们需要关注与内存相关的编码实践。
在本文中,我们将探讨导致JavaScript内存泄漏的编程模式,并说明如何改善内存管理。
qr-scanner是一个支持HTML5网页扫描条形码、二维码的开源库。
轻量级:〜48.7 kB(〜12.4 kB压缩后)。
性能优内存占用少。
在WebWorker中运行,不阻塞主进程
在彩色QR码上获得性能优
根据我们的基准测试,该项目较jsqrcode提升约2-3倍。
错误识别率低。
支持扫描网络摄像头的以及扫描图片文件。
使用defineProperty可以定义属性是否可以被枚举、修改和删除, configurable 对象的属性是否可以被删除
var o = { a:1 }
Object.defineProperty(o, 'a', { configurable: false })
delete o.a
console.log(o) // {a: 1}
css3添加了两个与混合模式相关的属性,这种方法的基本原理是将图片和背景颜色混合,从而变成新的颜色。
如果图片是含有透明背景的PNG图片时,可使用filter,一行CSS就可改造图片颜色的色相、饱和度、对比度等,原理类似PS中的滤镜。
Webkit 浏览器,像Chrome,Safari,Opera 支持非标准方法 ::-webkit-scrollbar 来创建自定义滚动条。
node.js中可以通过 __dirname 获取当前文件的目录。那么如何在被调用函数中获取调用者的文件地址和函数名以及行数位置?可使用Error.prepareStackTrace来获取StackTrace数组对象,获取调用者文件信息。
var getCallerPath = function() {
var orig = Error.prepareStackTrace;
Error.prepareStackTrace = function(_, stack) { return stack; };
var err = new Error;
var stack = err.stack;
Error.prepareStackTrace = orig;
// stack[0]为当前函数, stack[1]为调用者,stack[2]为上层调用者
return stack[2].getFileName()
}