创建ESLint插件 现在已经有很多实用的ESLint插件了。在Tumblbug,我们是eslint-config-airbnb和eslint-plugin-react的粉丝。然而,随着项目规模的扩大,你会感受到添加自定义规则来确保开发人员遵循好的实践的必要……

翻译完成于 

当你需要拷贝一个数组的全部或者部分到一个新数组的时候,优先使用map和filter而不是forEach。 咨询工作的好处之一是我可以看到无数的项目。这些项目在规模、使用的编程语言和开发人员的能力方面差别很大。虽然有很多我觉得应该废弃的模式,但是在JavaScr……

翻译完成于 

在这篇博文中,介绍了一种快速设置常量的奇淫技巧(类似于枚举值,但是并没有封装在命名空间里)。这是一个具有教育意义的难题,而不是你应该在代码中实际使用的东西。 一个简单的版本 TypeScript枚举值 作为参考,考虑下面TypeScript的枚举值(JavaS……

翻译完成于 

虽然ES2015已经引入了许多开发人员期待已久的语言特性,但还有一些新特性不太为人所知和理解,其好处也不太清楚——比如symbols。 symbol(符号)是一种新的原始数据类型,一个确保不会和其它符号冲突的唯一令牌。从这个意义上讲,你可以把符号看作是一种UU……

翻译完成于 

简介 这一章专门讨论了ECMA-262-5 规范的新概念之一 — 属性特性及其处理机制 — 属性描述符。 当我们说“一个对象有一些属性”的时候,通常指的是属性名和属性值之间的关联关系。但是,正如在ES3系列文章中分析的那样,一个属性不仅仅是一个字符串名,它还包……

翻译完成于 

CSS预处理器,如Sass和Less,使得CSS代码易于组织和维护。通过提供变量、混合、循环等特性,使得CSS具有动态编写的能力,从而减少重复性工作,提高开发速度。 最近,CSS开始添加一些动态特性。CSS变量(自定义属性)已经加入规范,并且获得了大多数浏览……

翻译完成于 

JavaScript中关于模式匹配有一个处于stage 0阶段的提案。在这篇文章中,我们会讲解这个提案的内容和作用。 提案文档中照常会有一些示例代码,下面是其中之一。 let length = vector => match (vector) { {……

翻译完成于