前言,今天开始学习Zepto源码,这里仅仅几下里面能用到的方法。。陆续补充ing...
一,判断类型函数
1 function type(obj) { 2 return obj == null ? String(obj) : Object.prototype.toString.call(obj) || "Object"; 3 }
稍作改变:
1 (function () { 2 3 4 function type(value) { 5 var getType = Object.prototype.toString; 6 var typeTemp = getType.call(value); 7 switch (typeTemp) { 8 case '[object Array]': 9 return "Array"; 10 break; 11 case '[object Date]': 12 return "Date"; 13 break; 14 case '[object Boolean]': 15 return "Boolean"; 16 break; 17 case '[object Number]': 18 return "Number"; 19 break; 20 case '[object Function]': 21 return "Function"; 22 break; 23 default: 24 return "unKnow"; 25 } 26 } 27 28 29 function isArray(value) { 30 return type(value) == "Array"; 31 } 32 33 function isDate(value) { 34 return type(value) == "Date"; 35 } 36 37 function isBoolean(value) { 38 return type(value) == "Boolean"; 39 } 40 41 function isNumber(value) { 42 return type(value) == "Number"; 43 } 44 45 function isFunction(value) { 46 return type(value) == "Function"; 47 } 48 49 })();
补充
用getPrototypeOf和isProtoypeOf判断类型
1 var time = new Date(); 2 var result = (Object.getPrototypeOf(time) === Date.prototype); 3 console.log(result); 4 result=Date.prototype.isPrototypeOf(time); 5 console.log(result)
补充2016-12-05 11:19:40
网上一方法,用于判断类型
Object.prototype.toString.call(arg).slice(8,-1)
直接获取类型。。
二,replace结合表达式去改变字符串
1 var str = "123aAbc"; 2 3 function stringDividerBetweenUnderline(str) { 4 return str.replace(/(d+)([a-z]|[A-Z]+)/g, "$1_$2") 5 } 6 7 var ss = stringDividerBetweenUnderline(str); 8 console.log(ss);
三,获取css属性
1 var con1=document.querySelector(".con1"); 2 console.log(window.getComputedStyle(con1).getPropertyValue("color"));
注意这里获取到的颜色是reba(255,0,0)我设置的是red