webpack2 示例之:Scope Hoisting 和 Code Splitting

2017-08-22
阅读 7 分钟
9.1k
原文链接:[链接]译者:@justjavac 这个示例演示了与代码拆分相结合的 Scope Hoisting。 这是示例的依赖图:(实线表示同步导入,虚线表示异步导入) 除 cjs 之外的所有模块都是 EcmaScript 模块。cjs 是 CommonJs 模块。 有趣的是,将所有模块放在单一范围(scope)内将无法正常工作,原因如下: 模块 lazy, c, d 和 cj...

Chrome 61 Beta:JavaScript 模块,桌面端的支付请求 API,Web Share API 和 WebUSB

2017-08-19
阅读 3 分钟
6.6k
除非另有说明,否则下述更改适用于 Android,Chrome OS,Linux,Mac 和 Windows 的最新 Chrome Beta 版本。

了解 V8 的字节码「译」

2017-08-18
阅读 4 分钟
6.2k
V8 是 Google 开发的开源 JavaScript 引擎。 Chrome、Node.js和许多其他应用程序都在使用 V8。本文介绍了 V8 的字节码格式—— 如果你了解关于字节码的基本概念,读起来会更加轻松。

从 V8 源码看 JS 数组排序的诡异问题

2017-08-12
阅读 3 分钟
5.4k
前几天一个朋友在微信里面问我一个关于 JS 数组排序的问题。 原始数组如下: {代码...} data 是个数组,数组的每一项都是一个拥有 value 作为 key 的对象,值为数字或者 undefined。 {代码...} 对数组的 value 进行排序,然后把排完序的数组进行 flat 处理。得到的结果如下: {代码...} 显然这没有达到我们的目的。 现在...

在 Chrome 中 JavaScript 数组到底占用了多少内存?

2017-07-16
阅读 2 分钟
11.9k
原文:How much memory do JavaScript arrays take up in Chrome?译者:justjavac 因为我(原作者)的代码使用的很大的内存,所以我看了一下字符串、对象、数字和数组分别占用了多少内存。 结果如下: 我觉得这些数据最大的挑战是,空数组或者空列表占用的内存太小了。 因此我创建了大量空列表,而不是每次重新使用相同...

使用 Headless Chrome 进行自动化测试

2017-07-13
阅读 3 分钟
6.8k
如果您想使用 Headless Chrome 进行自动测试,请不要再观望了!本文将教你如何使用 Karma 作为 test runner ,并配合 Mocha + Chai 进行测试。

你可能不知道的前端知识点

2017-07-04
阅读 1 分钟
2k
新建了一个 repo:justjavac/the-front-end-knowledge-you-may-dont-know 发掘被我们忽略的前端知识点。所有的讨论以 issues 的形式进行,任何人都可以在 issues 区围观讨论。 本 repo 的目的在于搜集、讨论,最终的内容会整理成文章、PPT、PDF 发布在 小密圈。 须知 #1 索引 #2 缘起 前一阵有人在微信群里面遇到了一个...

[译] TC39,ECMAScript 和 JavaScript 的未来(Part 1)

2017-07-01
阅读 9 分钟
8.1k
很荣幸能够和 Nicolás Bevacqua 同台分享。Nicolás Bevacqua 分享了《the Future of Writing JavaScript 》,我在其后分享了《面向前端开发者的V8性能优化》。如果想了解更多 V8 知识可以关注我的专栏:V8 引擎。

Chromium 新的弹窗机制以及 HTML 的 <dialog> 元素

2017-06-27
阅读 3 分钟
15.2k
自 1995 年 JavaScript 诞生之初,就包含了 3 个方法 alert()、confirm() 和 prompt()。在随后的 Chrome 版本中,Chrome 团队一直在修改原生弹窗的表现。

为您的 Node 性能选择最佳的 JS 引擎

2017-06-17
阅读 3 分钟
7.3k
原文是:The recent Node.js v8 version (not to be mistaken with V8, the JavaScript engine) has just been published.

一张神奇的 gif 图,可以显示自己的 MD5 值

2017-06-04
阅读 2 分钟
15.1k
这是一张神奇的 gif 图片,它可以显示自己的 MD5 值。 这张图片的 MD5 值是: {代码...} 原始图片地址:[链接] 相关链接: An animated GIF that shows its own MD5 Reddit:Animated GIF displaying its own MD5 hash • r/programming 文中讨论区也大致解释了图片的生成原理。 1979 年 Ralph Merkle 博士发表了关于单向...

[译]基于 React Router 4 的可复用 Layout 组件

2017-04-07
阅读 3 分钟
13.3k
本文翻译自:Reusing layouts in React Router v4 在 React Router V4 应用中,希望在每个路由上呈现一些默认的组件,比如页眉和页脚: {代码...} 在最新版本的 React Router V4 中可以很容易实现这一点,通过为特定的用例创建子布局。 创建默认布局 我们把每个页面都使用的布局作为默认布局。当页面路由和地址栏匹配的...

Chrome DevTools:在 Profile 性能分析中显示原生 javascript 函数

2017-03-29
阅读 3 分钟
7.7k
原生函数(native function)是 JavaScript 语言的一部分,这些函数有别于开发者编写的自定义函数。当我们在 profiler 中查看代码的调用栈时,这些函数是被过滤掉的。我们在 profiler 中看到的只有自己写的代码。

V8引擎深入研究目录贴

2017-03-08
阅读 1 分钟
13.5k
从我的网络 ID(justjavac)可以看出来,当我开始使用这个 ID 的时候并不是一个前端程序员,我主攻的语言是 java 和 C,当我开始决定阅读 JVM 源码时,他们告诉我说当时进步最大、性能提升最快的是 V8,于是就走上了前端的不归路。

V8 性能再升级,支持更多 ES2015+ 语法优化

2017-02-28
阅读 2 分钟
3k
这几天 javascript 最火的新闻莫过于 koa2 发布了正式版。目前最新版本是v2.0.1,koa2 团队宣称 “只要 nodejs 还未支持 async,koa2 就一直不发布正式版”,随着 node v7.6.0 的到来,全栈工程师们期待已久的 koa2 也终于正式版了——完美支持 async 函数,优雅的解决异步回调。

使用 D8 分析 javascript 如何被 V8 引擎优化的

2017-02-08
阅读 3 分钟
9k
在上一篇文章中我们讲了如何使用 GN 编译 V8 源码,文章最后编译完成的可执行文件并不是 V8,而是 D8。这篇我们讲一下如何使用 D8 调试 javascript 代码。

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

2017-01-25
阅读 3 分钟
4.7k
在如今的主流 Web 编程语言中,如 PHP 或 Python 等,都包含幂运算符(一般来说符号是 ^ 或者 **)。而最新的 ES7 中也增加了对幂运算的支持,使用符号 **,最新的 Chrome 已经提供了对幂运算的支持。

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

2016-12-27
阅读 1 分钟
2.4k
本文的宗旨是:This is just for fun。这段代码没有任何实用的价值,但是通过这段代码,你可以了解 javascript 被忽略的知识点和语法。

移动Web滚动性能优化: Passive event listeners

2016-12-25
阅读 4 分钟
34.4k
今年的 Google I/O 已经过去一段时间了,大部分人都关注了一些新产品的发布,比如 Allo 和 Duo、Android N、Daydream、Android Studio、Firebase……还有 PWA。

React:"don't fuck it up like Google did with Angular"

2016-12-25
阅读 3 分钟
3.3k
React 核心开发人员 sebmarkbage 大神在 GitHub 开了个 issues,用来征询社区对 JSX 2.0 的建议。 到底增加(改动)了什么呢? #4 - 不对属性和文本中的 HTML 转义标识进行转义 #21 - 属性支持表达式 #23 - 传参时使用对象简写表示 #25, #51, #64 - 属性是单一符号或有小括号时,大括号可以省略 而且还包括了: #39 - 隐...

微信小程序开发资源汇总 awesome-wechat-weapp(不定期更新)

2016-09-23
阅读 1 分钟
9.8k
本文托管在github上,不定期更新:justjavac/awesome-wechat-weapp 最后更新时间:2016-09-24 06:22:10 官方文档 小程序开发文档 小程序设计指南 小程序开发者工具 新闻报道 微信正式开放内测“小程序”,不开发APP的日子真的来了?(36氪) 关于微信小程序(应用号),我能透露的几个细节(可能吧) 你的产品适不适合做微信小...

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

2016-09-18
阅读 2 分钟
2.7k
为什么很多人会有这种疑惑,是因为犯了想当然的错误——望文生义。Math.min() 作为一个函数,返回的并不是最小值;同理 Math.max() 返回的也不是最大值。他们返回的是参数的最大值和最小值,而我们却没有传递任何参数。

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

2016-09-18
阅读 1 分钟
4.7k
考虑如下代码: {代码...} 按照常规思路,这段代码应该输出 true,毕竟最小值应该小于最大值。但是当我们运行这段代码时,却神奇的输出了 false。 为什么会这样呢? 还得去查查 MDN 的相关文档。 The Math.min() function returns the smallest of zero or more numbers. Math.min 的参数是 0 个或者多个。如果是多个参...

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

2016-08-07
阅读 2 分钟
2.7k
蒋百里写《欧洲文艺复兴史》,梁启超阅后大为赞赏,并评论此书为“极有价值之作,述而有创作精神”。蒋百里便请梁启超为此书作序。梁启超觉得简简单单写几句不够,既然此书写的是欧洲,那我序言就写写中国吧,于是序言写完竟比原书字数还多。这可怎么办,喧宾夺主了,于是把这篇序取名为《清代学术概论》,单独出版,那请...

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

2016-06-02
阅读 1 分钟
5.8k
从今日起,我的公众号正式接受外部投稿。 投稿被采纳后,打赏的所有金额都归投稿者。对于高质量文章作者,我会额外赞助 10-100 元。 投稿内容 特此声明:本公众号不接受纯技术细节类文章,文章里面的代码不宜过多。 虽然本公众号是技术类公众号,但是我希望文章讨论是思想、思路,而不是具体代码实现。 所以本公众号不接...

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

2016-05-16
阅读 2 分钟
8.5k
起初温州动车出轨,他们抓了程序员; 我没有出声, 因为我不写动车代码。 接着携程网出现故障,他们抓了程序员; 我没有出声,因为我不写旅游代码。 然后小米手机在天猫的数据造假,他们抓了程序员; 我没有出声, 因为我不写电商代码。 后来穿行删除代码,他们抓了程序员; 我没有出声, 因为我不删代码。 最后他们来抓...

提升影响力,打造程序员的个人品牌

2016-04-14
阅读 2 分钟
3k
前几天 @安卓大王子 在微博上给我发私信,要我一张照片,准备收集一下 GitHub 活跃用户的情况。正好我这些日子正在准备 5 月 7 号 SegmentFault 主办的 D-Day 天津场。我平时很少照相,于是翻了翻手机相册,把去年参加稀土掘金时的照片发给了他。

开发者对 npm 公司不满,unpublish 了自己的所有模块

2016-03-23
阅读 2 分钟
7k
今天凌晨,一个开发者对NPM公司不满,unpublish了自己的所有模块。其中包括被广泛使用的left-pad,导致Babel、ReactNative、Ember等大量工具构建失败。目前,Babel已经紧急发布了不包括该模块的新版本。

SegmentFault 社区专访 justjavac:「懒惰」是程序员最大的美德

2016-03-07
阅读 4 分钟
13.8k
大家好,我是 justjavac,一名前端工程师。熟悉我的人可能知道我还有一个中文昵称「迷渡」,取「雾失楼台,月迷津渡」之意,一般用在豆瓣或者其他非技术社区。凡是在技术类社区写专栏或吐槽,都使用 justjavac 这个 ID。我不太会做自我介绍,大家还是直接在百度或 Google 搜索 「justjavac」 吧。

【译】如何百倍加速 Lo-Dash?引入惰性计算

2015-12-16
阅读 3 分钟
4.2k
我一直以为像 Lo-Dash 这样的库已经不能再快了,毕竟它们已经足够快了。Lo-Dash 几乎完全混合了各种 JavaScript 奇技淫巧(YouTube)来压榨出最好的性能。