<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>

          20 個簡潔的 JS 代碼片段

          共 8163字,需瀏覽 17分鐘

           ·

          2021-09-03 12:29

          1、單行 If-Else 語句

          這是許多編程語言的共同特征。你可以使用三元運算符用一行代碼編寫整個語句,而不是在多行上編寫 if-else。
          例如:
          const age = 12;
          let ageGroup;


          // LONG FORM
          if (age > 18) {
            ageGroup = "An adult";
          else {
            ageGroup = "A child";
          }


          // SHORTHAND
          ageGroup = age > 18 ? "An adult" : "A child";
          但是,不要過度使用它。它會使你的代碼更加冗長。明智的做法是僅用此替換簡單的表達(dá)式以提高可讀性并減少代碼行數(shù)。

          2、從數(shù)組中刪除重復(fù)項

          在 JavaScript 中,Set 是一個集合,它允許你僅存儲唯一值。這意味著刪除任何重復(fù)的值。
          因此,要從數(shù)組中刪除重復(fù)項,你可以將其轉(zhuǎn)換為集合,然后再轉(zhuǎn)換回數(shù)組。
          const numbers = [112033399];
          const uniqueNumbers = [...new Set(numbers)]; // -> [1, 20, 3, 9]
          困惑嗎?讓我解釋一下它是如何工作的:
          1)、new Set(numbers)從數(shù)字列表中創(chuàng)建一個集合。創(chuàng)建集合會自動刪除所有重復(fù)值。
          2)、展開運算符...將任何可迭代對象轉(zhuǎn)換為數(shù)組。這意味著將集合轉(zhuǎn)換回數(shù)組。[...new Set(numbers)]

          3、 較短的 If-Else 的空合并

          這也是 if-else 的簡寫。
          你可以使用看漲合并,而不是使用 if-else 構(gòu)造來檢查值是否為空。該nullish合并操作 ??,如果沒有定義左側(cè)返回右側(cè)。如果是,則返回左側(cè):
          let maybeSomething;


          // LONG FORM
          if(maybeSomething){
            console.log(maybeSomething)
          else {
            console.log("Nothing found")
          }


          //SHORTHAND
          console.log(maybeSomething ?? "Nothing found")

          4、防止崩潰的可選鏈

          如果訪問未定義的屬性,則會產(chǎn)生錯誤。這就是可選鏈的用武之地。
          在未定義屬性時使用可選鏈運算符,undefined將返回而不是錯誤。這可以防止你的代碼崩潰。
          例如:
          const student = {
            name"Matt",
            age27,
            address: {
              state"New York"
            },
          };


          // LONG FORM
          console.log(student && student.address && student.address.ZIPCode); // Doesn't exist - Returns undefined


          // SHORTHAND
          console.log(student?.address?.ZIPCode); // Doesn't exist - Returns undefined

          5、在沒有第三個變量的情況下交換兩個變量

          在 JavaScript 中,你可以使用解構(gòu)從數(shù)組中拆分值。這可以應(yīng)用于交換兩個變量而無需第三個:
          let x = 1;
          let y = 2;


          // LONGER FORM
          let temp = x;
          x = y;
          y = temp;


          // SHORTHAND
          [x, y] = [y, x];

          6、將任何值轉(zhuǎn)換為布爾值

          在 JavaScript 中,你可以使用 !! 在 JS 中將任何內(nèi)容轉(zhuǎn)換為布爾值。
          例如,這里有一些例子:
          !!true    // true
          !!2       // true
          !![]      // true
          !!"Test"  // true


          !!false   // false
          !!0       // false
          !!""      // false

          7、擴展運算符

          使用擴展運算符組合兩個數(shù)組...:
          const nums1 = [123];
          const nums2 = [456];


          // LONG FORM
          let newArray = nums1.concat(nums2);


          // SHORTHAND
          newArray = [...nums1, ...nums2];
          也可以使用此語法代替將值推送到數(shù)組:
          let numbers = [123];


          // LONGER FORM
          numbers.push(4);
          numbers.push(5);


          // SHORTHAND
          numbers = [...numbers, 45];

          8、傳播解構(gòu)

          使用擴展運算符將剩余元素分配給變量:
          const student = {
            name"Matt",
            age23,
            city"Helsinki",
            state"Finland",
          };


          // LONGER FORM
          const name = student.name;
          const age = student.age;
          const address = { city: student.city, state: student.state };


          // SHORTHAND
          const { name, age, ...address } = student;

          9、 使用 && 進(jìn)行短路評估

          不必用if語句檢查某事是否為真,你可以使用&&運算符:
          var isReady = true;


          function doSomething(){
            console.log("Yay!");
          }


          // LONGER FORM
          if(isReady){
            doSomething();
          }


          // SHORTHAND
          isReady && doSomething();

          10、類固醇的字符串

          通過將字符串包裝在反引號內(nèi)并${}用于嵌入值,從而在字符串之間插入變量。
          例如:
          const age = 41;
          const sentence = `I'm ${age} years old`;


          // result: I'm 41 years old

          11、 從數(shù)組中查找特定元素

          使用find()方法查找匹配特定條件的元素:
          const fruits = [
            { type"Banana", color: "Yellow" },
            { type"Apple", color: "Green" }
          ];


          // LONGER FORM
          let yellowFruit;
          for (let i = 0; i < fruits.length; ++i) {
            if (fruits[i].color === "Yellow") {
              yellowFruit = fruits[i];
            }
          }


          // SHORTHAND
          yellowFruit = fruits.find((fruit) => fruit.color === "Yellow");

          12、對象屬性賦值

          你是否希望對象鍵與值具有相同的名稱?你可以省略對象文字來執(zhí)行此操作:
          const name = "Luis", city = "Paris", age = 43, favoriteFood = "Spaghetti";


          // LONGER FORM
          const person = {
            name: name,
            city: city,
            age: age,
            favoriteFood: favoriteFood
          };


          // SHORTHAND
          const person = { name, city, age, favoriteFood };

          13、壓縮 For 循環(huán)

          使用內(nèi)置forEach()方法通過一行代碼循環(huán)遍歷數(shù)組:
          const numbers = [12345];


          // LONGER FORM
          for(let i = 0; i < numbers.length; i++){
            console.log(numbers[i]);
          }


          // SHORTHAND
          numbers.forEach(number => console.log(number));

          14、 默認(rèn)功能參數(shù)

          你可以為函數(shù)參數(shù)提供默認(rèn)值:
          // LONG FORM
          function pickUp(fruit{
            if(fruit === undefined){
              console.log("I picked up a Banana");
            } else {
              console.log(`I picked up a ${fruit}`);
            }
          }


          // SHORTHAND
          function pickUp(fruit = "Banana"{
            console.log(`I picked up a ${fruit}`)
          }


          pickUp("Mango"); // -> I picked up a Mango
          pickUp();        // -> I picked up a Banana

          15、將對象的值收集到數(shù)組中

          用于Object.values()將對象的所有值收集到一個新數(shù)組中:
          const info = { name"Matt"country"Finland"age35 };


          // LONGER FORM
          let data = [];
          for (let key in info) {
            data.push(info[key]);
          }


          // SHORTHAND
          const data = Object.values(info);

          16、檢查一個項目是否存在于數(shù)組中

          這不一定是速記,因為你幾乎不會保存幾個字符。但這是一種更清潔的方法。
          你可以使用 includes() 方法,而不是使用 indexOf() 方法來檢查元素是否在數(shù)組中。這使你的意圖非常明確:
          let numbers = [123];


          // LONGER FORM
          const hasNumber1 = numbers.indexOf(1) > -1 // -> True


          // SHORTHAND/CLEANER APPROACH
          const hasNumber1 = numbers.includes(1)     // -> True

          17、壓縮多個條件

          避免使用長|| 檢查多個條件鏈,你可以使用你剛剛在上一個技巧中學(xué)到的東西——即,使用 includes() 方法:
          const num = 1;


          // LONGER FORM
          if(num == 1 || num == 2 || num == 3){
            console.log("Yay");
          }


          // SHORTHAND
          if([1,2,3].includes(num)){
            console.log("Yay");
          }

          18、 指數(shù)運算符

          你Math.pow()習(xí)慣把一個數(shù)字提高到一個冪嗎?你知道你也可以使用**運算符嗎?
          // LONGER FORM
          Math.pow(4,2); // 16
          Math.pow(2,3); // 8


          // SHORTHAND
          4**2 // 16
          2**3 // 8

          19、 Math.floor() 簡寫

          四舍五入Math.floor()并不是什么新鮮事。但是你知道你也可以使用~~運算符嗎?
          例如:
          // LONG FORM
          Math.floor(5.25// -> 5.0


          // SHORTHAND
          ~~5.25 // -> 5.0

          20、 用一行代碼分配多個值

          使用解構(gòu)語法在一行中分配多個值:
          let num1, num2;


          // LONGER FORM
          num1 = 10;
          num2 = 100;


          // SHORTHAND
          [num1, num2] = [10100];
          這也適用于使用 JavaScript 對象:
          student = {
            name"Matt",
            age29,
          };


          // LONGER FORM
          let name = student.name;
          let age = student.age;


          // SHORTHAND
          let { name, age } = student;

          逆鋒起筆是一個專注于程序員圈子的技術(shù)平臺,你可以收獲最新技術(shù)動態(tài)最新內(nèi)測資格BAT等大廠大佬的經(jīng)驗增長自身學(xué)習(xí)資料職業(yè)路線賺錢思維,微信搜索逆鋒起筆關(guān)注!

          22 個超詳細(xì)的 JS 數(shù)組方法
          靠,居然能通過 DOM 來改變 JS!
          一行 JS 實現(xiàn)的功能,看起來像一個前端專家
          Vue.js 開發(fā)移動端經(jīng)驗總結(jié)
          必備的 VS code 插件

          瀏覽 25
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <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>
                  大香蕉久久爱 | 亚洲免费欧洲 | 人在操逼 | 波多野结衣熟练中出 | 免费av特级 |