1. 获取数据类型

    function getType(params) {
return Object.prototype.toString.call(params).slice(, -)
}

2. 深拷贝

    function deepCopy(params) {
var obj;
if (typeof params === 'object') {
if (Array.isArray(params)) {
obj = [];
for (var i = ; i < params.length; i++) {
obj.push(arguments.callee(params[i]))
}
} else {
obj = {};
for (var c in params) {
obj[c] = arguments.callee(params[c]);
}
}
} else { return params; }
return obj;
}

3. 实现数字千分位

1)toLocaleString

    function toFormat(num) {
num = Number(num);
return num.toLocaleString();
}

2)正则

    function toFormat(num) {
num = num.toString();
var t = /\B(?=(\d{})+(?!\d))/g;
if (!!~num.indexOf('.')) {
var arr = num.split('.');
return (arr[] || '').replace(t, ',') + '.' + arr[];
}
return num.replace(t, ',')
}

4. 查询url后面参数

1)循环

    function getParamsName(attr) {
var url = location.href; // 'baidu.com?name=黎明&age=18&habit=basketball'
var params = url.split('?')[];
var paramsObj = {};
if (params) {
var paramsList = params.split('&') || [];
for (var i = ; i < paramsList.length; i++) {
var item = paramsList[i].split('=') || [];
paramsObj[item[]] = item[];
}
}
return decodeURIComponent(paramsObj[attr]);
}

2)正则

    function getParamsName(attr) {
let match = RegExp(`[?&]${attr}=([^&]*)`).exec(window.location.search)
return match && decodeURIComponent(match[])
}

5. 获取当前时间

    function getDate() {
var date = new Date();
var year = date.getFullYear(),
month = date.getMonth() + ,
day = date.getDate(),
hour = date.getHours(),
minute = date.getMinutes(),
second = date.getSeconds(); var fill = function (num) {
num = num.toString();
return num.padStart(, '') // 为个位数时 补充前面的零
} var currentdate = year + '-' + fill(month) + '-' + fill(day) + ' ' + fill(hour) + ':' + fill(minute) + ':' + fill(second);
return currentdate;
}

6. 数组去重

1) es5

    function uniq(arr) {
if (Array.isArray(arr)) {
return arr.filter((item, index, array) => array.indexOf(item) === index);
}
}

2)es6

    function uniq(arr) {
return [...new Set(arr)]
}

7. 计算字符串出现次数最多的字母

    function count(str) {
var obj = {}, max = { key: '', val: };
for (var i = ; i < str.length; i++) {
var item = str[i];
!obj[item] ? obj[item] = : obj[item]++;
if (obj[item] > max.val) {
max.val = obj[item];
max.key = item;
}
}
return max;
}

未完待续...

js 封装常用方法的更多相关文章

  1. js 的常用方法和对象

    每日分享: 加油!你一定可以!你是最牛逼的!!!-------------------------------------------------------------------------- - ...

  2. 原生JS封装Ajax插件(同域&&jsonp跨域)

    抛出一个问题,其实所谓的熟悉原生JS,怎样的程度才是熟悉呢? 最近都在做原生JS熟悉的练习... 用原生Js封装了一个Ajax插件,引入一般的项目,传传数据,感觉还是可行的...简单说说思路,如有不正 ...

  3. 使用NW.js封装微信公众号菜单编辑器为桌面应用

    开发微信公众号的朋友都会遇到一个常见的需求就是修改自定义菜单,如果每个人都去开发这个不经常使用的功能确实有点浪费时间.前段时间在github上找到一个仿企业号的菜单编辑界面,结合微信的C# SDK开发 ...

  4. 用jQuery基于原生js封装的轮播

    我发现轮播在很多网站里面都用到过,一个绚丽的轮播可以为网页增色不少,最近闲来无事,也用原生js封装了一个轮播,可能不像网上的插件那么炫,但是也有用心去做.主要用了闭包的思想.需要传递的参数有:图片地址 ...

  5. 原生JS封装简单动画效果

    原生JS封装简单动画效果 一致使用各种插件,有时候对原生JS陌生了起来,所以决定封装一个简单动画效果,熟悉JS原生代码 function animate(obj, target,num){ if(ob ...

  6. 使用原生JS封装Ajax

    使用原生 的JS封装 Ajax,实现 仿JQuery的Ajax,post,get三种异步请求方式: var MAjax = { //根据浏览器创建异步对象 createXhr: function () ...

  7. js封装的方法

    1.JS封装就是尽量把使用的方式简单化,内部逻辑和使用解耦.通俗的说就是使用的时候只需要知道参数和返回值,其他条件尽量不要使用人员进行设置. 2.JS封装的方法有函数方式.对象的方式.闭包的方式. 举 ...

  8. JS封装cookie操作函数实例(设置、读取、删除)

    本文实例讲述了JS封装cookie操作函数.分享给大家供大家参考,具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ...

  9. 原生Js封装的弹出框-弹出窗口-页面居中-多状态可选

    原生Js封装的弹出框-弹出窗口-页面居中-多状态可选   实现了一下功能: 1.title可自定义 可拖拽 2.width height可以自定义 3.背景遮罩和透明度可以自定义 4.可以自己编辑弹出 ...

随机推荐

  1. 微信小程序wxss设置样式

    微信小程序wxss设置样式 对于以前搞客户端开发的来说,有着客户端的逻辑,就是不知道怎么设置样式,把对应的控件显示出来 一.wxml 界面结构wxmL比较容易理解,主要是由八大类基础组件构成: 一.视 ...

  2. STA组件好资料

    http://blog.h5min.cn/zj510/article/details/38824353 http://download.csdn.net/user/zj510/uploads/1 ht ...

  3. android解析xml文件的方式

    android解析xml文件的方式   作者:东子哥 ,发布于2012-11-26,来源:博客园   在androd手机中处理xml数据时很常见的事情,通常在不同平台传输数据的时候,我们就可能使用xm ...

  4. 【bzoj3942】[Usaco2015 Feb]Censoring

    [题目大意] 有一个S串和一个T串,长度均小于1,000,000,设当前串为U串,然后从前往后枚举S串一个字符一个字符往U串里添加,若U串后缀为T,则去掉这个后缀继续流程. [样例输入] whatth ...

  5. NOIP2012摆花

    题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共 m 盆.通过调查顾客的喜好,小明列出了顾客最喜欢的 n 种花,从 1 到 n 标号.为了在门口展出更多种花,规定第 i 种花不 ...

  6. ArcGIS JS API实现的距离测量与面积量算

    转自https://www.cnblogs.com/deliciousExtra/p/5490937.html

  7. DEDE 5.7中各函数所在的文件和位置

    /include/taglib/tag.lib.php 2 //function GetTags()/include/payment/yeepay.php 415 function log_resul ...

  8. virsh 查看hypervisor特性

    [root@opennebula var]# virsh -c qemu:///system nodeinfo CPU model: x86_64 CPU(s): CPU frequency: MHz ...

  9. 面试题:MySQL性能调优——索引详解与索引的优化 没用

    ——索引优化,可以说是数据库相关优化.理解尤其是查询优化中最常用的优化手段之一.所以,只有深入索引的实现原理.存储方式.不同索引间区别,才能设计或使用最优的索引,最大幅度的提升查询效率! 一.BTre ...

  10. 为什么要有http响应码

    其实还是比较容易理解的.这就和你去小卖部买东西一样,老板,我想要一袋大米,那老板先得回答有还是没有,还是说我们这没有,去其它地方买去吧,得先给个说法,这个说法就是http相应码,有了http响应码之后 ...