在 Stack Overflow 的 2019 年开发者调查中,VS Code 成为了最受欢迎的开发工具,遥遥领先其他的开发工具。

执行测试文件,测试环境是 node v12.15.0。
$ node testPerformance.js
callback done 1
callback done 0
async done 13
可以看到,按顺序执行同一个空函数4千次,用时为0~1,即在1毫秒内完成。
用async/await方式执行,用时12~14毫秒之间。
不过如果只执行一次,对性能的影响微乎其微。不过在高并发场所,回调函数的性能要优于async/await
另外此方法还支持输出到流,比如说浏览器输出流,或命令行终端:
zip('./zip-util.js', process.stdout, function() {
console.log(arguments)
})可以用 start 命令用来启动一个单独的窗口来运行指定的程序:
最近 node.js 一个比较出名的 http request 模块停止维护了。其实这个模块已经变得非常臃肿,模块依赖过多,体积过大,接口不统一。
其实现在node.js的http模块已经非常完善,几行代码就能自己写一个。模拟post指定 data 即可:
request({ url: 'http://ourjs.com/home', data: { abc: 1 } }, function(err, response, data) {
console.log(data)
})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()
}webpack是目前比较流行的前端build工具,本质上是一个模块打包器。合并压缩JavaScript,css,图片等。
目前有很多开源项目使用webpack进行打包。
css3添加了两个与混合模式相关的属性,这种方法的基本原理是将图片和背景颜色混合,从而变成新的颜色。
如果图片是含有透明背景的PNG图片时,可使用filter,一行CSS就可改造图片颜色的色相、饱和度、对比度等,原理类似PS中的滤镜。
