Современные сокращения JavaScript

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

1. Оценка короткого замыкания

  • Следующее сокращение использует логическое ИЛИ ( || ) для присвоения значения по умолчанию переменной. Если левая часть ( || ) имеет неложное значение, она будет присвоена переменной, если не будет присвоено значение по умолчанию (правая часть оператора).

От руки

let baseUrl; 

// Conditionally assign value if baseurl exists from env file.
if (process.env.baseurl) {
  baseUrl = process.env.baseurl;
} 
else {
  baseUrl = "www.google.com";
}

Стенография

const baseUrl = process.env.baseUrl || "www.google.com"
  • Имейте в виду, что 0 считается ложным значением в этом операторе. Если 0 является значением, которое должно быть там, используйте вместо этого нулевой оператор объединения. (??)

2. Преобразовать строку в целое число.

  • Унарный оператор или широко известный как (+) может использоваться для преобразования строки, которая является числом, в целочисленный формат.

От руки

const numberInString = "10";
const number = parseInt(numberInString);

Стенография

// We can convert any number in string format to a number using the + operator
const numberInString = "10";
const number = +numberInString;
  • Имейте в виду, что нецелочисленные строки, такие как «abc» или «1.21», будут выводить NaN, поскольку ожидаются только целые числа.

3. Тернарный оператор

  • Тернарный оператор или условный оператор — это простой и понятный подход вместо операторов if … else.

От руки

const marks = 80;
let grade;
if (marks >= 50) {
  grade = 'pass';
} else {
  grade = 'fail';
}

Стенография

const marks = 80;
const grade = marks>=50 ? "pass" : "fail";

4. (?.) Необязательная цепочка (Typescript)

  • С использованием ? наряду с точечной нотацией мы можем получить доступ к значениям объекта. Когда ключ или значение не существует в точечной нотации, выдается ошибка, но если используется необязательная цепочка, возвращается неопределенное значение и продолжается выполнение программы.

От руки

const student = {
    Gerald: {
        marks: 50,
    },
};

// Print the marks of the student. 

// If we dont check this and if student is undefined it will throw an error
if (student && student.Gerald&& student.Gerald.marks ) {
  console.log(student.Gerald.marks)
}

Стенография

const student = {
    Gerald: {
        marks: 50,
    },
};

// Print the marks of the student.

console.log(student?.Gerald?.marks) // Will not throw an error if value is empty

5. Оператор спреда

  • Оператор распространения можно использовать для доступа к значениям из массивов и объектов. Общие функции массива, такие как concat, можно легко заменить с помощью оператора распространения.
  • Объединить два массива

От руки

const array1 = [1,2];
let array2;

array2 = array1.concat([3,4,5]);

Стенография

const array1 = [1,2];
let array2;

array2 = [...array1, 3,4,5];

6. Остальные параметры (…)

  • Параметр rest может использоваться для принятия неизвестного количества аргументов.

От руки

const add2Numbers = (num1,num2) => { 
  return num1+num2;
}

const add3Numbers = (num1,num2,num3) => { 
  return num1+num2+num3;
}

add2Numbers(1,2);
add3Numbers(1,2,3);

Стенография

const addAll = (...numbers) => { 
  let total = 0;
  for (let num of numbers) total += num;
  return total;
}

addAll(1,2);
addAll(1,10,50);
addAll(20,20,1231,111);

// All of the above syntaxes will work and functions will not have to be defined again

7. Деструктуризация

  • Как следует из названия, деструктурирование можно использовать для извлечения определенных элементов, которые необходимы. Используя эту концепцию, переменным можно легко присваивать значения из массивов и объектов.
  • Получить значения из объектов

От руки

const student = {name: "Purple", skill: "UI/UX"};

const name = student.name;
const skill = student.skill;

console.log(name); // Purple
console.log(skill); // UI/UX

Стенография

const student = {name: "Purple", skill: "UI/UX"};

// Required values can be taken out from the object as seperate variables
const {name, skill} = student;

console.log(name); // Purple

// Refactor to an alias of your choice

const {name: firstName} = student;

console.log(firstName); // Purple

// Set default value if it doesnt exist.

const {name, age=24 } = student;

console.log(age); // 24
  • Получить значения из массивов

От руки

const phase = ["Kratos","Oops","Saber","Garfield","Mojo"];

const value1 = phase[0]; // Kratos
const value2 = phase[1]; // Oops

Стенография

const phase = ["Kratos","Oops","Saber","Garfield","Mojo"];

//desctructure values from array

const [value1,value2, ...others] = phase;

console.log(value1) // Kratos
console.log(value2) // Oops
console.log(others) // ["Saber","Garfield","Mojo"]

Дальнейшее чтение :-

  1. Оценка короткого замыкания
  2. Тернарный оператор
  3. Дополнительная цепочка
  4. Оператор спреда
  5. Параметры покоя
  6. Разрушение
  7. Современный учебник по JavaScript