Two paranoid men.
『翻译』一些 JavaScript 优化的细节
前言
优化客户端JavaScript代码常常是不值得的,因为这会失去代码可读性。如果你的APP运行缓慢,你可以考虑是否能优化请求,减少对DOM的操作,尽量少的操local storage,或者牺牲其它的来换取性能。几乎没有足够的数据认为客户端需要让代码同步运行速度更快。我认为接下来的代码十分具有可读性,如果你也需要,为什么不使用它呢?
递归尾调用(Recursive tail calls)
在下面例子中,函数每次执行都会创建一个新的栈(维持新添加的环境)。所以,如果参数x:5000
,那就会创建5000个栈。
|
|
如果使用一个累加数,就不会有新添加的环境需要被维持,所以返回的栈可以代替当前函数的栈。
|
|
『翻译』3个原因让我像躲避瘟疫一样避免使用JS匿名函数
前言
无论何时阅读代码,你一定会看到匿名函数。有时它们被称为lambdas,有时被称为匿名函数(anonymous functions),但不管怎样,我认为他们是糟糕的。
如果你不知道什么是匿名函数,这里有一段引用:
匿名函数是一个可以在运行时动态声明的函数。之所以称为匿名函数是因为:他们没有像普通函数一样被赋予名字(name)。 ——Helen Emerson, Helephant.com
它们看起来有点像这个:
|
|
『翻译』JavaScript 函数式编程
前言
函数式编程与我们以往的编程习惯有许多不同。这篇文章举了一些JavaScript的例子,介绍了函数式编程中重要的概念。附加的文章会让你更深入的了解JavaScript中的函数式编程。
本文源码可以在GitHub上找到,放在jsFunctionalProgramming仓库中。
我要感谢Csaba Hellinger的支持和投入,在他的帮助下我才完成这篇文章。
『翻译』扩展运算符的6个重要用途
前言
由于ES6和Babel的出现,编写JavaScript代码变得难以置信的灵活,从新的语法到自定的编译器,像JSX。我变成了扩展运算符(Spread Operator)的超级粉丝,三个点就改变你编写JavaScript代码的方式。接下来的清单,列出了我在JavaScript中最喜欢怎样使用扩展运算符!
1.不使用Apply去调用函数
这一点我们叫它Function.prototype.apply
,传递一个参数数组,调用一个函数,并把数组中的每一项拆分成单个参数传递给函数:
|
|
通过扩展运算符我们可以避免使用apply
,只需简单的调用函数,并在参数数组前加上扩展运算符:
|
|
这让代码更简短、清晰,而且不需要无用的null
!
『翻译』有趣的Console对象
Console对象提供了接口去操作浏览器的调试控制台(像火狐浏览器中的控制台)。它在不同浏览器中实现细节不同,但也有其通用的特性。
Console - Web API 接口 | MDN
下面列举了一些你可能不知道的Console对象的特性:(译者注:以下例子都可在控制台直接运行)
1.清空控制台
使用console.clear()
指令清空你的控制台。
2.输出样式
你可以使用%c
指令给你的输出指定样式:
|
|
『翻译』JavaScript技术面试时要小心的三个问题
原文链接:3 JavaScript questions to watch out for during coding interviews(需要梯子访问)
前言
JavaScript是所有现代浏览器的官方语言。同样的,JavaScript面试题出现在各种各样的面试中。
这篇文章不是讲述JavaScript最新的库、日常的开发实践,或是ES6的新功能。当然了,上面说的这3点经常出现在JavaScript的面试中。我自己也曾经问过面试者这些问题,我的朋友告诉我,他们同样也是。
当然,你去面试前不能只准备上面提到的3点,这里有许多的方法让你能够更好的面对即将到来的面试。
但是,接下来的这3个问题,面试官可能会根据你的回答,去判断你对JavaScript和DOM的了解程度。
所以,现在开始吧!请注意,我们在接下来的例子中将使用原生JavaScript,因为你的面试官可能想看看在没有第三方库的情况下,比如jQuery,你对JavaScript和DOM的理解程度。
『翻译』JavaScript疲劳症
原文链接:https://medium.freecodecamp.com/javascript-fatigue-fatigue-66ffb619f6ce#.khis636n3
宇宙没有义务让你觉得它对你有意义。 – Neil deGrasse Tyson
是的,JavaScript的开发越来越复杂了。
是的,JavaScript将会继续变得越来越复杂。
互联网是一个复杂的领域。我们最终没有去做我们本应该去做的那些事情。
结果就是,JavaScript工具和许多和它有关的,都在迅速的发展。
三角函数学习历程记录
是时候捡起来了 别那么在乎别人的眼光
素材来自:LZRspace
1.已知斜边为20,邻边为10,求角x.
答:Math.acos(10/20)/(Math.PI/180);
2.已知C是45°,斜边为20,求其邻边x.
答:Math.cos(45*Math.PI/180)*20;
带你切身体验实例被new出来的过程
其实费尽心力探寻底层实现就是为了用来装逼 😝
闲话
网上有很多帖子、文章介绍new操作符运行步骤的文章,但我感觉读者看完之后还是会很模糊,知其然,不知其所以然。
好,轮到我装逼了!
首先,读这篇文章,你得对原型链和构造函数有个基本的认识,否则收益不会很大,反而会更懵逼。
正文
我们先创建一个简单的构造函数:
|
|