JS常用方法(函数)总结

  • Node 获取本机 ip 地址

const interfaces = require('os').networkInterfaces()
let IPAddress = ''
for (let devName in interfaces) {
    let iface = interfaces[devName]
    for (let i = 0; i < iface.length; i++) {
        let alias = iface[i]
        if (alias.family === 'IPv4' && alias.address !== '127.0.0.1' && !alias.internal) {
            IPAddress = alias.address
        }
    }
}
  • 点击滚动到某个位置

function scrollToSomeWhere(ele, speed){
    if(!speed) speed = 300;
    if(!ele){
        $("html,body").animate({scrollTop:0},speed);
    }else{
        if(ele.length>0) $("html,body").animate({scrollTop:$(ele).offset().top - 150},speed);
    }
    return false;
}
$('.contactUsBtn').click(function () {
    scrollToSomeWhere('#toContactUs',300)
})
  • lodashmerge 函数实现

function isObject (value) {
    const type = typeof value
    return value !== null && (type === 'object' || type === 'function')
}
function merge (source, other) {
   if (!this.isObject(source) || !this.isObject(other)) {
          return other === undefined ? source : other
    }
// 合并两个对象的 key,另外要区分数组的初始值为 []
 return Object.keys({...source, ...other}).reduce((acc, key) => {
        // 递归合并 value
        acc[key] = this.merge(source[key], other[key])
        return acc
    }, Array.isArray(source) ? [] : {})
},
  • jsObject.Assign方法的实现
function zyEs6AssignPolyfill() {
       if (!Object.assign) {
           Object.defineProperty(Object, "assign", {
               enumerable: false,
               configurable: true,
               writable: true,
               value: function (target, firstSource) {
                   "use strict";
                   if (target === undefined || target === null)
                       throw new TypeError("Cannot convert first argument to object");
                   var to = Object(target);
                   for (var i = 1; i < arguments.length; i++) {
                       var nextSource = arguments[i];
                       if (nextSource === undefined || nextSource === null) continue;
                       var keysArray = Object.keys(Object(nextSource));
                       for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {
                           var nextKey = keysArray[nextIndex];
                           var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
                           if (desc !== undefined && desc.enumerable) to[nextKey] = nextSource[nextKey];
                       }
                   }
                   return to;
               }
           });
       }
   }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 33、JS中的本地存储 把一些信息存储在当前浏览器指定域下的某一个地方(存储到物理硬盘中)1、不能跨浏览器传输:在...
    萌妹撒阅读 6,423评论 0 2
  • 长久以来,面向对象在 JavaScript 编程范式中占据着主导地位。不过,最近人们对函数式编程的兴趣正在增长。函...
    神刀阅读 3,401评论 0 0
  • 前端开发面试题 面试题目: 根据你的等级和职位的变化,入门级到专家级,广度和深度都会有所增加。 题目类型: 理论知...
    怡宝丶阅读 7,397评论 0 7
  • 加入简书是两天前(2月19日),想法比较简单,主要是两个目的: 1、每读完一本书写篇读后感,在加强理解书本内容的同...
    Cool_Lee阅读 3,764评论 1 8
  • 小小的香烟犹如自己的枕边情人,离开了它,甚至比失恋还让人痛苦。特别是刚开始戒烟的1~3周最难受,没有毅力和挑战精神...
    大东教练阅读 10,358评论 0 0

友情链接更多精彩内容