递归条件构成递归需要具备边界条件、递归前进段和递归返回段,当边界条件不满足时,递归前进,当边界条件满足时,递归返回。阶乘中的 n == 1 和 斐波那契数列中的 n < 2 都是边界条件。 总结下递归的特点: 子问题必须和原始问题有同样的事,且更为简单; 不能无限制地调用本身,须有一个出口, ...
javaScript之函数记忆
函数记忆定义函数记忆是指将上次的计算结果缓存起来,当下次调用时,如果遇到相同的参数,就直接返回缓存中的数据 。举个例子 function add(a, b) { return a + b;}// 假设 memorize 可以实现函数记忆 var memoizedAdd ...
javaScript之函数组合
函数组合需求我们需要写一个函数,输入“blue”,返回“HELLO BLUE ”。 尝试var toUpperCase = function(x) {return x.toUpperCase();};var hello = function(x) {ret ...
javaScript之惰性函数
什么是惰性函数JS惰性函数,是针对优化频繁使用的函数。常用于函数库的编写、单例模式之中。 需求我们现在需要写一个foo函数,这个函数返回首次调用时的Date对象。 解决一:普通方法var t;function foo() { if(t) return t; t = new Da ...
JavaScript之偏函数
原文出自冴羽的博客 定义计算机科学中,局部应用是指固定一个函数的一些参数,然后产生另一个更小元的函数,什么是元?元是指函数参数的个数,比如一个带有两个参数的函数被称为二元函数 下面是个简单的例子 function add(a, b) { return a + b;}// 执 ...
javaScript之函数柯里化
什么是柯里化在数学和计算机科学中,柯里化是一种将使用多个参数的函数转换成一系列使用一个参数的函数的技术。核心思想: 用闭包把参数保存起来,当参数的数量足够执行函数了,就开始执行函数 function add(a, b) { return a + b;}// 执行add函 ...
javaScript之数组扁平化
扁平化数组扁平化,就是将一个嵌套多层的数组array(嵌套可以是任何层数)转化为只有一层的数组。 var arr = [1,[2,3,4,[5,6,7],8],9];转化后arr = [1,2,3,4,5,6,7,8,9]; 递归循环数组元素,如果还是一个数组,就递归调用该方法: var arr ...
jQuery each的实现
each介绍jQuery中each方法,可以用来遍历数组和对象 jQuery.each(object, [callback]) 这里传递两个参数,一个是要遍历的对象的成员或数组的索引,一个是回调函数(里面写你要对每个数据元素的操作) //遍历数组var arr = ['a','b',3,4,5] ...
jQuery的extend
原文出自冴羽的博客 extend的基本用法extend:merge the contents of two or more objects together into the first objectextend的用法 jQuery.extend(target [, object] [, objec ...