天天看點

10個你不能錯過的JavaScript技巧

10個你不能錯過的JavaScript技巧

原文 | https://levelup.gitconnected.com/handy-javascript-shorthands-9ad9cc76d06d

翻譯 | 楊小二

在最新版的JavaScript 中,JavaScript 語言引入了更多的有用文法。在本文中,我将介紹幾個在JavaScript新舊版本中易于閱讀的技巧。我們将從三元運算符、聲明多個變量、箭頭函數、預設參數值等方面開始。

1、三元運算符

我們可以使用三元運算符以簡潔的方式編寫 if...else 語句。

而不是寫:

const x = 20;
let grade;
if (x >= 50) {
  grade = "pass";
} else {
  grade = "fail";
}      

我們可以寫:

const x = 20;
let grade = (x >= 50) ? "pass" : "fail";      

他們都檢查 x 是否大于或等于 50,然後配置設定字元串 'pass' 如果為真,否則為假。

我們還可以使用三元運算符編寫嵌套的 if 語句,如下所示:

const x = 20;
let grade = (x >= 50) ? "pass" : (x >= 25) ? "good fail" : 'bad fail';      

這與下面代碼一樣:

const x = 20;
let grade;
if (x >= 50) {
  grade = "pass";
} else {
  if (x >= 25) {
    grade = "good fail";
  } else {
    grade = "bad fail";
  }
}      

2、設定預設值

如果變量為假,我們可以通過編寫以下内容來設定預設值:

let x;
let y = x || 10;      

這與下面代碼一樣:

let x;
let y;
if (x === undefined || x === null || x === 0 || x === '' || isNaN(x)) {
  y = 10;
}      

因為 x || 10 表示如果 x 為假,即 x 為 undefined、null、0、空字元串或 NaN,那麼我們将 10 指派給 y,這與:

if (x === undefined || x === null || x === 0 || x === '' || isNaN(x)) {
  y = 10;
}      

3、聲明多個變量的簡寫

我們可以通過編寫來聲明多個變量:

let x = y = z = 5;      

這與下面代碼一樣:

let x = 5;
let y = 5;
let z = 5;      

它的工作原理是,首先将 5 配置設定給 z,然後将 z 的值配置設定給 y,最後将 y 的值配置設定給 x 。

4、If Truthy

檢查某些東西是否為真的JavaScript簡寫,它不是 undefined、null、0、空字元串或 NaN,如下所示:

if (x){
 console.log('x is truthy')
}      

上面的代碼檢查 x 是否為真,如果是,則執行 console.log。

5、For...Of 循環簡寫

從 ES6 開始,我們可以使用 for...of 循環來周遊數組或類數組對象中的變量,其中包括 Maps、Sets、參數對象、生成器、疊代器以及任何帶有 [Symbol.iterator]方法。

我們可以寫:

let fruits = ['apple', 'orange', 'grape'];
for (let fruit of fruits) {
  console.log(fruit);
}      

這比使用帶有索引的正常 for 循環更幹淨,并且它也适用于其他可疊代對象。例如,我們可以将它與生成器一起使用:

let fruits = function*() {
  yield 'apple';
  yield 'orange';
  yield 'fruits';
}
for (let fruit of fruits()) {
  console.log(fruit);
}      

5、Array.forEach

我們可以使用 Array.forEach 方法來周遊數組,盡管它比循環慢。

要使用它,我們可以編寫如下代碼:

let fruits = ['apple', 'orange', 'grape'];
fruits.forEach((fruit, index) => console.log(fruit));      

6、十進制底指數

我們可以指定指數,而不是寫出帶有所有尾随零的整數。

例如,如果我們有:

1e0      

為1

1e1      

10

1e2      

100

1e3      

為 1000 等。

7、數字分隔符

最新的浏覽器允許我們使用下劃線來分隔數字,以便于閱讀。例如,我們可以寫:

100_000_000      

一億,下劃線可以放在我們選擇的任何地方。

8、對象屬性簡寫

而不是寫:

const foo = 1,
  bar = 2;
const obj = {
  foo: foo,
  bar: bar
};      

我們可以寫:

const foo = 1,
  bar = 2;
const obj = {
  foo,
  bar
};      

兩段代碼完全一樣。

9、箭頭函數

如果箭頭函數隻有一行,那麼我們就不需要大括号,我們可以在不使用 return 關鍵字的情況下從它傳回一個值。

例如:

() => 1      

與下面代碼是相同的:

() => {
  return 1
}      

如果我們不關心 this 的值,我們可以使用箭頭函數,因為箭頭函數不會改變函數内部的 this 值。

10、預設參數值

我們可以在 ES6 中指定預設參數值。例如,我們可以這樣寫:

const add = (a = 1, b = 2) => {
  return a + b
}      

這與下面代碼一樣:

const add = (a, b) => {
  if (typeof a === 'undefined') {
    a = 1;
  }
  if (typeof b === 'undefined') {
    b = 1;
  }
  return a + b
}      

上面的技巧大多來自 ES6。這個版本的 JavaScript 提供了許多快捷的方式方法,可以讓我們更輕松地編寫代碼和閱讀。

for...of 循環非常有用,因為它可以周遊數組和類似數組的對象。沒有其他循環可以做到這一點。

數字分隔符較新,僅在最新浏覽器中可用。

最後,感謝你的閱讀。

學習更多技能

請點選下方公衆号

繼續閱讀