JavaScript

JavaScript学习笔记之 斐波那契数列尾调用测试

为了验证JavaScript中尾调用的优点,所以做了计算斐波那契数列的尾调用写法和非尾调用写法的性能对比,结果是惊人的,真是不试不知道,一试吓一跳。

这里我都是循环计算斐波那契数列第1-40位的数值,下面是各个环境的验证结果:
Firefox: 普通写法:1000-1300 ms,尾调用写法:0-2 ms
Chrome: 普通写法:1550-1700 ms,尾调用写法:0-2 ms
IE9: 普通写法:46000+ ms,尾调用写法:0-2 ms

以上只是在我自己电脑上的3种浏览器测试的结果,但是可以看出其巨大的差异,所以多函数嵌套调用以及递归时,尽可能的使用尾调用。测试地址

JavaScript学习笔记之 强大的表达力

自定义方法

1
2
3
4
5
6
7
8
9
Number.prototype.add = function(x) {
return this + x;
};
console.log(8['add'](2));//10
console.log((8).add(2));//10
//第一个点解释为小数点,第二个点解释为点运算符。
console.log(8..add(2));//10
//报错,因为数值后面的点,会被解释为小数点,而不是点运算符。
console.log(8.add(2));//SyntaxError: Unexpected token ILLEGAL

JavaScript学习笔记之 编程习惯和注意点

1.我们将 <script> 元素放在 HTML 文件底部的原因是,浏览器解析 HTML 似乎按照代码出现的顺序来的。如果 JavaScript被首先读取,它也应该影响下面的 HTML,但有时会出现问题,因为 JavaScript 会在 HTML 之前被加载,如果 JavaScript 代码出现问题则 HTML 不会被加载。所以将 JavaScript 代码放在底部是最好的选择。

2.JS中的每一行都应该以一个分号结尾,以表明这一行的结束。如果你不这样做,可能会遇到意想不到的结果。

3.变量提升只对var命令声明的变量有效,如果一个变量不是用var命令声明的,就不会发生变量提升。