常用的前端JavaScript方法封装
一些常用的前端JavaScript方法封装,自用备份。
1、输入一个值,返回其数据类型
1 | function type(para) { |
2、数组去重
1 | function unique1(arr) { |
3、字符串去重
1 | String.prototype.unique = function () { |
4、深拷贝 浅拷贝
1 | //深克隆(深克隆不考虑函数) |
5、reverse底层原理和扩展
1 | // 改变原数组 |
6、圣杯模式的继承
1 | function inherit(Target, Origin) { |
7、找出字符串中第一次只出现一次的字母
1 | String.prototype.firstAppear = function () { |
8、找元素的第n级父元素
1 | function parents(ele, n) { |
9、 返回元素的第n个兄弟节点
1 | function retSibling(e, n) { |
10、封装mychildren,解决浏览器的兼容问题
1 | function myChildren(e) { |
11、判断元素有没有子元素
1 | function hasChildren(e) { |
12、我一个元素插入到另一个元素的后面
1 | Element.prototype.insertAfter = function (target, elen) { |
13、返回当前的时间(年月日时分秒)
1 | function getDateTime() { |
14、获得滚动条的滚动距离
1 | function getScrollOffset() { |
15、获得视口的尺寸
1 | function getViewportOffset() { |
16、获取任一元素的任意属性
1 | function getStyle(elem, prop) { |
17、绑定事件的兼容代码
1 | function addEvent(elem, type, handle) { |
18、解绑事件
1 | function removeEvent(elem, type, handle) { |
19、取消冒泡的兼容代码
1 | function stopBubble(e) { |
20、检验字符串是否是回文
1 | function isPalina(str) { |
21、检验字符串是否是回文
1 | function isPalindrome(str) { |
22、兼容getElementsByClassName方法
1 | Element.prototype.getElementsByClassName = Document.prototype.getElementsByClassName = function (_className) { |
23、运动函数
1 | function animate(obj, json, callback) { |
24、弹性运动
1 | function ElasticMovement(obj, target) { |
25、封装自己的forEach方法
1 | Array.prototype.myForEach = function (func, obj) { |
26、封装自己的filter方法
1 | Array.prototype.myFilter = function (func, obj) { |
27、数组map方法
1 | Array.prototype.myMap = function (func) { |
28、数组every方法
1 | Array.prototype.myEvery = function (func) { |
29、数组reduce方法
1 | Array.prototype.myReduce = function (func, initialValue) { |
30、获取url中的参数
1 | function getWindonHref() { |
31、数组排序
1 | // 快排 [left] + min + [right] |
32、遍历Dom树
1 | // 给定页面上的DOM元素,将访问元素本身及其所有后代(不仅仅是它的直接子元素) |
33、原生js封装ajax
1 | function ajax(method, url, callback, data, flag) { |
34、异步加载script
1 | function loadScript(url, callback) { |
35、cookie管理
1 | var cookie = { |
36、实现bind()方法
1 | Function.prototype.myBind = function (target) { |
37、实现call()方法
1 | Function.prototype.myCall = function () { |
38、实现apply()方法
1 | Function.prototype.myApply = function () { |
39、防抖
1 | function debounce(handle, delay) { |
40、节流
1 | function throttle(handler, wait) { |
41、requestAnimFrame兼容性方法
1 | window.requestAnimFrame = (function () { |
42、cancelAnimFrame兼容性方法
1 | window.cancelAnimFrame = (function () { |
43、jsonp底层方法
1 | function jsonp(url, callback) { |
44、获取url上的参数
1 | function getUrlParam(sUrl, sKey) { |
45、格式化时间
1 | function formatDate(t, str) { |
46、验证邮箱的正则表达式
1 | function isAvailableEmail(sEmail) { |
47、函数柯里化
1 | //是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术 |
48、大数相加
1 | function sumBigNumber(a, b) { |
49、单例模式
1 | function getSingle(func) { |
常用的前端JavaScript方法封装
http://zzzhanglk.github.io/2022/05/12/frontEnd/commonJSmethod/