整理后JS基础的封装

	/* console打印开关 */
	let conType = true;
	let common = (function() {
		/* ******************************************************************************************** */
		/* ********************************************console打印************************************* */
		/* ******************************************************************************************** */
		/* log 打印*/
		function log(index) {
			conFun(index, 'log');
		}
		/* 错误打印 */
		function error(index) {
			conFun(index, 'error');
		}
		/* 提示打印 */
		function inof(index) {
			conFun(index, 'inof');
		}
		/* 警告打印 */
		function warn(index) {
			conFun(index, 'warn');
		}
		/* 打印嵌套 */
		function group(index) {
			conFun(index, 'group');
		}
		/* 表格打印 */
		function table(index) {
			conFun(index, 'table');
		}
		/* 追踪函数过程 */
		function tracer(index) {
			conFun(index, 'tracer');
		}
		/* 动态获取方法和输出类型 */
		function conFun(index, type) {
			if (conType) {
				eval('console.' + type + "(" + JSON.stringify(index) + ")")
			}
		}
		/* ******************************************************************************************** */
		/* ********************************************类型判断**************************************** */
		/* ******************************************************************************************** */
		// 是否是字符串
		function isString(value) {
			return Object.prototype.toString.call(value) == "[object String]";
		}
		// 是否是数字
		function isNumber(value) {
			return Object.prototype.toString.call(value) == "[object Number]";
		}
		// 是否是布尔值
		function isBoolean(value) {
			return Object.prototype.toString.call(value) == "[object Boolean]";
		}
		// 是否undefined
		function isUndefined(value) {
			return Object.prototype.toString.call(value) == "[object Undefined]";
		}
		// 是否是null
		function isNull(value) {
			return Object.prototype.toString.call(value) == "[object Null]";
		}
		// 是否数组
		function isArray(value) {
			return Object.prototype.toString.call(value) == "[object Array]";
		}
		// 是否是函数
		function isFunction(value) {
			return Object.prototype.toString.call(value) == "[object Function]";
		}
		// 是否是对象
		function isObject(value) {
			return Object.prototype.toString.call(value) == "[object Object]";
		}
		// 是否是正则表达式
		function isRegExp(value) {
			return Object.prototype.toString.call(value) == "[object RegExp]";
		}
		// 是否是日期对象
		function isDate(value) {
			return Object.prototype.toString.call(value) == "[object Date]";
		}
		/* ----------------------------------------------------------------- */
		/* ------------------------密码强度--------------------------------- */
		/* ----------------------------------------------------------------- */
		function getPasswordLv(stringText) {
			if (stringText) {
				let passLv = 0;
				if (stringText.length >= 6) {
					passLv++;
				}
				if (/[0-9]/.test(stringText)) {
					passLv++;
				}
				if (/[a-z]/.test(stringText)) {
					passLv++;
				}
				if (/[A-Z]/.test(stringText)) {
					passLv++;
				}
				if (/[\.|-|_]/.test(stringText)) {
					passLv++;
				}
				return passLv;
			}
		}
		/* ******************************************************************************************** */
		/* ********************************************set操作**************************************** */
		/* ******************************************************************************************** */
		/* set并集 [合并数组]  */
		function setMerge(...value) {
			let arr = []
			for (let i = 0; i < value.length; i++) {
				arr = new Set(arr, value[i]);
			}
			return arr;
		}
		/* set交集 [相同部分集合] */
		function setOwn(value1, value2) {
			return new Set([...value1].filter((x) => {
				value2.has(x)
			}));
		}
		/* set差集 [不同部分] */
		function setUnlike(value1, value2) {
			return new Set([...value1].filter((x) => {
				!value2.has(x)
			}))
		}
		/* ******************************************************************************************** */
		/* **************************************localStroage缓存操作********************************** */
		/* ******************************************************************************************** */
		/* 添加缓存 */
		function local_set(key, value) {
			if (key && value) {
				window.localStorage.setItem(key, value);
			}
		}
		/* 获取指定缓存 */
		function local_get(key) {
			key ? key : null;
			return window.localStorage.getItem(key) || null;
		}
		/* 获取所有缓存 */
		function local_getAll() {
			return localStorage.valueOf();
		}
		/* 删除某个key缓存 */
		function local_remove(key) {
			localStorage.removeItem(key);
		}
		/* 清空缓存 */
		function local_clear() {
			localStorage.clear();
		}
		/* 判断key缓存是否存在 */
		function local_has(key) {
			return localStorage.hasOwnProperty(key)
		}
		/* ********************************************************************************************************* */
		/* ************************************************Date时间************************************************* */
		/* ********************************************************************************************************* */
		/* 获取当前时间 */
		/* 
		 isTimer 布尔值 true 年月日 + 时分秒  false 只有年月日
		 separatorFront : 年月日的分割线 默认 "-" 
		 separatorDehind : 时分秒的分割线 默认 ":" 
		 */
		function getNewDate(isTimer, separatorFront, separatorDehind) {
			let t = new Date();
			let time = "";
			let n = t.getFullYear();
			let y = bianhuan(t.getMonth() + 1);
			let r = bianhuan(t.getDate());
			let s = bianhuan(t.getHours());
			let f = bianhuan(t.getMinutes());
			let m = bianhuan(t.getSeconds());
			let front = separatorFront ?? "-";
			let behind = separatorDehind ?? ':';
			let timer = isTimer ?? false;
			if (!timer) {
				time = `${n}${front}${y}${front}${r}`
			} else {
				time = `${n}${front}${y}${front}${r} ${s}${behind}${f}${behind}${m}`
			}
			return time;
		}
		// 加“0”判断
		function bianhuan(s) {
			s = s < 10 ? "0" + s : s;
			return s;
		}
		/* 时间戳转字符串 */
		function switchDate(timestamp, isTimer, separatorFront, separatorDehind) {
			//1651222547924
			let time = "";
			let t = new Date(timestamp);
			let n = t.getFullYear();
			let y = bianhuan(t.getMonth() + 1);
			let r = bianhuan(t.getDate());
			let s = bianhuan(t.getHours());
			let f = bianhuan(t.getMinutes());
			let m = bianhuan(t.getSeconds());
			let front = separatorFront ?? "-";
			let behind = separatorDehind ?? ':';
			let timer = isTimer ?? false;
			if (!timer) {
				time = `${n}${front}${y}${front}${r}`
			} else {
				time = `${n}${front}${y}${front}${r} ${s}${behind}${f}${behind}${m}`
			}
			return time;
		}
		/* 
		通过时间返回星期几
		 getDate 可以是时间戳 , 也可以是时间格式的字符串
		 */
		function getWeek(getDate) {
			let t = new Date(getDate);
			let r = bianhuan(t.getDate());
			let week = t.getDay()
			let str = '星期'
			let strNumber = ['一', '二', '三', '四', '五', '六', '日']
			if (week == 0) {
				week = strNumber.length - 1
			} else {
				week -= 1;
			}
			return str + strNumber[week]
		}
		// 对年份是闰年的判断 
		function isLeapYear(getDate) {
			let t = new Date(getDate);
			let n = t.getFullYear();
			if (n % 4 == 0 && n % 100 != 0 || n % 400 == 0) {
				return true;
			}else{
				return false;
			}
		}
		/* ********************************************************************************************************* */
		/* ************************************************获取状态************************************************** */
		/* ********************************************************************************************************* */
		/* 
		 判断登录的是PC还是手机端
		 false PC
		 true 手机
		 */
		function isMobile() {
			var userAgentInfo = navigator.userAgent;
			var mobileAgents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"];
			var mobile_flag = false;
			//根据userAgent判断是否是手机
			for (var v = 0; v < mobileAgents.length; v++) {
				if (userAgentInfo.indexOf(mobileAgents[v]) > 0) {
					mobile_flag = true;
					break;
				}
			}
			var screen_width = window.screen.width;
			var screen_height = window.screen.height;
			//根据屏幕分辨率判断是否是手机
			if (screen_width < 500 && screen_height < 800) {
				mobile_flag = true;
			}
			return mobile_flag;
		}
		/* ********************************************************************************************************* */
		/* ************************************************输出***************************************************** */
		/* ********************************************************************************************************* */
		return {
			/*console打印集合 */
			log: log,
			error: error,
			inof: inof,
			warn: warn,
			group: group,
			table: table,
			tracer: tracer,
			/* 类型判断集合 */
			isString: isString,
			isNumber: isNumber,
			isBoolean: isBoolean,
			isUndefined: isUndefined,
			isNull: isNull,
			isArray: isArray,
			isFunction: isFunction,
			isObject: isObject,
			isRegExp: isRegExp,
			isDate: isDate,
			/* set操作 */
			setMerge: setMerge,
			setOwn: setOwn,
			setUnlike: setUnlike,
			/* 缓存操作 */
			local_set: local_set,
			local_get: local_get,
			local_getAll: local_getAll,
			local_remove: local_remove,
			local_clear: local_clear,
			local_has: local_has,
			getPasswordLv: getPasswordLv,
			/* data操作 */
			getNewDate: getNewDate,
			switchDate: switchDate,
			getWeek: getWeek,
			isLeapYear: isLeapYear,
			/* 其他 */
			isMobile: isMobile,
		}
	})()

  

posted @ 2022-04-29 20:35  小小潜力股i  阅读(34)  评论(0编辑  收藏  举报