• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 常用的前端JavaScript方法封装

常用的前端JavaScript方法封装

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了前端封装,JavaScript方法封装等相关知识,希望对您有所帮助

制作网站的时候经常会涉及一些JS方法,这边文章分享一些常用的前端JavaScript方法封装,希望对大家有用。


1、输入一个值,返回其数据类型**

function type(para) {    return Object.prototype.toString.call(para)}


2、数组去重

function unique1(arr) {    return [...new Set(arr)]}function unique2(arr) {    var obj = {};    return arr.filter(ele => {        if (!obj[ele]) {            obj[ele] = true;            return true;        }    })}function unique3(arr) {    var result = [];    arr.forEach(ele => {        if (result.indexOf(ele) == -1) {            result.push(ele)        }    })    return result;}


3、字符串去重

String.prototype.unique = function () {    var obj = {},        str = '',        len = this.length;    for (var i = 0; i < len; i++) {        if (!obj[this[i]]) {            str += this[i];            obj[this[i]] = true;        }    }    return str;}

去除连续的字符串

function uniq(str) {    return str.replace(/(\w)\1+/g, '$1')}

去除字符串空格

const trim = function(str, type) { // 去除空格, type:  1-所有空格  2-前后空格  3-前空格 4-后空格  type = type || 1  switch (type) {    case 1:      return str.replace(/\s+/g, '')    case 2:      return str.replace(/(^\s*)|(\s*$)/g, '')    case 3:      return str.replace(/(^\s*)/g, '')    case 4:      return str.replace(/(\s*$)/g, '')    default:      return str  }}


4、深拷贝 浅拷贝

//深克隆(深克隆不考虑函数)function deepClone(obj, result) {    var result = result || {};    for (var prop in obj) {        if (obj.hasOwnProperty(prop)) {            if (typeof obj[prop] == 'object' && obj[prop] !== null) {                // 引用值(obj/array)且不为null                if (Object.prototype.toString.call(obj[prop]) == '[object Object]') {                    // 对象                    result[prop] = {};                } else {                    // 数组                    result[prop] = [];                }                deepClone(obj[prop], result[prop])    } else {        // 原始值或func        result[prop] = obj[prop]    }  }}return result;}// 深浅克隆是针对引用值function deepClone(target) {    if (typeof (target) !== 'object') {        return target;    }    var result;    if (Object.prototype.toString.call(target) == '[object Array]') {        // 数组        result = []    } else {        // 对象        result = {};    }    for (var prop in target) {        if (target.hasOwnProperty(prop)) {            result[prop] = deepClone(target[prop])        }    }    return result;}// 无法复制函数var o1 = jsON.parse(jsON.stringify(obj1));


5、reverse底层原理和扩展

// 改变原数组Array.prototype.myReverse = function () {    var len = this.length;    for (var i = 0; i < len; i++) {        var temp = this[i];        this[i] = this[len - 1 - i];        this[len - 1 - i] = temp;    }    return this;}


6、圣杯模式的继承

function inherit(Target, Origin) {    function F() {};    F.prototype = Origin.prototype;    Target.prototype = new F();    Target.prototype.constructor = Target;    // 最终的原型指向    Target.prop.uber = Origin.prototype;}


7、找出字符串中第一次只出现一次的字母

String
  


 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 常用的前端JavaScript方法封装

相关文章

  • 将phpcms默认ckeditor编辑器换成KindEditor
  • php如何实现图片上传的封装
  • Photoshop设计国外木纹风格的网页模板
  • PHPCMS系统mysql优化教程
  • vue-router两种模式有什么区别
  • Illustrator绘制动感绚丽的广告背景
  • jquery怎么判断指定子元素是否存在
  • vue.js如何实现移入移出效果
  • dedecms5.7技术:“更新数据库archives表时出错,请检查
  • Ember.js和Vue.js对比,哪个框架更优秀?

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • PS制作质感的立体字
    • 建网站用哪里的服务器比较好?哪里的空间便宜
    • PhotoShop图层样式打造复古大气皇族金字效果教程
    • 一文搞定phpstorm+laravel+phpunit的配置
    • 五步搞定Laravel Migrations的使用
    • Photoshop制作高光梦幻效果的艺术字教程
    • 趣味讲解Node.js中的回调函数(附示例)
    • 浅谈css grid比Bootstrap更适合创建布局的原因
    • Photoshop制作液化效果的火焰艺术字教程
    • PhotoShop简单的制作马赛克拼图字体效果教程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有