深入理解JavaScript中的函數操作
阿新 • • 發佈:2017-11-01
要求 使用情況 並不是 回文 工作 alert http load 函數
匿名函數
對於什麽是匿名函數,這裏就不做過多介紹了。我們需要知道的是,對於JavaScript而言,匿名函數是一個很重要且具有邏輯性的特性。通常,匿名函數的使用情況是:創建一個供以後使用的函數。
簡單的舉個例子如下:
window.onload = function() { alert(‘hello‘); } var templateObj = { shout:function() { alert(‘作為方法的匿名函數‘) } } templateObj.shout(); setTimeout(function() { alert(‘這也是一個匿名函數‘); },1000)
上面的一個代碼片段我就不做過多無用解釋了,比較常規。
遞歸
遞歸,說白了,就是自己調用自己,或者調用另外一個函數,但是這個函數的調用樹的某一個地方又調用了自己。所以遞歸,就產生了。
普通命名函數的遞歸
拿普通命名函數的遞歸最好的舉例就是用最簡單的遞歸需求:檢測回文。
回文的定義如下:一個短語,不管從哪一個方向讀,都是一樣的。檢測的工作當然方法多樣,我們可以創建一個函數,用待檢測的回文字符逆序生成出一個字符,然後檢測二者是否相同,如果相同,則為回文字符。
但是這種方法並不是很有逼格,確切的說,代價比較大,因為我們需要分配並創建新的字符。
所以,我們可以整理出如下簡潔的辦法:
- 單個和零個字符都是回文
- 如果字符串的第一個字符和最後一個字符相同,並且除了兩個字符以外,別的字符也滿足該要求,那麽我們就可以檢測出來了這個是回文了
function isPalindrome(txt) { if(txt.length<=1){ return true; } if(txt.charAt(0)!= txt.charAt(txt.length-1)) return false; return isPalindrome(txt.substr(1,txt.length-2)); }
https://segmentfault.com/a/1190000011792660
深入理解JavaScript中的函數操作