自定义博客皮肤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)
  • 收藏
  • 关注

原创 ES2018 新特征之:异步迭代器 for-await-of

1. 概述在 ECMAScript 2015(ES6) 中 JavaScript 引入了迭代器接口(iterator)用来遍历数据。迭代器对象知道如何每次访问集合中的一项, 并跟踪该序列中的当前位置。在 JavaScript 中迭代器是一个对象,它提供了一个 next() 方法,用来返回序列中的下一项。这个方法返回包含两个属性: done 和 value。迭代器对象一旦被创建,就可以反复调用 ne

2018-02-26 00:00:00 2477

原创 ES2018 新特征之:异步迭代器 for-await-of

1. 概述在 ECMAScript 2015(ES6) 中 JavaScript 引入了迭代器接口(iterator)用来遍历数据。迭代器对象知道如何每次访问集合中的一项...

2018-02-26 00:00:00 261

原创 一个关于模板字符串的使用技巧,以及 String.raw() 函数

在做前端开发的时候,我们经常会需要在 JavaScript 文件中书写 html 或者 css。在这种场景下,使用模板字符串是个很好的方式,这样就不需要进行复杂而丑陋的字符串拼接了。SomeHats 在 twitter 上给出了一个使用模板字符串的技巧:仔细看两张图,应该观察到不同了吧。直接使用模板字符串赋值 consttrired=... ; 时,编辑器没有对模板字符串进行语法高亮。而使用 ta

2018-02-07 00:00:00 1724 1

原创 一个关于模板字符串的使用技巧,以及 String.raw() 函数

在做前端开发的时候,我们经常会需要在 JavaScript 文件中书写 html 或者 css。在这种场景下,使用模板字符串是个很好的方式,这样就不需要进行复杂而丑陋的字...

2018-02-07 00:00:00 827

原创 现代编程语言最有趣的 10 大特性

Ten interesting features from various modern languages阅读时间大概 2 分钟如今大多数“现代”语言都依然使用老旧的 C-style 语法。我们看一下编程语言的年代:Lisp (1958)、Smalltalk (1972)、Objective-C (1984)、Haskell (1990)、OCaml (1996)、等等。这些都是上个世纪的语言了

2018-02-06 00:00:00 1601

原创 React 是否保持 state 更新的顺序?

stackoverflow 有人提问:Does React keep the order for state updates?我知道 React 的状态更新是异步执行的,为了性格优化,状态是批量更新的。所以你永远不能确信在调用 setState 后状态是否更新了。但是你是否可以确认 setState 调用后状态的更新顺序呢?比如以下情况:相同的组件?不同的组件?考虑以下按钮点击的例子:是否有可能

2018-02-05 00:00:00 527

转载 微信小程序漏洞:可下载任意微信小游戏源代码

本文转载自【小专栏平台】公众号,由独立开发者朱鹏飞投稿。如果大家想要微信跳一跳小游戏以及其他十几个小游戏源码,大家可以关注【小专栏平台】公众号,回复“微信小游戏”即可获取到。截止原作者目前推送文章的时候( 2018年1月1日23:50分 ),微信官方已经修复了这个漏洞,但是我感觉文章还是可以分享出来给诸位开发者,安全问题真的不容忽视呢。另外说两点:1、据说有些老版本的微信还是可以抓包获取包地址;2

2018-01-04 00:00:00 21529 7

转载 React 中 state render 到 html dom 的流程分析

本文由 @xieyu 创作,已获原作者授权。QuestionsReact 的 component 的 lifecycle 在 react 中是怎么被调到的.分析 jsx => element tree => fiber tree => html dom 在 react 中的流程.react 中的 fiber tree 的建立和执行, 以及异步的 schedule.研究工具和方法chrome deb

2017-12-26 00:00:00 406

原创 React 中 state render 到 html dom 的流程分析

原文链接:https://github.com/xieyu/blog/blob/master/React/from-jsx-to-dom.md作者:xieyuReact 中 state render 到 html dom 的流程分析QuestionsReact 的 component的 lifecycle 在 react 中是怎么被调到的.分析 jsx => element tree => fib

2017-12-20 00:00:00 764

原创 零配置 JS 打包工具 Parcel 初体验

Parcel 是一个新的 JavaScript 打包工具,其特点是零配置、速度快。今天使用 Parcel 打包了一个 React 的 HelloWorld 应用,记录一下开发过程。0. 新建目录mkdir react-helloworldcd react-helloworld1. 初始化 npmyarn init -y或npm init -y此时会创建要给 package.json 文件,文件内容

2017-12-07 00:00:00 802

原创 从一个 JSON.parse 错误深入研究 JavaScript 的转义字符

JSON.parse 将一个 JSON 字符串转换为 JavaScript 对象。JSON.parse('{"hello":"\world"}')以上代码输出:{  hello: "world"}是一个 JavaScript 对象,但是仔细观察会发现, "\world" 变成了 "world"。那么我们继续运行如下代码:JSON.parse('{"hello":"\\world"}')出抛出异常:

2017-11-18 00:00:00 1607

原创 Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍

昨天 @hashseed 为 Node.js 提交了一个 issue:RFC: speeding up Node.js startup using V8 snapshot#17058hashseed 是一名 Google 工程师,是 V8 开发者,同时也为 Node.js 贡献代码。在 issue 中 hashseed 写道:我最近研究了 Node.js 的启动代码,我认为我们可以通过使用 V8

2017-11-17 00:00:00 2196

原创 Atom 和 VSCode 同一天发布神器:实时编码分享

今天 Visual Studio 和 Atom 同一天公布支持实时同步编辑代码的功能。与其他开发人员一起编写代码,了解同行的想法和学习新的技能。不幸的是,编写代码很难协调。今天 GitHub 发布了一款神器 Teletype for Atom,使得社交编码比以往任何时候都更容易,这是一种与远程协作者直接分享代码的新方法。无缝协作无延迟地分享。使用 Teletype,您可以邀请一个或多个队友直接进入

2017-11-16 00:00:00 3460

原创 VSCode 团队卖萌,重新把 Logo 改回了蓝色

为了这次 Logo 修改,微软 VSCode 团队开始卖萌了。在 10 月 24 的博客 The Icon Journey 中写道:In Monty Python and the Holy Grail, the bridge keeper asks Sir Lancelot three questions before allowing him to cross the Bridge of Dea

2017-10-29 00:00:00 1536

转载 HTML DOM 级别以及一些小坑

API (Web 或 XML 页面) = DOM + JavaScript(脚本语言)问题问题从一个异常开始。有网友写了如下代码。function download() {      console.log(1);} onclick="download()">下载当点击按钮的时候,却报错了:UncaughtTypeError:downloadisnotafunction报错信息很奇怪: downl

2017-10-27 00:00:00 558 1

转载 在 JavaScript 中为什么 typeof null 的结果是 object?

javascript 中的 null:既是对象,又不是对象,史称「薛定谔的对象」。typeof null === 'object';null instanceof Object === false而null instanceof null会抛出异常:Uncaught TypeError: Right-hand side of 'instanceof' is not

2017-10-24 00:00:00 4084 1

转载 由一段小代码引发的关于“表达式”和“语句”的探讨

本文摘自我在《知识星球》今天的分享,点击文章后面的查看原文可以加入我的星球(是需要付费的)。今天有人群里发了一段代码let foo = {};foo[foo['red'] = 1] = 'red';并感慨道:才发现 js 还可以这样写。。我不知道他为啥如此感慨,遂追问了一句,他的回答是:以前不知道赋值操作还有返回值。听到这个回复我,我

2017-10-19 00:00:00 409

原创 开发者速查表 CheatSheet 鼠标垫来了,你想要哪款?

程序员都离不开速查表(CheatSheets),我平时也爱收集一些速查表。之前就有个想法做个 CheatSheets 网站,前几天偶然在 github 上发现了一个类似的网站,于是 fork 了代码,并做了简单的 UI 翻译。网址:http://devhints.cn 或者点击文章左下角的查看原文。终归还是有些不太方便,于是又萌生了一个想法:定制一批 CheatShee

2017-10-16 00:00:00 683

原创 揭秘:微软高管为什么让测试工程师“吃狗粮”呢?

今天翻译 Facebook 文章 “React 16: A look inside an API-compatible rewrite of our frontend UI library” 时,遇到一个词语 Dogfooding。顾名思义这个词应该是“狗粮”的意思吧。于是用 Google 翻译了一下,得到的结果居然是 “内部测试”。出于好奇心,就查了查这个词语的典故。

2017-09-30 00:00:00 664

原创 惊爆:V8 团队的一个错误,使得整个互联网变慢

Chrome 61 发布后,被爆存在安全漏洞,而 Chrome 团队在修复安全漏洞的过程中发现一些漏洞是由 V8 的 escape analysis 引起的,编号为 #765433 #752423 等。escape analysis 学名是逃逸分析。在编译优化理论中,逃逸分析是一种确定指针动态范围的方法——分析在程序的哪些地方可以访问到指针。V8 v6.1 及更早版本使用了一个复杂

2017-09-29 00:00:00 955

原创 JS 预分配数组长度,到底是变慢还是变快?

在我的上一篇文章 JavaScript 在 V8 中的元素种类及性能优化 中写道:V8 的类型转换只能通过格子向下过渡。一旦将单精度浮点数添加到 Smi 数组中,即使稍后用 Smi 覆盖浮点数,它也会被标记为 DOUBLE。类似地,一旦在数组中创建了一个洞,它将被永久标记为有洞 HOLEY,即使稍后填充它也是如此。一旦数组被标记为有洞,它永远是有洞的 - 即使它被打包了!从那时

2017-09-25 00:00:00 663

原创 V8 中的垃圾收集(GC),图文指南

原文标题:Garbage collection in V8, an illustrated guide 原文链接:https://medium.com/@_lrlna/garbage-collection-in-v8-an-illustrated-guide-d24a952ee3b8本指南与我迄今为止所写的其他指南都不同,我在里面添加了一些草图。我用草图描绘了垃圾收集(GC)的整个概念

2017-09-12 00:00:00 667

原创 从女儿出生到现在,我只看了她一眼,为女儿祈福

结婚六年多了,前几天老婆终于给我生了一位小公主,老婆辛苦了。已经过了预产期近一周的时间,女儿才出生。虽然出生的晚些,但是我的小公主却只有四斤多。我在产房外等了四五个小时后,护士告诉我:女儿,顺产,需要留院观察,你去签字。之前的产检就显示胎儿小一些,在生产前做胎心监护的结果也不是非常乐观,医生建议刨腹产,并告知顺产的风险:婴儿随时都有窒息的可能。但是老婆坚持要顺产,从来没

2017-09-01 00:00:00 432

原创 JavaScript 的新特性:类的 #private 字段

这是什么,如何使用,为什么需要? 一边听“Noise Pollution” —— Portugal. The Man,一边阅读本文简直就是享受 JavaScript 标准的第二阶段(Stage 2)加入了类私有字段。它还没有最终确定,但 JavaScript 标准委员会认为这个特性会被开发出来并最终纳入标准(虽然它可能还会改变) 它的语法(当前)看起来像这样: cl

2017-08-27 05:37:00 479

原创 深入了解一个超快的 CSS 引擎: Quantum CSS (也称 Stylo)

本文转载自:众成翻译译者:Mactavish链接:http://www.zcfy.cc/article/4041原文:https://hacks.mozilla.org/2017/08/inside-a-super-fast-css-engine-quantum-css-aka-stylo或许你听说过 Quantum 项目。 它是对于 Firefox 内部的一个重大改写,以

2017-08-26 00:00:00 488

原创 JavaScript 工作机制:V8 引擎内部机制及如何编写优化代码的 5 个诀窍

本文转载自:众成翻译译者:网络埋伏纪事(本文已获译者授权)链接:http://www.zcfy.cc/article/4033原文:https://blog.sessionstack.com/how-javascript-works-inside-the-v8-engine-5-tips-on-how-to-write-optimized-code-ac089e62b12e几周

2017-08-24 00:00:00 1169

原创 JavaScript 工作机制:第 1 部分

本文转载自:众成翻译译者:网络埋伏纪事(本文已获译者授权)链接:http://www.zcfy.cc/article/3965原文:https://blog.sessionstack.com/how-does-javascript-actually-work-part-1-b0bacc073cf随着 JavaScript 越来越受欢迎,开发团队正在将其用在技术栈的各个方面,

2017-08-23 00:00:00 303

原创 说出来你可能不信,这个 APP 最初是用来支付的

很早之前就有消息称支付宝在开发小程序,前几天终于亮相了,没想到简直和微信小程序如此相似。这就尴尬了,山寨王开发的产品居然被山寨了。随后支付宝发布了道歉信,承认在编写代码时 copy 了微信小程序,但是在底层上使用了不同的技术。若干年后~“说出来你可能不信,这个APP最初是用来支付的。” “爷爷,你们为什么用一个直播软件付钱呢?”“说出来你可能不信,这个APP最初是用来支付的。” “爷爷,你们为

2017-08-21 00:00:00 358

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

原文来自 Chrome 官方博客:Chrome 61 Beta: JavaScript modules, Payment Request API on desktop, Web Share API, and WebUSB,由于公众号不支持超链接,可以点击文章末尾的查看原文。除非另有说明,否则下述更改适用于 Android,Chrome OS,Linux,Mac 和 Windows 的最新 Chro

2017-08-19 00:00:00 658

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

前几天一个朋友在微信里面问我一个关于 JS 数组排序的问题。 原始数组如下: var data = [  {value: 4},  {value: 2},  {value: undefined},  {value: undefined},  {value: 1},  {value: undefined},  {v

2017-08-12 16:52:50 334

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

原文地址:http://www.mattzeunert.com/2016/07/24/javascript-array-object-sizes.html 因为我(原作者)的代码使用的很大的内存,所以我看了一下字符串、对象、数字和数组分别占用了多少内存。 结果如下: 我觉得这些数据最大的挑战是,空数组或者空列表占用的内存太小了。 因此我创建了大量空列表,而不是每次重新使用相同的空列表。

2017-07-16 22:02:56 1153

原创 使用 Headless Chrome 进行自动化测试

本文翻译自:Automated testing with Headless Chrome,作者是 Google 工程师 Eric Bidelman。 文章中链接较多,可以点击文章末尾的阅读原文查看这些链接。 先做个小调查: 如果您想使用 Headless Chrome 进行自动测试,请不要再观望了!本文将教你如何使用 Karma 作为 test runner ,并配合 Mocha +

2017-07-13 19:52:17 806

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

缘起 前一阵有人在微信群里面遇到了一个问题: 当输入框在最底部的时候,弹起的虚拟键盘会把输入框挡住。 于是我发给他一个 API: Element.scrollIntoViewIfNeeded(opt_center),故名思意,就是在需要的时候将元素滚动到可视区域。 对于前端 API 来说,我们最关心的是它的浏览器兼容性: 随后他又问我: 怎么样才能学到这些新的前端技

2017-07-04 19:43:44 363

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

原文:TC39, ECMAScript, and the Future of JavaScript  作者:Nicolás Bevacqua 由于微信不能加链接,可以点击后面的阅读原文。 上周,我在中国深圳的腾讯前端大会上发表了与本文同名的演讲。在这篇文章中,我根据 PonyFoo 网站的格式重新编辑了一遍。我希望你喜欢它! TC39 是什么? TC39 指的是技术委员会(

2017-07-01 15:51:04 378

原创 当我们参加前端技术峰会时,我们该听什么

上周腾讯在深圳举办的 TFC 前端峰会已经结束了,那票是~相~当~的~贵啊,近 1000 块钱一张,但是依然挡不住前端开发者的热情。 我最感兴趣的还是现场 review 抽奖程序代码,回家之后便写了一篇:论腾讯 TFC 抽奖程序作弊的可能性,以及代码中存在的 bug。 作为大会首个分享的是 Nicolas Bevacqua,他分享了 “the Future of Writing JavaScr

2017-06-28 23:21:57 350

原创 论腾讯 TFC 抽奖程序作弊的可能性,以及代码中存在的 bug

腾讯 TFC 前端大会已经圆满结束,除了我的航班一直延误之外,还有 2 个遗憾:一个是 V8 定制版的 T 恤没有按时寄到,另一个就是没有抽中 iPhone 7。 但是抽奖代码绝对是会场的一大亮点,而且在场的所有参会者也有幸参与了对此次抽奖程序进行 code review,(认真脸) 当抽奖代码公布后,全场惊呼加爆笑。 主持人首先输入 Math.random 然后回车,控制台输出:

2017-06-26 22:57:46 876

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

本文翻译自 Picking the best JS engine for your Node app’s performance。 tl;dr Node.js 正在飞速的发展。目前 Node.js 8 已经发布。同时,基于 ChakraCore 的 Node.js 版本也正在积极开发中。 原文是:The recent Node.js v8 version (not to be mista

2017-06-18 21:15:09 404

原创 在虚拟的世界中,自由、平等永远是真正的程序员永久的追求

知乎上有人问:“一个人生前活的凄惨无比,但死后闻名于世。这样的名声意义何在?对他自己有什么意义吗?” 于是想起了 Philip Katz 的故事,我 2008 年写的第一篇博客就是他。 PS:点击阅读原文有福利。 2000 年 4 月 14 日,在美国威斯康星州密尔沃基的一家汽车旅馆里,人们发现了一具年轻人的尸体,检查得知这个人的死因是酗酒、饮酒过量导致的死亡。死者被发现的时候,手中还握着

2017-06-10 23:22:29 377

原创 一张可以显示自己 MD5 值的 gif 图

本文共 2051 字,其中包括 3 张图片,6 个外部链接。读完大概需要 20 - ∞ 分钟。由于公众号不支持外部链接,可以点击文章最后的阅读原文。 这是一张神奇的 gif 图片,它可以显示自己的 MD5 值。 这张图片的 MD5 值是: f5ca4f935d44b85c431a8bf788c0eaca 原始图片地址:https://shells.aachen

2017-06-04 21:33:06 883

原创 ES6 中的 this & super:babel 和 typescript 都错了

好久不写了,今天推篇简单的。 众所周知,javascript 的继承方式也和 C、Java 有很大不同,javascript 使用原型继承,虽然在 ES6 中引入了关键字 class,也只是语法糖而已。看如下代码: class A {}; typeof A; 我们定义了一个类 A,但是查看 A 的类型却不是 class,也不是 object,而是 functi

2017-05-23 20:20:53 299

空空如也

空空如也

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

TA关注的人

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