1. 程式人生 > >深入理解JavaScript中的函數操作

深入理解JavaScript中的函數操作

要求 使用情況 並不是 回文 工作 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中的函數操作