每周一更:网络上值的一看的技术博文第一期

1. 挑选 npm 模块很费事?掌握这些技巧就能事半功倍!

熟悉 Node 或前端 JavaScript 工作的同学都知道,社区中的可用模块有数十万之多。
开发人员经常会提问或抱怨,比如说:

“开发易,选模块难…”
“X 模块和 Y 模块区别在哪里,哪一个更好?”
“npm 很好用,可是那些模块指不定半年一年多就没用了,具体看它们的支持情况。”

在谈到这些问题时,你通常会得到十个不同的答案。每个人都会向你推荐他最宝贝的模块,然后大家就会为哪个模块是最好的这个话题吵得不可开交…
从博文Get:
使用 slant.conodejs.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都有一个空值(nilnull),这似乎是一种合理的方式。
对于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中隐式转换和显式转换的区别,分别有哪些

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值