摘要:瀏覽器檢查瀏覽器檢查瀏覽器檢查瀏覽器檢查源碼可以看這里檢測(cè)觸摸設(shè)備數(shù)據(jù)類(lèi)型如果類(lèi)型在對(duì)象中定義,那么當(dāng)對(duì)象被選中時(shí),它將返回。
瀏覽器檢查
/** * @property browser check browser agent * @property {Boolean} browser.webkit Webkit 瀏覽器檢查 * @property {Boolean} browser.mozilla Mozilla 瀏覽器檢查 * @property {Boolean} browser.msie IE 瀏覽器檢查 */ browser: { webkit: ("WebkitAppearance" in document.documentElement.style) ? true : false, mozilla: (typeof window.mozInnerScreenX != "undefined") ? true : false, msie: (window.navigator.userAgent.indexOf("Trident") != -1) ? true : false },
源碼可以看這里jui-chart core.js
檢測(cè)觸摸設(shè)備/** * @property {Boolean} isTouch * check touch device */ isTouch: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(window.navigator.userAgent)數(shù)據(jù)類(lèi)型
/** * @method typeCheck * check data type * @param {String} t type string * @param {Object} v value object * @return {Boolean} */ typeCheck: function (t, v) { function check(type, value) { if (typeof(type) != "string") return false; if (type == "string") { return (typeof(value) == "string"); } else if (type == "integer") { return (typeof(value) == "number" && value % 1 == 0); } else if (type == "float") { return (typeof(value) == "number" && value % 1 != 0); } else if (type == "number") { return (typeof(value) == "number"); } else if (type == "boolean") { return (typeof(value) == "boolean"); } else if (type == "undefined") { return (typeof(value) == "undefined"); } else if (type == "null") { return (value === null); } else if (type == "array") { return (value instanceof Array); } else if (type == "date") { return (value instanceof Date); } else if (type == "function") { return (typeof(value) == "function"); } else if (type == "object") { // typeCheck如果類(lèi)型在對(duì)象中定義,那么當(dāng)對(duì)象被選中時(shí),它將返回false。 (date, array, null) return ( typeof(value) == "object" && value !== null && !(value instanceof Array) && !(value instanceof Date) && !(value instanceof RegExp) ); } return false; } if (typeof(t) == "object" && t.length) { var typeList = t; for (var i = 0; i < typeList.length; i++) { if (check(typeList[i], v)) return true; } return false; } else { return check(t, v); } }
jui
內(nèi)存轉(zhuǎn)換export function bytesToSize(value) { if (+value === 0) return "0 B" let k = 1024, sizes = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"], i = Math.floor(Math.log(value)/Math.log(k)) return (value / Math.pow(k, i)).toPrecision(3) + " "+ sizes[i] }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/87349.html
摘要:背景最近我們前端團(tuán)隊(duì)在重構(gòu)大量的組件,為了保證代碼質(zhì)量,我要求團(tuán)隊(duì)中的成員必須編寫(xiě)單元測(cè)試,并且測(cè)試覆蓋率達(dá)到以上。總結(jié)對(duì)一個(gè)持續(xù)集成的項(xiàng)目來(lái)說(shuō),單元測(cè)試非常重要,同時(shí)最好具有較高的測(cè)試覆蓋率。 背景 最近我們前端團(tuán)隊(duì)在重構(gòu)大量的 UI 組件,為了保證代碼質(zhì)量,我要求團(tuán)隊(duì)中的成員必須編寫(xiě)單元測(cè)試,并且測(cè)試覆蓋率達(dá)到 80% 以上。那么問(wèn)題來(lái)了,為什么是 80% 的覆蓋率? 這是一個(gè)硬性...
摘要:模塊化開(kāi)發(fā)在編程開(kāi)發(fā)中是一個(gè)非常重要的概念,一個(gè)優(yōu)秀的模塊化項(xiàng)目的后期維護(hù)成本可以大大降低。本文主要介紹模塊化開(kāi)發(fā)的那些事,文中通過(guò)一個(gè)小故事比較直觀地闡述了模塊化開(kāi)發(fā)的過(guò)程。每個(gè)模塊都由一個(gè)名為的函數(shù)創(chuàng)建。原文出處模塊化開(kāi)發(fā)的那些事 模塊化開(kāi)發(fā)在編程開(kāi)發(fā)中是一個(gè)非常重要的概念,一個(gè)優(yōu)秀的模塊化項(xiàng)目的后期維護(hù)成本可以大大降低。本文主要介紹JavaScript模塊化開(kāi)發(fā)的那些事,文中通過(guò)...
摘要:微信小程序圖片上傳阿里云服務(wù)器也折騰了蠻久才解決的,所以特意去記錄一下。上傳失敗第四步源碼在這里如果覺(jué)得這面文章對(duì)你有幫助的話,可給我點(diǎn)個(gè)這里,謝謝最后,希望這篇文章對(duì)你有所幫助,真真確確是可以在微信小程序中上傳圖片到阿里云的。 本人今年6月份畢業(yè),最近剛在上海一家小公司實(shí)習(xí),做微信小程序開(kāi)發(fā)。最近工作遇到一個(gè)小問(wèn)題。 微信小程序圖片上傳阿里云服務(wù)器Oss也折騰了蠻久才解決的,所以特意...
摘要:微信小程序圖片上傳阿里云服務(wù)器也折騰了蠻久才解決的,所以特意去記錄一下。上傳失敗第四步源碼在這里如果覺(jué)得這面文章對(duì)你有幫助的話,可給我點(diǎn)個(gè)這里,謝謝最后,希望這篇文章對(duì)你有所幫助,真真確確是可以在微信小程序中上傳圖片到阿里云的。 本人今年6月份畢業(yè),最近剛在上海一家小公司實(shí)習(xí),做微信小程序開(kāi)發(fā)。最近工作遇到一個(gè)小問(wèn)題。 微信小程序圖片上傳阿里云服務(wù)器Oss也折騰了蠻久才解決的,所以特意...
閱讀 2459·2019-08-29 13:53
閱讀 2531·2019-08-29 11:32
閱讀 3082·2019-08-28 17:51
閱讀 3841·2019-08-26 10:45
閱讀 3548·2019-08-23 17:51
閱讀 3016·2019-08-23 16:56
閱讀 3359·2019-08-23 16:25
閱讀 3118·2019-08-23 14:15