一、输入一个值,返回其数据类型
1 | function type(para) { |
二、数组去重
1 | function unique1(arr) { |
三、字符串去重
1 | String.prototype.unique = function () { |
四、深拷贝 浅拷贝
1 | //深克隆(深克隆不考虑函数) |
五、reverse底层原理和扩展
1 | // 改变原数组 |
六、圣杯模式的继承
1 | function inherit(Target, Origin) { |
七、找出字符串中第一次只出现一次的字母
1 | String.prototype.firstAppear = function () { |
八、找元素的第n级父元素
1 | function parents(ele, n) { |
九、返回元素的第n个兄弟节点
1 | function retSibling(e, n) { |
十、封装mychildren,解决浏览器的兼容问题
1 | function myChildren(e) { |
十一、判断元素有没有子元素
1 | function hasChildren(e) { |
十二、一个元素插入到另一个元素的后面
1 | Element.prototype.insertAfter = function (target, elen) { |
十三、返回当前的时间(年月日时分秒)
1 | function getDateTime() { |
十四、获得滚动条的滚动距离
1 | function getScrollOffset() { |
十五、获得视口的尺寸
1 | function getViewportOffset() { |
十六、获取任一元素的任意属性
1 | function getStyle(elem, prop) { |
十七、绑定事件的兼容代码
1 | function addEvent(elem, type, handle) { |
十八、解绑事件
1 | function removeEvent(elem, type, handle) { |
十九、取消冒泡的兼容代码
1 | function stopBubble(e) { |
二十、检验字符串是否是回文
1 | function isPalina(str) { |
二十一、检验字符串是否是回文
1 | function isPalindrome(str) { |
二十二、兼容getElementsByClassName方法
1 | Element.prototype.getElementsByClassName = Document.prototype.getElementsByClassName = function (_className) { |
二十三、运动函数
1 | function animate(obj, json, callback) { |
二十四、弹性运动
1 | function ElasticMovement(obj, target) { |
二十五、封装自己的forEach方法
1 | Array.prototype.myForEach = function (func, obj) { |
二十六、封装自己的filter方法
1 | Array.prototype.myFilter = function (func, obj) { |
二十七、数组map方法
1 | Array.prototype.myMap = function (func) { |
二十八、数组every方法
1 | Array.prototype.myEvery = function (func) { |
二十九、数组reduce方法
1 | Array.prototype.myReduce = function (func, initialValue) { |
三十、获取url中的参数
1 | function getWindonHref() { |
三十一、数组排序
1 | // 快排 [left] + min + [right] |
三十二、遍历Dom树
1 | // 给定页面上的DOM元素,将访问元素本身及其所有后代(不仅仅是它的直接子元素) |
三十三、原生js封装ajax
1 | function ajax(method, url, callback, data, flag) { |
三十四、异步加载script
1 | function loadScript(url, callback) { |
三十五、cookie管理
1 | var cookie = { |
三十六、实现bind()方法
1 | Function.prototype.myBind = function (target) { |
三十七、实现call()方法
1 | Function.prototype.myCall = function () { |
三十八、实现apply()方法
1 | Function.prototype.myApply = function () { |
三十九、防抖
1 | function debounce(handle, delay) { |
四十、节流
1 | function throttle(handler, wait) { |
四十一、requestAnimFrame兼容性方法
1 | window.requestAnimFrame = (function () { |
四十二、cancelAnimFrame兼容性方法
1 | window.cancelAnimFrame = (function () { |
四十三、jsonp底层方法
1 | function jsonp(url, callback) { |
四十四、获取url上的参数
1 | function getUrlParam(sUrl, sKey) { |
四十五、格式化时间
1 | function formatDate(t, str) { |
四十六、验证邮箱的正则表达式
1 | function isAvailableEmail(sEmail) { |
四十七、函数柯里化
1 | //是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术 |
四十八、大数相加
1 | function sumBigNumber(a, b) { |
四十九、单例模式
1 | function getSingle(func) { |
五十、获取浏览器信息
1 | function getBrowserInfo() { |
五十、UUID生成
1 | function generateUUID() { |



