<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          22個(gè)有用的JavaScript單行程序

          共 5821字,需瀏覽 12分鐘

           ·

          2021-04-26 06:35

          全世界有超過(guò)1000萬(wàn)的Javascript開發(fā)人員,而且這個(gè)數(shù)字每天都在增加。盡管JavaScript更出名的是它的動(dòng)態(tài)特性,但它也有許多其他很棒的特性。在這篇博客中,我們將看到20個(gè)你應(yīng)該知道的JavaScript單行程序。

          1.隨機(jī)ID生成

          當(dāng)你在進(jìn)行原型設(shè)計(jì)并需要唯一的id時(shí),這可以成為你的首選功能。

          const a = Math.random().toString(36).substring(2);
          console.log(a)
          ----------------------------
          72pklaoe38u

          2.生成范圍內(nèi)的隨機(jī)數(shù)

          在很多情況下,我們需要在一個(gè)范圍內(nèi)生成一個(gè)隨機(jī)數(shù)。Math.random函數(shù)可以幫助我們生成隨機(jī)數(shù),然后將其轉(zhuǎn)換為所需的范圍。

          max = 20
          min = 10
          var a = Math.floor(Math.random() * (max - min + 1)) + min;
          console.log(a)
          -------------------------
          17

          3.隨機(jī)排列數(shù)組(洗牌)

          在JavaScript中,我們沒(méi)有一個(gè)模塊,因?yàn)閜ython有 random.shuffle(),但還是有一種方法可以在一行代碼中洗牌一個(gè)數(shù)組。

          var arr = ["A", "B", "C","D","E"];
          console.log(arr.slice().sort(() => Math.random() - 0.5))
          ------------------------------
          [ 'C', 'B', 'A', 'D', 'E' ]

          4.獲取隨機(jī)布爾值

          Javascript中的 Math.random 函數(shù)可用于生成范圍之間的隨機(jī)數(shù)。要生成一個(gè)隨機(jī)布爾值,我們需要隨機(jī)獲取一個(gè)介于0到1之間的數(shù)字,然后檢查它是否大于或小于0.5。

          const randomBoolean = () => Math.random() >= 0.5;
          console.log(randomBoolean());
          ---------------------------------------
          false

          5.生成隨機(jī)十六進(jìn)制代碼

          您可以使用這個(gè)一行程序挑戰(zhàn)自己作為web開發(fā)人員的能力。這個(gè)一行程序?qū)⑸梢粋€(gè)隨機(jī)的十六進(jìn)制代碼。您可以使用一行程序生成3-6種顏色代碼,這將為您創(chuàng)建一個(gè)顏色托盤。

          console.log('#' + Math.floor(Math.random() * 0xffffff).toString(16).padEnd(6, '0'));

          ------------------1st Run------------
          #48facd
          ------------------2nd Run-------------
          #93d806
          ------------------3rd Run-------------
          #9072f9

          6.反轉(zhuǎn)字符串

          反轉(zhuǎn)字符串有很多方法,但這是我在互聯(lián)網(wǎng)上找到的最簡(jiǎn)單的方法之一。

          const reverse = str => str.split('').reverse().join('');
          console.log(reverse('javascript'));
          ----------------------------------------
          tpircsavaj

          7.交換兩個(gè)變量

          下面的代碼展示了一些簡(jiǎn)單的方法來(lái)交換兩個(gè)變量,而不需要使用第三個(gè)變量,只需要一行代碼。

          a = 5
          b = 7
          ---------方法 1---------
          b = [a, a = b][0]; // One Liner
          ----------方法 2-----------
          [a,b] = [b,a];
          console.log("A=",a)
          console.log("B=",b)

          8.多變量分配

          像Python一樣,JavaScript還可以使用這種巧妙的解構(gòu)技術(shù)在同一行代碼中同時(shí)分配多個(gè)變量。

          var [a,b,c,d] = [20,14,30,"COD"]
          console.log(a,b,c,d)
          ------------------------------------
          20 14 30 COD

          9.檢查偶數(shù)和奇數(shù)

          有很多方法可以做到這一點(diǎn),最簡(jiǎn)單的方法之一就是使用箭頭函數(shù)并只用一行編寫整個(gè)代碼。

          const isEven = num => num % 2 === 0;
          console.log(isEven(2));
          ---------------------------------
          true
          console.log(isEven(3));
          ----------------------------------
          false

          10.FizzBuzz

          這個(gè)問(wèn)題是用來(lái)檢查程序員核心的著名面試問(wèn)題之一。在這個(gè)測(cè)試中,我們需要編寫一個(gè)程序來(lái)打印從1到100的數(shù)字。但如果是3的倍數(shù),則打印“Fizz”而不是數(shù)字,如果是5的倍數(shù),則打印“Buzz”。

          for(i=0;++i<10;console.log(i%5?f||i:f+'Buzz'))f=i%3?'':'Fizz'
          ----------------------------------
          1
          2
          Fizz
          4
          Buzz
          Fizz
          7
          8
          Fizz

          11.回文

          回文是一個(gè)字符串或數(shù)字,當(dāng)它被反轉(zhuǎn)時(shí)看起來(lái)完全相同。例如:abba,121等。

          const isPalindrome = str => str === str.split('').reverse().join('');

          result = isPalindrome('abcba');
          console.log(result)
          -----------------------------------
          true

          result = isPalindrome('abcbc');
          console.log(result)
          ---------------------------------
          false

          12.檢查數(shù)組中的所有元素是否都滿足特定條件

          const hasEnoughSalary = (salary) => salary >= 30000
          const salarys = [70000, 19000, 12000, 30000, 15000, 50000]
          result = salarys.every(hasEnoughSalary)
          console.log(result)
          -------------------------------
          false
          const salarys = [70000, 190000 ,120000, 30000, 150000,50000]
          result = salarys.every(hasEnoughSalary) // Results in false
          console.log(result)
          ---------------------------------
          true

          13.計(jì)算兩個(gè)給定日期之間的天數(shù)

          const days = (date, otherDate) => Math.ceil(Math.abs(date - otherDate) / (86400000));
          result = days(new Date('2020-04-15'), new Date('2021-01-15'));
          console.log(result)
          --------------------------------------------------------
          275

          為了計(jì)算兩個(gè)日期之間的天數(shù),我們首先找到兩個(gè)日期之間的絕對(duì)值,然后用86400000除以它,它等于一天內(nèi)的毫秒數(shù),最后,我們四舍五入并返回結(jié)果。

          14.將字符串轉(zhuǎn)換為數(shù)字

          將字符串轉(zhuǎn)換為數(shù)字的一種非常簡(jiǎn)單的方法是使用類型轉(zhuǎn)換。

          toNumber = str => +str;
          toNumber = str => Number(str);
          result = toNumber("2");
          console.log(result)
          console.log(typeof(result))
          ----------------------------------
          2
          number

          15.合并多個(gè)數(shù)組

          const cars = ['??', '??'];
          const trucks = ['??', '??'];
          ----- 方法 1 -------
          const combined = cars.concat(trucks);
          console.log(combined)
          --------------------------------------------------
          [ '??', '??', '??', '??' ]
          ----- 方法 2 --------
          const combined = [].concat(cars,trucks);
          console.log(combined)
          --------------------------------------------------
          [ '??', '??', '??', '??' ]

          16.將數(shù)字截?cái)酁楣潭ǖ男?shù)點(diǎn)

          借助 Math.pow() 你可以將數(shù)字截?cái)酁槟硞€(gè)小數(shù)點(diǎn)的方法。

          const toFixed = (n, fixed) => ~~(Math.pow(10, fixed) * n) / Math.pow(10, fixed);
          -----------------------------------------------------------------
          toFixed(25.198726354, 1); // 25.1
          toFixed(25.198726354, 2); // 25.19
          toFixed(25.198726354, 3); // 25.198
          toFixed(25.198726354, 4); // 25.1987
          toFixed(25.198726354, 5); // 25.19872
          toFixed(25.198726354, 6); // 25.198726

          17.滾動(dòng)到頁(yè)面頂部

          window.scrollTo() 方法可以幫助你完成任務(wù)。它需要滾動(dòng)到頁(yè)面上該位置的x和y坐標(biāo)。如果將它們?cè)O(shè)置為(0,0),它將滾動(dòng)到頁(yè)面頂部。

          const goToTop = () => window.scrollTo(0, 0);
          goToTop();

          18.將華氏溫度轉(zhuǎn)換為攝氏溫度(反之亦然)

          無(wú)論選擇華氏溫度還是攝氏溫度,將所有溫度參數(shù)都轉(zhuǎn)換為一個(gè)單位始終是一個(gè)更好的主意。

          const celsiusToFahrenheit = (celsius) => celsius * 9/5 + 32;
          const fahrenheitToCelsius = (fahrenheit) => (fahrenheit - 32) * 5/9;
          --------Examples-------
          celsiusToFahrenheit(15); // 59
          celsiusToFahrenheit(-20); // -4
          fahrenheitToCelsius(59); // 15
          fahrenheitToCelsius(32); // 0

          19.特定Cookie的值

          cookie = name => `; ${document.cookie}`.split(`; ${name}=`).pop().split(';').shift();
          cookie('_ga');
          // Result: "GA1.3.974792242.1509957189"

          20.將文字復(fù)制到剪貼板

          將文本復(fù)制到剪貼板非常有用,也是一個(gè)很難解決的問(wèn)題。您可以在Internet上找到各種解決方案,但是下面的解決方案可能是最小,最聰明的解決方案之一。

          const copyTextToClipboard = async (text) => {
          await navigator.clipboard.writeText(text)
          }

          21.刪除HTML標(biāo)簽

          這種單行代碼使用正則表達(dá)式刪除了任何看起來(lái)像 <xxx> 的字符串,其中 x 可以是任何字符,包括 /

          "<b>A</b>".replace(/<[^>]+>/gi, "");

          22.克隆數(shù)組

          它將返回原始數(shù)組的副本。

          oldArray = [1,4,2,3]
          var newArray = oldArray.slice(0);
          console.log(newArray)
          ------------------------------------
          [1,4,2,3]

          原文:https://levelup.gitconnected.com/20-useful-javascript-one-liners-that-you-should-know-7f6271426bfb
          作者:Abhay Parashar

          粉絲福利

          極客時(shí)間專欄《朱赟技術(shù)管理課》7天有效,需要的速取!獲取資源請(qǐng)?jiān)诠娞?hào)對(duì)話框中回復(fù)關(guān)鍵字:JK04,關(guān)鍵字全部大寫哦!如果沒(méi)有關(guān)注請(qǐng)掃下面的二維碼。更多福利資料請(qǐng)查看公眾號(hào)菜單
          推薦文章(點(diǎn)擊可跳轉(zhuǎn))

          在Vue.js中加載字體的最佳做法

          經(jīng)驗(yàn)技巧:什么是職場(chǎng)暗語(yǔ)?

          新老手必備的34種JavaScript簡(jiǎn)寫優(yōu)化技術(shù)

          最近文章

          瀏覽 20
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美激情小说网 | 中文字幕精品无码网站人口 | 丁香婷婷激情网 | 天天日,天天干,天天操 | 中文字幕综合 |