Каждый язык уникален, и JavaScript, наиболее широко используемый язык программирования, не исключение.

В этом сообщении блога мы обсудим некоторые приемы универсальной оптимизации JavaScript, которые помогут вам писать более качественный код и убедиться, что следующее не является вашей реакцией, когда вы сталкиваетесь с ними повсюду:

1. Резервные значения

Запасное место для отображения некоторых настроек.

Если значение равно [] или 0, с помощью логического ИЛИ || не дает вам ожидаемых результатов.

Бычий симбиоз был бы лучшим решением?? Если определенное значение равно null или не определено, используйте только резервные значения.

// Lengthy
let name;
if (user?.name) {
  name = user.name;
} else {
  name = "Anonymous";
}
// Shortly
const name = user?.name ?? "Anonymous";

2. Вскоре для переключения

Случаи длинных переключений обычно максимизируются за счет использования объекта с ключами, действующими как переключатели, и значениями, пытающимися действовать как возвращаемые значения.

const dayNumber = new Date().getDay();
// Lengthy
let day;
switch (dayNumber) {
  case 0:
    day = "Sunday";
    break;
  case 1:
    day = "Monday";
    break;
  case 2:
    day = "Tuesday";
    break;
  case 3:
    day = "Wednesday";
    break;
  case 4:
    day = "Thursday";
    break;
  case 5:
    day = "Friday";
    break;
  case 6:
    day = "Saturday";
}
// Shortly
const days = [
    "Sunday",
    "Monday",
    "Tuesday",
    "Wednesday",
    "Thursday",
    "Friday",
    "Saturday",
];
// Or
const days = `Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday`.split(
    ","
);
const day = days[dateNumber];

3. Вызовы функций

Вы также можете использовать бинарный оператор, чтобы решить, какую функцию вызывать в зависимости от условий.

Шаблоны вызовов функций должны быть одинаковыми, иначе вы столкнетесь с ошибками.

// Lengthy
function f1() {
  // ...
}
function f2() {
  // ...
}
// Shorter
condition ? f1() : f2();

4. Несколько проверок строк

Популярно необходимость проверять, равна ли строка одному из нескольких значений, что может быстро стать раздражающим.

К счастью, у JavaScript есть способ помочь вам в этом.

// Lenghty
const isVowel = (letter) => {
  return (
    letter === "a" ||
    letter === "e" ||
    letter === "i" ||
    letter === "o" ||
    letter === "u"
  );
};
// Shortly
const isVowel = letter => /[aeiou]/i.test(letter);

Циклы for-of и for-in полезны для повторения массива или объекта без необходимости вручную отслеживать индекс ключей объекта.

For-of

const arr = [1, 2, 3, 4, 5];
// Lengthy
for (let i = 0; i < arr.length; i++) {
  const element = arr[i];
  // ...
}
// Shortly
for (const element of arr) {
  // ...
}

For-in

const obj = {
  a: 1,
  b: 2,
  c: 3,
};
// Lengthy
const keys = Object.keys(obj);
for (let i = 0; i < keys.length; i++) {
  const key = keys[i];
  const value = obj[key];
  // ...
}
// Shortly
for (const key in obj) {
  const value = obj[key];
  // ...
}

6. Ложные проверки

Если вы хотите проверить, является ли переменная нулевой, неопределенной, 0, ложной, NaN или пустой строкой, вы можете использовать оператор логического не (!) для этого без необходимости использования нескольких эффектов.

Это упрощает проверку того, содержит ли переменная допустимые данные.

// Lengthy
const isFalsey = (value) => {
  if (
    value === null ||
    value === undefined ||
    value === 0 ||
    value === false ||
    value === NaN ||
    value === ""
  ) {
    return true;
  }
  return false;
};
// Shortly
const isFalsey = (value) => !value;

7. Вторичный оператор

Вы, должно быть, сталкивались с тернарным оператором как разработчик JavaScript.

Это отличный метод для написания кратких операторов if-else.

Однако вы можете использовать его для написания краткого кода и даже связывать его для проверки нескольких условий.

// Lengthy
let info;
if (value < minValue) {
  info = "Value is too small";
} else if (value > maxValue) {
  info = "Value is too large";
} else {
  info = "Value is in range";
}
// Shortly
const info =
  value < minValue
    ? "Value is too small"
    : value > maxValue ? "Value is too large" : "Value is in range";

Вот и все, ребята!

Спасибо, что нашли время, чтобы прочитать это.

Это совершенно бесплатно!