當一些計算結果可以保留下來為以後的運算提供方便的時候, 就可以用到記憶話函式
記憶化函式將計算結果儲存起來,如果之後碰到相同的引數,就直接放回已經計算過的引數
使用限制: 純函式
演算法思想:空間換時間
/**
* 記憶化函式
*/function memorize(func) ;
return function() else }}
/*** 求階乘
*/function factorial(num)else
}var memorizefunc = memorize(factorial);
console.time('pre')
console.log(factorial(5));
console.timeend('pre'); // 0.18994140625ms
console.time('mem');
console.log(memorizefunc(5))
console.timeend('mem'); // 0.10009765625ms
console.time('pre')
console.log(factorial(50));
console.timeend('pre'); // 0.274169921875ms
console.time('mem');
console.log(memorizefunc(50))
console.timeend('mem'); // 0.200927734375ms
javascript 語言技巧
1 使用 它比較不會型別轉換,速度要比 快 1 1 false 1 1 true 2 typeof 一元操作符,用於以字串的形式返回變數的資料型別 typeof null array date 都返回object 這樣在判斷變數變形時會有問題,可用 object.prototype.tostring...
JavaScript 程式設計
瀏覽器作為xhtml解析器,將網頁載入到記憶體時,首先字記憶體中為整個文件建立乙個文件節點物件 document 每載入乙個標記 注釋或者屬性,就將其當做節點 note dom的主要思想是xhtml上每個元素分別對應於dom中的乙個節點。節點的屬性和方法 部分 nodevalue 節點的值,適用於文...
JavaScript 程式設計
獲取表單的引用 1 var oform document.getelementbyid form1 2 var oform document.form 0 3 var ootherform document.forms formz 4 var oform document.myformname 表單...