软件技术3个增强本地JavaScript功能的JS库

米花 发表 于:8年前 浏览量:173

我们必须承认本地JavaScript的不完善,正是如此,才有了那么多完善它的框架,例如jQuery,mootools,prototype等等。今天我们不讨论框架,而是来探讨一下可以拓展JavaScript功能的额外插件,它们通常是通过拓展类、字符串、日期和对象等实现的。

举个例子,JavaScript现有的Date函数的局限性就很明显。而SugarJS增加了40种以上的日期操作函数,以下是其中的一部分:

  • Date.create(d,locale):支持多种格式的日期构造函数
  • compare(obj):日期的数值比较
  • Format(format,locale):将日期格式化
  • isLeapYear():如果是闰年则返回真
  • 其他

我们相信本文中提到的三种JS库将会给您带来帮助。当然,如果你还知道其他的,欢迎和我们分享。

1.SUGAR

Sugar给我们带来了一些有用的方法,让你能够用更少的代码完成更多的事。

例:

  1. getLatestTweets(function(t) { 
  2. var users = t.map('user').unique(); 
  3. var total = users.sum('statuses_count').format(); 
  4. var top   = users.max('followers_count').first(); 
  5. var count = top.followers_count.format(); 
  6. var since = Date.create(top.created_at); 
  7. return users.length + ' users with a total of ' + total + ' tweets.n' + 
  8.       top.screen_name + ' is the top with ' + count + ' followersn' + 
  9.       'and started tweeting ' + since.relative() + '.'
  10. }); 
  11.  
  12. /* 
  13. Result: 
  14. >20 users with a total of 211,776 tweets. 
  15. TagalogQuotes is the top with 68,554 followers 
  16. and started tweeting 7 months ago.   
  17. */ 

2.UNDERSCORE.JS

和sugarjs类似,underscore.js提供了许多不拓展内置对象的函数支持。Underscore支持60多个函数,既包括常用函数对象:map,select,invoke——以及更多专业工具:function binding,javascript templating,deep equality testing等等。它委托给内置函数,所以现代浏览器通过each,map,reduce,filter,every,some和indexOf实现本地功能运用。

例:

  1. _.shuffle([1, 2, 3, 4, 5, 6]); 
  2. => [4, 1, 6, 3, 5, 2] 
  3.   
  4. _.first([5, 4, 3, 2, 1]); 
  5. => 5 
  6.   
  7. _.union([1, 2, 3], [101, 2, 1, 10], [2, 1]); 
  8. => [1, 2, 3, 101, 10] 
  9.   
  10. var func = function(greeting){ return greeting + ': ' + this.name }; 
  11. func = _.bind(func, {name : 'moe'}, 'hi'); 
  12. func(); 
  13. => 'hi: moe' 
  14.   
  15. var hello = function(name) { return "hello: " + name; }; 
  16. hello = _.wrap(hello, function(func) { 
  17. return "before, " + func("moe") + ", after"
  18. }); 
  19. hello(); 
  20. => 'before, hello: moe, after' 

3.PHP.JS

PHP.JS实现了PHP现有函数的JavaScript版本。作为一个PHP开发人员,我惊讶于它的模仿程度之高。

例:

  1. function array_merge () { 
  2.  var args = Array.prototype.slice.call(arguments), 
  3.      argl = args.length, 
  4.      arg, 
  5.      retObj = {}, 
  6.      k = '',  
  7.      argil = 0, 
  8.      j = 0, 
  9.      i = 0, 
  10.      ct = 0, 
  11.      toStr = Object.prototype.toString, 
  12.      retArr = true
  13.  
  14.  for (i = 0; i < argl; i++) { 
  15.      if (toStr.call(args[i]) !== '[object Array]') { 
  16.          retArr = false
  17.          break
  18.      } 
  19.  } 
  20.  
  21.  if (retArr) { 
  22.      retArr = []; 
  23.      for (i = 0; i < argl; i++) { 
  24.          retArr = retArr.concat(args[i]); 
  25.      } 
  26.      return retArr; 
  27.  } 
  28.  
  29.  for (i = 0, ct = 0; i < argl; i++) { 
  30.      arg = args[i]; 
  31.      if (toStr.call(arg) === '[object Array]') { 
  32.          for (j = 0, argil = arg.length; j < argil; j++) { 
  33.              retObj[ct++] = arg[j]; 
  34.          } 
  35.      } 
  36.      else { 
  37.          for (k in arg) { 
  38.              if (arg.hasOwnProperty(k)) { 
  39.                  if (parseInt(k, 10) + '' === k) { 
  40.                      retObj[ct++] = arg[k]; 
  41.                  } 
  42.                  else { 
  43.                      retObj[k] = arg[k]; 
  44.                  } 
  45.              } 
  46.          } 
  47.      } 
  48.  } 
  49.  return retObj; 
  50. }    

如果你知道其他好的JS库的话,请一定记得和大家分享哦。

文章出自:favbulous.com



    本文由 米花发表。转载请注明出处:https://www.mihua.net/list/0/2860.html

    发表评论

    您的昵称:

    猜你喜欢

    最近更新