zepto.js源码小摘抄

这里我不是要去解读源码,是在看zepto源码的过程中,把我觉得有用的地方记录下来,毕竟zepto直接面向了现代浏览器,够轻量,够高效。就像读了一篇非常优秀文章,写点摘要吧!

1.命名规范:构造函数pascal命名,变量驼峰,正则已RE结尾

2.声明一个emptyArray = [],在使用数组原型上的方法时,用变量代替[](相当于new Array()),提高了性能。

3.判断是否为数组方法

isArray = Array.isArray || function(object){ return object instanceof Array }

4.有一句特别的代码

为啥要加个~按位取反的运算符呢?主要是在indexOf返回-1时转换为0,这样0的布尔值就是false。注意-1的布尔值是true

5.window.getComputedStyle

该方法返回的结果CSSStyleDeclaration,自带的方法getPropertyValue()获取对应样式的值

6.判断空对象的方法比较有意思

function isEmptyObject(obj) {
  var name;
  for (name in obj){
    return false;
  }
  return true;
}

7.判断Number

function isNumeric(val) {
  var num = Number(val),
  type = typeof val;
  return val != null && type != 'boolean' &&
  (type != 'string' || val.length) &&
  !isNaN(num) && isFinite(num) || false
}

这个函数在jQuery3.0有点改变了,判断的类型只针对string和number

isNumeric: function( obj ) {
 var type = jQuery.type( obj );
 return ( type === "number" || type === "string" ) && !isNaN( obj - parseFloat( obj ) );
}

8.千分位(这个是突然想起的)

function toThousands(str) {
  var re=/(?=(?!\b)(\d{3})+$)/g;
  return str.replace(re,’,’);
}
javascript
作者:张雪飞
出处:https://zhangxuefei.site/p/1825
版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

发表评论

电子邮件地址不会被公开。 必填项已用*标注