Web开发编程网
分享Web开发相关技术

JavaScript专题系列

JavaScript专题之解读 v8 排序源码

admin阅读(838)

前言 v8 是 Chrome 的 JavaScript 引擎,其中关于数组的排序完全采用了 JavaScript 实现。 排序采用的算法跟数组的长度有关,当数组长度小于等于 10 时,采用插入排序,大于 10 的时候,采用快速排序。(当然了...

JavaScript专题之乱序

admin阅读(876)

乱序 乱序的意思就是将数组打乱。 嗯,没有了,直接看代码吧。 Math.random 一个经常会遇见的写法是使用 Math.random(): var values = [1, 2, 3, 4, 5]; values.sort(functi...

JavaScript专题之递归

admin阅读(953)

定义 程序调用自身的编程技巧称为递归(recursion)。 阶乘 以阶乘为例: function factorial(n) { if (n == 1) return n; return n * factorial(n - 1) } con...

JavaScript专题之函数记忆

admin阅读(939)

定义 函数记忆是指将上次的计算结果缓存起来,当下次调用时,如果遇到相同的参数,就直接返回缓存中的数据。 举个例子: function add(a, b) { return a + b; } // 假设 memoize 可以实现函数记忆 va...

JavaScript专题之函数组合

admin阅读(881)

需求 我们需要写一个函数,输入 ‘kevin’,返回 ‘HELLO, KEVIN’。 尝试 var toUpperCase = function(x) { return x.toUpperCa...

JavaScript专题之惰性函数

admin阅读(839)

需求 我们现在需要写一个 foo 函数,这个函数返回首次调用时的 Date 对象,注意是首次。 解决一:普通方法 var t; function foo() { if (t) return t; t = new Date() return ...

JavaScript专题之偏函数

admin阅读(857)

定义 维基百科中对偏函数 (Partial application) 的定义为: In computer science, partial application (or partial function application) refe...

JavaScript专题之函数柯里化

admin阅读(880)

定义 维基百科中对柯里化 (Currying) 的定义为: In mathematics and computer science, currying is the technique of translating the evaluati...

JavaScript专题之如何判断两个对象相等

admin阅读(896)

前言 虽然标题写的是如何判断两个对象相等,但本篇我们不仅仅判断两个对象相等,实际上,我们要做到的是如何判断两个参数相等,而这必然会涉及到多种类型的判断。 相等 什么是相等?在《JavaScript专题之去重》中,我们认为只要 === 的结果...

JavaScript专题之jQuery通用遍历方法each的实现

admin阅读(897)

each介绍 jQuery 的 each 方法,作为一个通用遍历方法,可用于遍历对象和数组。 语法为: jQuery.each(object, [callback]) 回调函数拥有两个参数:第一个为对象的成员或数组的索引,第二个为对应变量或...