常用功能JS收藏(提升代碼逼格)

  • 獲取URL的查詢參數
    let query = {};
    location.search.replace(/([^?&=]+)=([^&]+)/g, (_,k,v) => query[k]=v);
    
  • 生成隨機字符串
    // 生成長度爲11的隨機字母數字字符串
    Math.random().toString(36).substring(2);
    
  • 過去或未來幾天的時間集合
    // 創建過去三天的數組
    [...Array(3).keys()].map(days => new Date(Date.now() - 86400000 * days));
    
  • 隨機16進制顏色值
    '#' + Math.floor(Math.random() * 0xffffff).toString(16).padEnd(6, '0');
    
  • ES6數組去重
    [...new Set(arr)]
    
  • 手機號正則過濾字符 11位手機號
    str.replace(/^([^1]*)([\d]{0,11})(.*)$/, '$2')
    
  • 固定電話正則過濾字符 13位包含'-'
    str.replace(/^([^\d]*)([\d-]{0,13})(.*)$/, '$2');
    
  • js 可選鏈(實驗性功能)
    const a = obj?.a; // undefined, 如果沒有"?"就報錯了
    // const a = (null === obj || undefined === obj) ? undefined : obj.a;
    const baz = obj?.foo?.bar?.baz;
    
    var object1 = {}
    var foo = object1.foo ?? "default"; // "default"
    
    let a = false;
    a ||= 1; // a || (a = 1);
    
    obj::func // 等價 func.bind(obj)
    
    //函數科裏化
    function add(x, y) { return x + y; }
    const addOne = add(1, ?); // 返回函數addOne
    addOne(2); // 3
    

\color{#4285f4}{持}\color{#ea4335}{續}\color{#fbbc05}{更}\color{#4285f4}{新}\color{#34a853}{中}\color{#ea4335}{。。。}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章