深入理解JavaScript中的函数操作

Posted 古兰精

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入理解JavaScript中的函数操作相关的知识,希望对你有一定的参考价值。

匿名函数

对于什么是匿名函数,这里就不做过多介绍了。我们需要知道的是,对于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中的函数操作的主要内容,如果未能解决你的问题,请参考以下文章

深扒深入理解 JavaScript 中的异步编程

深入理解javascript中的立即执行函数(function(){…})()

深入理解javascript中的立即执行函数(function(){…})()

深入理解javascript编程中的同步和异步

深入理解jQuery中的Deferred

深入理解jQuery中的Deferred