JS常用方法(函數(shù))總結(jié)

  • Node 獲取本機(jī) 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 函數(shù)實現(xiàn)

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,另外要區(qū)分?jǐn)?shù)組的初始值為 []
 return Object.keys({...source, ...other}).reduce((acc, key) => {
        // 遞歸合并 value
        acc[key] = this.merge(source[key], other[key])
        return acc
    }, Array.isArray(source) ? [] : {})
},
  • jsObject.Assign方法的實現(xiàn)
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;
               }
           });
       }
   }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 33、JS中的本地存儲 把一些信息存儲在當(dāng)前瀏覽器指定域下的某一個地方(存儲到物理硬盤中)1、不能跨瀏覽器傳輸:在...
    萌妹撒閱讀 2,256評論 0 2
  • 長久以來,面向?qū)ο笤?JavaScript 編程范式中占據(jù)著主導(dǎo)地位。不過,最近人們對函數(shù)式編程的興趣正在增長。函...
    神刀閱讀 564評論 0 0
  • 前端開發(fā)面試題 面試題目: 根據(jù)你的等級和職位的變化,入門級到專家級,廣度和深度都會有所增加。 題目類型: 理論知...
    怡寶丶閱讀 2,694評論 0 7
  • 加入簡書是兩天前(2月19日),想法比較簡單,主要是兩個目的: 1、每讀完一本書寫篇讀后感,在加強(qiáng)理解書本內(nèi)容的同...
    Cool_Lee閱讀 683評論 1 8
  • 小小的香煙猶如自己的枕邊情人,離開了它,甚至比失戀還讓人痛苦。特別是剛開始戒煙的1~3周最難受,沒有毅力和挑戰(zhàn)精神...
    大東教練閱讀 5,028評論 0 0

友情鏈接更多精彩內(nèi)容