自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(153)
  • 收藏
  • 关注

原创 每个前端程序员都有一个V8梦(附福利)

对于每个前端程序员来讲都有一个终极理想,那就是搞懂 javascript 引擎是如何工作的。 从我的网络 ID(justjavac)可以看出来,当我开始使用这个 ID 的时候并不是一个前端程序员,我主攻的语言是 java 和 C,当我开始决定阅读 JVM 源码时,他们告诉我说当时进步最大、性能提升最快的是 V8,于是就走上了前端的不归路。 我从去年底开始在知乎写 V8 专栏,记录一下自己学习

2017-04-21 22:54:32 861

原创 使用 Node.js\/D8 分析 javascript 如何被 V8 引擎优化的

排版规范:标下划线的为外部超链接,点击后面的查看原文可以点开这些链接。蓝色的为公众号内链接,点击可以直接打开。 在上一篇文章中我们讲了如何使用 GN 编译 V8 源码,文章最后编译完成的可执行文件并不是 V8,而是 D8。这篇我们讲一下如何使用 D8 调试 javascript 代码。 如果没有 d8,可以使用 node 代替。 新建文件 add-of-ints.js,输入以下内容:

2017-03-13 21:46:19 483

原创 如何优雅的处理 Promise 的 if-else 分支

本文总计 1659 字,阅读大概需要 15 分钟。 疑问 为了解决丑陋的回调问题,基本上 Promise 已经成为标配。但是当 Promise 遇到 if-else 分支,需要走不同的链时如何处理? 举个栗子 if true  .then(do1())  .then(do2())  .then(do3())  .then(do4()) e

2017-03-12 18:09:05 915

原创 透过 V8 引擎看 ES2015 语法 async\/await 的本质

这几天 javascript 最火的新闻莫过于 koa2 发布了正式版。目前最新版本是v2.0.1,koa2 团队宣称 “只要 nodejs 还未支持 async,koa2 就一直不发布正式版”,随着 node v7.6.0 的到来,全栈工程师们期待已久的 koa2 也终于正式版了——完美支持 async 函数,优雅的解决异步回调。 这一切的功劳还要归功于 V8 引擎。知乎上关于 async 的

2017-02-28 19:18:15 615

原创 知识付费时代来临,欢迎一起交流分享

最近几天小密圈突然火起来了,使人们又重新开始思考知识变现。这几天我陆续加入了 43 个圈子,现在只存留了 9 个付费圈。 在此之前我就已经陆续退出了各种群,转而加入一些付费群。有时我偶尔组织一些线下技术交流也都是收费的,哪怕只有10块钱。原因很简单:如果收费了,参加者就会把自己当做一个参与者,而不是旁观者。他会觉得这次分享会是他的分享会;如果不收费,他会觉得这次分享会是组织者的分享会。通过钱(付

2017-02-22 22:26:12 356

原创 [V8内核系列] 开启对象属性的“fast”模式

预计阅读时间为 20 分钟,读懂时间为 120 分钟。 在 Bluebird 库中有一段匪夷所思的代码(/src/util.js): function toFastProperties(obj) {    /*jshint -W027*/    function f() {}    f.prototype = obj;    ASSERT("%

2017-02-18 22:08:01 649

原创 从 V8 的单元测试源码看“同值相等”

看单元测试是了解一个产品接口(API)的重要途径,通过单元测试可以把程序作为一个黑盒,只观察程序的接口——接收哪些几个参数?什么类型的参数?返回什么值?等等 V8 源码中和 javascript api 相关的测试用例在 /test/mjsunit 目录及其子目录,mjsunit 是 mini jsunit 的缩写。之前我写过两篇文章,通过 math-min-max.js 中的测试用例发现了一个

2017-02-06 17:42:22 175

原创 V8 使用“常量折叠”优化技巧,导致幂(**)运算有时候不等于 Math.pow()

在如今的主流 Web 编程语言中,如 PHP 或 Python 等,都包含幂运算符(一般来说符号是 ^ 或者 **)。而最新的 ES7 中也增加了对幂运算的支持,使用符号 **,最新的 Chrome 已经提供了对幂运算的支持。 但是在 javascript 中,** 运算有时候并不等于 Math.pow(a,b),在最新的 Chrome 55 中: Math.pow(99,99) 的结果是 3

2017-01-25 23:50:05 309

原创 JavaScript 函数式编程的性能问题

clean-code-javascript 是 github 上的一个项目,旨在教 javascript 程序员写出简洁易于维护的代码,其中有一条是 Favor functional programming over imperative programming。作者以两段代码说明: Bad: const programmerOutput = [  {    na

2017-01-24 21:59:13 747

原创 javascript 之谜系列:为什么 [1,2] + [3,4] 不等于 [1,2,3,4]?

js 作为一门广泛使用在 web 上的动态语言,其语法有很多被误解的地方,本文通过“为什么 [1,2] + [3,4] 不等于 [1,2,3,4]”来简单介绍一下 js 的加法运算和数据类型

2017-01-03 21:58:58 496

原创 详解 javascript 的 delete 操作符

这篇文章从《JavaScript面向对象编程指南》一书中关于 delete 的错误讲起,详细讲述了关于 delete 操作的实现, 局限以及在不同浏览器和插件(这里指 firebug)中的表现

2017-01-02 00:00:37 305

原创 justjavac的2016:热门文章汇总

今年博客总访问量达到了一千万,整理了一下之前公众号的文章

2017-01-01 11:59:45 239

原创 为什么这样也能运行? [ ].concat[1,2,3]

为什么这样也能运行? [ ].concat[1,2,3]。是 javascript 的新语法,还是黑科技。。。

2016-12-27 22:41:31 432

原创 当你决定把代码开源之前先选择一个合适的 License

这几天同事 @leoashin 折腾了一个自己的博客,问我选择什么协议。这让我想起了之前我遇到的 2 件事。

2016-12-26 21:48:29 436

原创 [Web性能优化]Chrome 51 引入新特性:Passive event listeners

在 Chrome 的 touch 事件监听器的页面中,80% 的页面都不会调用 preventDefault 来阻止事件的默认行为。在滑动流畅度上,有 10% 的页面增加至少 100ms 的延迟,1% 的页面甚至增加 500ms 以上的延迟

2016-12-18 23:09:06 618

原创 [中文]React:"don't fuck it up like Google did with Angular"

本文不是翻译,只是标题引用了 nkkollaw 的一句回复,因为我特意在标题前面加了[中文]二字以提醒读者

2016-12-16 22:35:30 241

原创 当世界各地的人听不懂另一个人在说啥的时候,他会怎么发牢骚呢?

当世界各地的人听不懂另一个人在说啥的时候,他会怎么发牢骚呢?最后一个太强大了~~~

2016-11-07 21:07:17 308

原创 昨天收到PHPHub创始人Summer的道歉,已经线下和解

孔子曰: 君子之过也,如日月之食焉。过也,人皆见之;更也,人皆仰之。 昨天早上 Summer 和我通了电话,此事存在一些误解。 我发表那篇文章的目的并不是想引起争论,在文中我并没有说发哥抄袭我,因为如果认定抄袭,确实有些证据不足。 作为一个管理员不应该随意使用自己的特权排挤社区用户,毕竟

2016-09-29 07:05:19 1436

原创 昨天收到PHPHub创始人Summer的道歉,已经线下和解

昨天收到PHPHub创始人Summer的道歉,已经线下和解,请继续支持 PHPHub 社区。

2016-09-29 07:05:19 236

原创 justjavac加盟在线回声公司,现开始招募团队 | 天津

justjavac加盟在线回声公司,现开始招募团队,坐标天津

2016-09-27 21:55:06 1263

原创 预测下即将出版的关于微信小程序的书籍

预测一下出版界,以下书籍即将出版:《微信小程序从入门到精通》、《微信小程序权威指南》、《微信小程序实战手册》、《深入浅出微信小程序》、《二十一天精通微信小程序》……

2016-09-24 04:25:07 713

原创 微信小程序开发资源汇总 awesome-wechat-weapp

最近微信小程序的发布又点燃了前端开发的热潮,昨晚把网上相关的文章整理汇总了一下

2016-09-23 05:32:35 793

原创 为什么 Math.min() 比 Math.max() 大?(续)

昨天了一篇文章:Math.min() 为什么比 Math.max() 大?今天继续讨论这个话题

2016-09-17 22:24:54 654

原创 Math.min() 为什么比 Math.max() 大?

按照常规思路,这段代码应该输出 true,毕竟最小值应该小于最大值。但是当我们运行这段代码时,却神奇的输出了 false。

2016-09-15 22:37:03 501

原创 JavaScript、jQuery、AJAX、JSON 这四个之间的关系?

有一天,你们人类不满足网页只是一些文字和图片的展示,希望页面上可以有更多功能。

2016-08-11 22:52:05 935 1

原创 为什么 ++[[]][+[]]+[+[]] = 10?

能在 StackOverflow 问这个问题的人是个天才,而且回答这个问题的人更是一个天才!!

2016-08-10 22:22:51 201

原创 GitHub for Windows 使用了哪些开源库(一)

GitHub 作为全球最大的开源社区,GitHub for Windows 自然也是构建在强大的开源软件之上,那么 GitHub for Windows 都用到了哪些开源软件呢?

2016-08-09 23:59:32 421

原创 两个月之前为 Phodal 新书《自己动手设计物联网》作序,今天终于正式开售了

想要签名版的戳进去

2016-08-06 23:14:31 384

原创 HTTP状态码451:基于法律上的原因,我不能向你展示网页内容

HTTP 451 Unavailable For Legal Reasons 当用户请求访问某个经政府审核等查核方法后认定不合法的来源时,就会显示这个错误代码

2016-06-27 14:57:42 7245 1

原创 我是 justjavac,在「公众号」回答任何问题

终于收到了「值乎」工具包的内测邀请,现在可以回答任何用户的问题了。

2016-06-21 16:23:03 233

原创 知乎万粉俱乐部:每个群都会「水」,我总觉得我不会

入群条件:万粉,万赞。每个群都会「水」,我总觉得我不会。

2016-06-16 15:01:15 732

原创 微信公众号(justjavac)正式接受外部投稿,所有打赏金额归投稿者

我的公众号正式接受粉丝投稿了:凡投稿被采纳者,所有打赏金额均归投稿者

2016-06-02 14:39:22 588

原创 我为什么“明目张胆”地和异乡好居撕逼?因为我是千千万万普通程序员的一名

我无法选择沉默,因为我是千千万万普普通通的程序员中的一名。虽是萤火虫,我们依然努力发光。

2016-05-16 13:03:12 611

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除