Rockjins Blog

Mad World


  • 首页

  • 分类

  • 归档

  • 标签

  • 搜索

Some picture about Johnny Depp & Marilyn Manson

发表于 2017-02-15 | 分类于 Music | 阅读次数

Two paranoid men.

阅读全文 »

『翻译』一些 JavaScript 优化的细节

发表于 2017-02-13 | 分类于 Translation | 阅读次数

Read the original


前言

优化客户端JavaScript代码常常是不值得的,因为这会失去代码可读性。如果你的APP运行缓慢,你可以考虑是否能优化请求,减少对DOM的操作,尽量少的操local storage,或者牺牲其它的来换取性能。几乎没有足够的数据认为客户端需要让代码同步运行速度更快。我认为接下来的代码十分具有可读性,如果你也需要,为什么不使用它呢?

递归尾调用(Recursive tail calls)

在下面例子中,函数每次执行都会创建一个新的栈(维持新添加的环境)。所以,如果参数x:5000,那就会创建5000个栈。

1
2
3
4
5
6
function foo(x) {
if (x < 0) {
return 1;
}
return 1 + foo(x-1);
}

如果使用一个累加数,就不会有新添加的环境需要被维持,所以返回的栈可以代替当前函数的栈。

1
2
3
4
5
6
function foo(x, accumulated) {
if (x < 0) {
return 1;
}
return foo(x-1, accumulated + 1);
}
阅读全文 »

『翻译』3个原因让我像躲避瘟疫一样避免使用JS匿名函数

发表于 2017-02-13 | 分类于 Translation | 阅读次数

Read the original


前言

无论何时阅读代码,你一定会看到匿名函数。有时它们被称为lambdas,有时被称为匿名函数(anonymous functions),但不管怎样,我认为他们是糟糕的。

如果你不知道什么是匿名函数,这里有一段引用:

匿名函数是一个可以在运行时动态声明的函数。之所以称为匿名函数是因为:他们没有像普通函数一样被赋予名字(name)。 ——Helen Emerson, Helephant.com

它们看起来有点像这个:

1
2
3
4
5
function() { ... code ... }
OR
(args) => { ... code ... }
阅读全文 »

『翻译』JavaScript 函数式编程

发表于 2017-02-11 | 分类于 Translation | 阅读次数

Read the original


前言

函数式编程与我们以往的编程习惯有许多不同。这篇文章举了一些JavaScript的例子,介绍了函数式编程中重要的概念。附加的文章会让你更深入的了解JavaScript中的函数式编程。

本文源码可以在GitHub上找到,放在jsFunctionalProgramming仓库中。

我要感谢Csaba Hellinger的支持和投入,在他的帮助下我才完成这篇文章。

阅读全文 »

『翻译』扩展运算符的6个重要用途

发表于 2017-02-09 | 分类于 Translation | 阅读次数

Read the original

前言

由于ES6和Babel的出现,编写JavaScript代码变得难以置信的灵活,从新的语法到自定的编译器,像JSX。我变成了扩展运算符(Spread Operator)的超级粉丝,三个点就改变你编写JavaScript代码的方式。接下来的清单,列出了我在JavaScript中最喜欢怎样使用扩展运算符!

1.不使用Apply去调用函数

这一点我们叫它Function.prototype.apply,传递一个参数数组,调用一个函数,并把数组中的每一项拆分成单个参数传递给函数:

1
2
3
4
5
function doStuff (x, y, z) { }
var args = [0, 1, 2];
// 调用函数,传递参数
doStuff.apply(null, args);

通过扩展运算符我们可以避免使用apply,只需简单的调用函数,并在参数数组前加上扩展运算符:

1
doStuff(...args);

这让代码更简短、清晰,而且不需要无用的null!

阅读全文 »

『翻译』有趣的Console对象

发表于 2017-02-08 | 分类于 Translation | 阅读次数

Read the original

Console对象提供了接口去操作浏览器的调试控制台(像火狐浏览器中的控制台)。它在不同浏览器中实现细节不同,但也有其通用的特性。
Console - Web API 接口 | MDN

下面列举了一些你可能不知道的Console对象的特性:(译者注:以下例子都可在控制台直接运行)

1.清空控制台

使用console.clear()指令清空你的控制台。

2.输出样式

你可以使用%c指令给你的输出指定样式:

1
console.log('%c Make console greate again!', 'font-size:50px; background:red;')
阅读全文 »

『翻译』JavaScript技术面试时要小心的三个问题

发表于 2017-01-26 | 分类于 Translation | 阅读次数

原文链接: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疲劳症

发表于 2017-01-22 | 分类于 Translation | 阅读次数

原文链接:https://medium.freecodecamp.com/javascript-fatigue-fatigue-66ffb619f6ce#.khis636n3


宇宙没有义务让你觉得它对你有意义。 – Neil deGrasse Tyson

是的,JavaScript的开发越来越复杂了。

是的,JavaScript将会继续变得越来越复杂。

互联网是一个复杂的领域。我们最终没有去做我们本应该去做的那些事情。

结果就是,JavaScript工具和许多和它有关的,都在迅速的发展。

阅读全文 »

三角函数学习历程记录

发表于 2017-01-19 | 分类于 Math | 阅读次数

是时候捡起来了 别那么在乎别人的眼光

素材来自: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出来的过程

发表于 2017-01-18 | 分类于 Technology | 阅读次数

其实费尽心力探寻底层实现就是为了用来装逼 😝

闲话

网上有很多帖子、文章介绍new操作符运行步骤的文章,但我感觉读者看完之后还是会很模糊,知其然,不知其所以然。

好,轮到我装逼了!

首先,读这篇文章,你得对原型链和构造函数有个基本的认识,否则收益不会很大,反而会更懵逼。

正文

我们先创建一个简单的构造函数:

1
2
3
4
5
6
7
function Rocker(name){
this.name = name;
};
Rocker.prototype.getName = function(){
return this.name;
}
阅读全文 »
1…3456
余震

余震

Teenager Dream Of Freedom

57 日志
7 分类
45 标签
RSS
GitHub Weibo
© 2016 - 2017 余震
由 Hexo 强力驱动
主题 - NexT.Pisces