标签: javascript

JavaScript 被忽视的细节

JavaScript 被忽视的细节

《JavaScript 权威指南》这本书从第四版开始,一直到第六版,每个版本我都逐字逐句读过几遍,然而每一遍下来的感受却完全不一样。上上周的周一,再次翻开了这本犀牛书, 这一次我是带着批判精神和研究精神过来的,所以看的时候也写下了一些感受和笔记,都是些容易被忽略的点,部分内容犀牛书上不一定有提到。

关于JavaScript调试的十来个小技巧

关于JavaScript调试的十来个小技巧

有时候在生产环境下我们发现了一些莫名奇妙的问题,然后忘了把sourcemaps放到这台服务器上,或者在看别人家的网站的源代码的时候,结果就 看到了一坨不知道讲什么的代码,就像下图。Chrome为我们提供了一个很人性化的反压缩工具来增强代码的可读性,大概这么用:

图解Javascript原型(prototype)链

图解Javascript原型(prototype)链

本文尝试阐述Js中原型(prototype)、原型链(prototype chain)等概念及其作用机制。上一篇文章(图解Javascript上下文与作用域)介绍了Js中变量作用域的相关概念,实际上关注的一个核心问题是:“在执行当前这行代码时Js解释器可以获取哪些变量”,而原型与原型链实际上还是关于这一问题。

看看国外的十三道 JavaScript 题,你能全部做对吗?

看看国外的十三道 JavaScript 题,你能全部做对吗?

以前看过一套 JavaScript 题目,借花献佛拿出来分享一下。附带了自己的理解和答案。有争议的地方,欢迎大家指出和讨论。

六个漂亮的 JavaScript6 技巧

六个漂亮的 JavaScript6 技巧

在这篇文章里,我将演示 6 种 ES6 新特性的使用技巧。在每个段落的末尾,我会指出它们在我的书 Exploring ES6 中的出处()

寻找头绪:编写可维护的 JavaScript

寻找头绪:编写可维护的 JavaScript

我曾经接手清理许多项目的代码,让我不得不重头开始的项目真心不多,不过我最近就遇到了一个。我从中学到了很多关于 JavaScript 代码组织的内容,以及最重要的是冷静,不要为你的前任抓狂。在这篇文章里,我想要让你知道我是怎么一步步处理项目代码的,告诉你我的经验。

JSON 的正确用法:Python、MongoDB、JavaScript与Ajax

JSON 的正确用法:Python、MongoDB、JavaScript与Ajax

本文主要总结网站编写以来在传递 JSON 数据方面遇到的一些问题以及目前采用的解决方案。网站数据库采用 MongoDB,后端是 Python,前端采用“半分离”形式的 Riot.js,所谓半分离,是说第一页数据是通过服务器端的模板引擎直接渲染到 HTML 中,从而避免首页两次加载的问题,

CSS vs JS动画:谁更快?

CSS vs JS动画:谁更快?

Javascript 动画怎么可能总是和 CSS transition 一样快,甚至更快呢?到底是什么秘密呢?Adobe 和 Google 是怎么做到让他们的富媒体移动网站的速度和 native app 媲美的?

javascript中的错误处理

javascript中的错误处理

这是关于JavaScript中异常处理的故事。如果你相信墨菲定律,那么任何事情都可能出错,不,一定会出错!这篇文章中我们来看下JavaScript中的出错处理。文章会覆盖异常处理使用的正反例,然后看下ajax的异步处理。

全栈JavaScript程序员的崛起

全栈JavaScript程序员的崛起

JavaScript 无处不在  在以前,JavaScript 程序员就是前端开发者的同义词,永远与浏览器绑在一起。但那已是昨日往事。Node.js 的崛起开启了一个新纪元,从此,JavaScript 程序员可能不再是被局限于浏览器的前端开发者了。相比其他高级程序语言,作为一名 JavaScript 程序员,你可以在更多的平台上发挥才能。但是现在让我们将目光放在两大主流领域上:浏览器和服务端。为什么我非要在这两者中做出选择呢?

统治 Web 的 JavaScript 准备要接管桌面了

统治 Web 的 JavaScript 准备要接管桌面了

曾几何时,通信网络曾经活跃过许多协议,那些协议在不同的场景下都有各自的优势。但是后来 TCP/IP 随着互联网的崛起而异军突起,最终形成一统天下的格局。而原本被视为不入流的 Web 前端玩具 JavaScript 现在似乎也在复制着类似的路径,先是渗透到 web 后端开发,然后甚至开始入侵到桌面了。最流行语言 JavaScript 会变成编程界的世界语吗?

JavaScript函数柯里化的一些思考

JavaScript函数柯里化的一些思考

言归正传,什么是函数柯里化?函数柯里化(curry)就是只传递给函数一部分参数来调用它,让它返回一个函数去处理剩下的参数。听得很绕口,其实很简单,其实就是将函数的变量拆分开来调用:f(x,y,z) -> f(x)(y)(z)。

那些容易被忽视的 JavaScript 细节

那些容易被忽视的 JavaScript 细节

《JavaScript 权威指南》这本书从第四版开始,一直到第六版,每个版本我都逐字逐句读过几遍,然而每一遍下来的感受却完全不一样。上上周的周一,再次翻开了这本犀牛书,这一次我是带着批判精神和研究精神过来的,所以看的时候也写下了一些感受和笔记,都是些容易被忽略的点,部分内容犀牛书上不一定有提到。

Twitter工程师聊JavaScript

Twitter工程师聊JavaScript

本文是Twitter软件工程师Bonnie Eisenman对JS现状的看法和对开发者的一点建议

从一行代码里面学点JavaScript

从一行代码里面学点JavaScript

从一行代码里面学点JavaScript,现如今,JavaScript无处不在,因此关于JavaScript的新知识也是层出不穷。JavaScript的特点在于,要学习它的语法入门简简单,但是要精通使用它的方式却是一件不容易的事。

JavaScript API 设计原则

JavaScript API 设计原则

什么是好的 API 设计:在自描述的同时,能达到抽象的目标。

为什么JavaScript也将征服VR世界

为什么JavaScript也将征服VR世界

这篇文章本应该在 2 个月前就出现了,但是一直都没有足够的动力去写。直到,我最近在玩知乎,也看到了一个类似的问题。加上这是一个无聊的小长假,就把这篇文章写出来。

JavaScript6里出现了哪些新语法、新特征?

JavaScript6里出现了哪些新语法、新特征?

JS的新版本 ES6/ECMAScript2015 在去年出来了,我们现在普遍使用的ES5是在2009年出来的,相隔这么多年,变化比较大,添加了一些很好用的特性

让你3分钟学会 javascript 闭包

让你3分钟学会 javascript 闭包

闭包,是 javascript 中重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMA规范给的定义,如果没有实战经验,你很难从定义去理解它。因此,本文不会对闭包的概念进行大篇幅描述,直接上干货,让你分分钟学会闭包!

2016 JavaScript 技术栈展望

2016 JavaScript 技术栈展望

如果你正在筹划新的前端项目或者重构现有项目,那么你需要认识到现在的前端开发环境已经今非昔比,这其中有太多的选择了:React、Flux、Angular、Aurelia、Mocha、Jasmine、Babel、TypeScript、Flow…… 它们的本意是将开发简单化,却无形中提高了学习成本,也给未来项目的维护带来了不确定性。

9款最好的JavaScript压缩工具

9款最好的JavaScript压缩工具

削减是一个从源代码中删除不必要的字符的技术使它看起来简单而整洁。这种技术也被称为代码压缩和最小化。在这里,我们为你收集了10个最好的JavaScript压缩工具将帮助您删除不必要的空格,换行符,评论,等等。这样,你将使你的源代码,无杂波。削减你的源代码将改善加载时间和Web应用的性能。

基于 JavaScript 的操作系统你听说过吗?

基于 JavaScript 的操作系统你听说过吗?

我想大多数人听说过 Node.js,但是你听说过 NodeOS 吗?没错,NodeOS,一个用 Node.js 写的操作系统。

2015 年 JavaScript 开发者调查报告

2015 年 JavaScript 开发者调查报告

年底将至,JavaScript 开发者调查也已经结束,此次调查总共有 5000 份回复,我真的迫不及待要分享这次调查的细节,感谢所有的参与者,这是 JavaScript 社区伟大的时刻。

阮一峰:JavaScript 模块的循环加载

阮一峰:JavaScript 模块的循环加载

通常,”循环加载”表示存在强耦合,如果处理不好,还可能导致递归加载,使得程序无法执行,因此应该避免出现

JavaScript:如何在对象中嵌入私有成员

JavaScript:如何在对象中嵌入私有成员

最近,我开发一个项目 Angular Cloud Data Connector, 帮助Angular开发者使用云数据,特别是 Azure移动服务, 使用WEB标准,像索引数据库(indexed DB)。我尝试建立一种方式,使得JavaScript开发者能将私有成员嵌入到一个对象中。