码迷,mamicode.com
首页 > 编程语言 > 详细

深入理解JavaScript中的函数操作

时间:2017-11-01 21:42:33      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:第一个字符   .com   settime   逻辑   创建   out   nbsp   地方   过多   

匿名函数

对于什么是匿名函数,这里就不做过多介绍了。我们需要知道的是,对于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中的函数操作

标签:第一个字符   .com   settime   逻辑   创建   out   nbsp   地方   过多   

原文地址:http://www.cnblogs.com/goloving/p/7768362.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!