• 2017 年 JavaScript 现状调查报告总结

    Posted by : lon.y@qq.com on 2018年1月31日

    前段时间国外的开发者针对2017年JavaScript的现状做了一个调查并给出了相关调查报告。本文针对他的调查报告总结进行了翻译,如有问题欢迎留言。 我最近公布了2017年版年度JavaScript调查的结果,该调查覆盖了了23000多名开发者。 这份调查结果揭示了很多信息,从流行趋势到薪资细分。如果你还没有看过这边调查,你会想自己看一看。但在所有这些数据中,以下10点是我最令我关注的。 即使您已经看到了调查结果,您也可能希望查看我们刚刚添加的新特性和意见

    阅读全文...

  • 2017年 JavaScript 框架回顾 — 后端框架

    Posted by : lon.y@qq.com on 2018年1月31日

    本文是2017年 JavaScript 框架回顾系列的最后的一篇文章,主要介绍 JavaScript 的后端框架情况。 从上图中可以看到,Express 作为用 JavaScript 编写的后端服务的主流解决方案,占据了后端框架使用率的绝大部分,其次的四个最大框架对比于 Express 来说,占用率都很小。 到目前为止,我们所讨论的几乎所有框架的绝对使用量都在不断增加。自2013年以来,Express 的使用率已经增长了6000%。之所以 Express

    阅读全文...

  • 从0到1,开发一个动画库(2)

    Posted by : lon.y@qq.com on 2018年1月31日

    传送门:从0到1,开发一个动画库(1) 上一节讲到了最基础的内容,为动画构建“帧-值”对应的函数关系,完成“由帧到值”的计算过程。这一节将在上节代码的基础上谈谈如何给一个完整的动画添加各类事件。 在添加各类事件之前,我们先对_loop循环函数进行一些改进: _loop() { const t = Date.now() - this.beginTime, d = this.duration, func = Tween[this.timingFunction]

    阅读全文...

  • JS 在微信、微博、QQ、Safari 唤起 App 的解决方案

    Posted by : lon.y@qq.com on 2018年1月30日

    背景 最近在做微信、QQ、微博中使用js唤起App,之前也做过类似的功能,不过比较粗糙,考虑的情况不太全,而且那已经是很久之前的事情了,很多技术都已过时,现在有体验更好,功能更加完善的唤起技术,之前的很多的方案,到了现在都已是不太必要了,现在通过这篇文章分享给大家一个全面的、最新的唤起方案,希望对大家有帮忙。 最终实现的效果 用户点击H5页面的打开App或者下载按钮(这个按钮可能在一个下载入口页、各种分享页面的吸顶或吸底的banner),如果用户已经安装了

    阅读全文...

  • 如何构建你的第一个 Vue.js 组件

    Posted by : lon.y@qq.com on 2018年1月30日

    记得当那天使用 CakePHP 开发的时候,我很喜欢它简易入门的特性。其文档不仅结构严密,详尽,而且对用户友好。多年以后,我在 Vue.js 上找到了同样的感觉。然而,与 Cake 相比,Vue 文档还有一个缺点:(缺乏)真实的项目教程。 不管框架的文档有多好,对与所有人来说都是不够的。阅读有关的概念并不是总能帮助你了解更多东西,也不能帮助你理解如何使用它们来实际做出某些事情。如果你和我一样,你会在实践过程中学到更多,在你编码的时候参考文档,因为你需要它们

    阅读全文...

  • 从0到1,开发一个动画库(1)

    Posted by : lon.y@qq.com on 2018年1月30日

    传送门:从0到1,开发一个动画库(2) 如今市面上关于动画的开源库多得数不胜数,有关于CSS、js甚至是canvas渲染的,百花齐放,效果炫酷。但你是否曾想过,自己亲手去实现(封装)一个简单的动画库? 本文将从零开始,讲授如何搭建一个简单的动画库,它将具备以下几个特征: 从实际动画中抽象出来,根据给定的动画速度曲线,完成“由帧到值”的计算过程,而实际渲染则交给开发者决定,更具拓展性 支持基本的事件监听,如onPlay、onStop、onReset 、onE

    阅读全文...

  • 2017 年崛起的 JS 项目

    Posted by : lon.y@qq.com on 2018年1月30日

    共 4741 字,读完需 8 分钟,速读 2 分钟。我有幸参与了该项目的部分中文版翻译、校对工作,感谢 Sacha Grief,Micheal Ramberu 的统计整理,以及 Frank Xu 的翻译工作,完整版本请猛击阅读原文。 和 2016年 一样,又到了我们回顾 2017年 Javascript 领域发展与变化的时候。 通过对比各项目过去 12 个月在 GitHub 上新增 star 数量,来评估其在 2017 年度的受关注程度,进而选出 2017

    阅读全文...

  • Javascript 调试命令——你只会 Console.log() ?

    Posted by : lon.y@qq.com on 2018年1月30日

    Console 对象提供对浏览器控制台的接入(如:Firefox 的 Web Console)。不同浏览器上它的工作方式是不一样的,但这里会介绍一些大都会提供的接口特性。 Console对象可以在任何全局对象中访问,如 Window,WorkerGlobalScope 以及通过属性工作台提供的特殊定义。 它被浏览器定义为 Window.Console,也可被简单的 Console 调用。 最常用的方法就是Console.log(),就是在控制台输出内容。刚

    阅读全文...

  • 2017年 JavaScript 框架回顾 — React生态系统

    Posted by : lon.y@qq.com on 2018年1月30日

      首先看看与 React 有关的软件包的生态系统。在 Facebook 构建 React 之初,就有许多来自于开源社区第三方库的软件包。这些软件包使用 React 补充其它功能,以便提供完整的应用程序解决方案。当然,安装包中也存在着提供相似功能的彼此竞争关系。 React Router   丰富的 Web 应用程序具有的一个共同特点就是:提供了多个“路由”。这些“路由”本质上是不同的功能块,在浏览器中表现为单独的 URL。React 不需要为简单的应用程

    阅读全文...

  • 如何继承 Date 对象?由一道题彻底弄懂 JS 继承

    Posted by : lon.y@qq.com on 2018年1月30日

    前言 见解有限,如有描述不当之处,请帮忙及时指出,如有错误,会及时修正。 ———-长文+多图预警,需要花费一定时间———- 故事是从一次实际需求中开始的。。。 某天,某人向我寻求了一次帮助,要协助写一个日期工具类,要求: 此类继承自Date,拥有Date的所有属性和对象 此类可以自由拓展方法 形象点描述,就是要求可以这样: // 假设最终的类是 MyDate,有一个getTest拓展方法 let date = new MyDate(); // 调用Date

    阅读全文...