JavaScript

3 Вида функций в JavaScript
Простое объявление функции.
function square(x){
return x * x;
}
Это знакомый нами всеми способ объявления функций.
————————-
Функции-выражения
const square = function (x) {
return x * x;
}
Ключевое слово function может использоваться для определения функции внутри выражения.
Вы можете также определять функции используя конструктор Function и объявление функции.
————————-
Стрелочные функции
const square = (x) => {
return x * x;
}
Выражения стрелочных функций имеют более короткий синтаксис по сравнению с функциональными выражениями и лексически привязаны к значению this (но не привязаны к собственному this, arguments, super, или new.target). Выражение стрелочных функций не позволяют задавать имя, поэтому стрелочные функции анонимны, если их ни к чему не присвоить.

​​Интересные факты в мире JavaScript.


1. Немедленно вызываемое выражение функции
Первый работает, но второй дает необработанную ошибку: Неожиданный токен.

//Работает
var foo = function(){
//тело ф-ции
}();

//Необработанная ошибка
function foo(){
//тело ф-ции
}();

2. Начните с точки с запятой
Во многих других языках программирования вы должны ставить точку с запятой в конце каждого оператора. В JS вы можете начинать оператор с точки с запятой.
;var a = 2

3. Положение скобок имеет значение
В JS Положение скобок в некоторых может иметь значение. Конечно эти случаи редкие, но вы вполне можете встретиться с этой проблемой.
//пример
function foo(){
return
{
foo: 'bar'
}
}

function bar() {
return {
foo: 'bar'
}
}
typeof foo() === typeof bar();
//false

BigInt в JavaScript (ES11)

В JavaScript для работы с числами до недавнего времени использовался 64-битный формат IEEE-754, однако данные числа ограничены по длине (2 в степени 53).

Пример:
let num = Number.MAX_SAFE_INTEGER
console.log(num) // 9007199254740991
num + 1 // 9007199254740992
num + 2 // 9007199254740992 ???

BigInt это примитивный тип, который предназначен решить даную проблему. Для того, чтобы получить BigInt можно воспользоваться двумя способами:

1. Передать в число в BigInt конструктор;

2. Дописать n в конце числа;

typeof 99 // ‘number’
typeof 99n // ‘bigint’

Решим выше рассмотренный пример с использованием нового типа:
let bigInt = BigIng(num) + BigIng(2)
console.log(bigInt) // 9007199254740993n

Памятка для JS
Передавай аргументы как один объект и сделай коллег счастливыми.
Все согласятся что довольно сложно разобратся в таком коде:
const createUser = (username, date, isAdmin, isMod)=>{
//create user
}
createUser(‘Ivan’, ’16-02-2021′, false, true);

А на примере ниже можно отчетливо в уме рассортировать аргументы по значениям.
const createUser = ({username, date, isAdmin, isMod})=>{
//create user
}
createUser({
username:’Ivan’,
date: ’16-02-2021′,
idAdmin: false,
isMod: true
});
————————————————————————————
Используйте это в вашем коде и порадуйте ваших коллег.