1. 挑选 npm 模块很费事?掌握这些技巧就能事半功倍!
熟悉 Node 或前端 JavaScript 工作的同学都知道,社区中的可用模块有数十万之多。
开发人员经常会提问或抱怨,比如说:
“开发易,选模块难…”
“X 模块和 Y 模块区别在哪里,哪一个更好?”
“npm 很好用,可是那些模块指不定半年一年多就没用了,具体看它们的支持情况。”
在谈到这些问题时,你通常会得到十个不同的答案。每个人都会向你推荐他最宝贝的模块,然后大家就会为哪个模块是最好的这个话题吵得不可开交…
从博文Get:
使用 slant.co 和 nodejs.libhunt.com 来做比较。npmtrends.com** 这个网站可以对比不同包的下载量 / 问题数 /GitHub 星数**
英文原址:https://www.coreycleary.me/which-of-the-635000-npm-modules-do-i-choose/
2. 人人都看得懂的JS运行机制
本文是以作者自己理解的思路拆分的JS运行机制,从浏览器、JS引擎、Web’API到事件循环详细地介绍了JS运行机制,文章思路明确,容易理解…
从博文中Get:
Event Loop 不停地检查主线程调用栈和回调队列,当发现主线程空闲的时候,就把回调队列里第一个任务推入主线程执行。 以此不停地循环。
**
3. 处理 JS 中 undefined 的 7 个技巧
大约8年前,当原作者开始学习JS时,遇到了一个奇怪的情况,既存在undefined
的值,也存在表示空值的null
。它们之间的明显区别是什么?它们似乎都定义了空值,而且,比较null == undefined
的计算结果为true
。
大多数现代语言,如Ruby、Python或Java都有一个空值(nil
或null
),这似乎是一种合理的方式。
对于JavaScript,解释器在访问尚未初始化的变量或对象属性时返回undefined
。例如:
let company;
company; // => undefined
let person = { name: 'John Smith' };
person.age; // => undefined
复制代码
另一方面,null
表示缺少的对象引用,JS本身不会将变量或对象属性设置为null
。
一些原生方法,比如String.prototype.match()
,可以返回null
来表示丢失的对象。看看下面的示例:
let array = null;
array; // => null
let movie = { name: 'Starship Troopers', musicBy: null };
movie.musicBy; // => null
'abc'.match(/[0-9]/); // => null
复制代码
由于 JS 的宽容特性,开发人员很容易访问未初始化的值,我也犯了这样的错误。
通常,这种危险的操作会生成undefined
的相关错误,从而快速地结束脚本。相关的常见错误消息有:
TypeError: 'undefined' is not a function
TypeError: Cannot read property '<prop-name>' of undefined
type errors
JS 开发人员可以理解这个笑话的讽刺:
function undefined() {
// problem solved
}
复制代码
为了降低此类错误的风险,必须理解生成undefined
的情况。更重要的是抑制它的出现并阻止在应用程序中传播,从而提高代码的持久性。
让咱们详细讨论undefined
及其对代码安全性的影响…
从博文中Get:undefined
的存在是JS的允许性质的结果,它允许使用:
- 未初始化的变量
- 不存在的对象属性或方法
- 访问越界索引的数组元素
- 不返回任何结果的函数的调用结果
大多数情况下直接与undefined
进行比较是一种不好的做法。一个有效的策略是减少代码中undefined
关键字的出现:
- 减少未初始化变量的使用
- 使变量生命周期变短并接近其使用的位置
- 尽可能为变量分配初始值
- 多敷衍 const 和 let
- 使用默认值来表示无关紧要的函数参数
- 验证属性是否存在或使用默认属性填充不安全对象
- 避免使用稀疏数组
- BUG监控工具 Fundebug。
4. 21 个VSCode 快捷键,让代码更快,更有趣
做为前端开发者来说,大都数都用过 VSCode,并且也有很多是经常用的。但 VSCode 的一些快捷键可能我们不知道,也比较少用,毕竟这很好,因此本文就列出一些快捷键方便大家学习与记忆。
在这篇文章中,我将列出我最喜欢的快捷键,这些快捷键让我更快的编写代码,也让编码变得更有趣,以下是21 个 VSCode 快捷键,分享给你…
从博文中Get:
工欲善其事,必先利其器。更好的使用快捷键可以提升开发速度
5. 17道题彻底理解 JavaScript 中的类型转换
本文将通过 17 道题目来深入的了解 JS 中的类型转换,通过阅读本文之后,你将能自信的回答出下面题目的答案,并且能够理解背后的原理。在文章的最后,我讲写出答案并解释。在看答案之前,你可以把答案写下来,最后再对照一下,便于找出理解有误的地方…
从博文中Get:
JS中隐式转换和显式转换的区别,分别有哪些