Нулевое слияние

Когда его левый операнд равен нулю или не определен, нулевой оператор объединения (??) возвращает свой правый операнд; во всех остальных случаях он возвращает свой левый операнд.
Это можно рассматривать как частный случай логического оператора ИЛИ (||), который возвращает правый операнд, если левый операнд содержит любое значение false, а не только null или undefined. Другими словами, если вы считаете, что некоторые ложные значения (например, « или 0) можно использовать, вы можете столкнуться с неожиданным поведением при использовании || предоставить некоторое значение по умолчанию для другой переменной foo.

> "string" || 20
'string'
> undefined || 20 // return 20 since undefined is on left
20
> "" || 30 // fails since "" is considered false
30
> "hello" ?? 20
'hello'
> "" ?? 20 // "" is not a null value
''
> undefined ?? 20 // undefined is on right so 20 is returned
20

Необязательная цепочка

Вы можете прочитать значение свойства, спрятанного глубоко в цепочке связанных объектов, используя необязательный оператор цепочки ( ?. ), который устраняет необходимость проверки правильности каждой ссылки в цепочке. Подобно оператору цепочки точка ( . ), оператор ( ?. ) возвращает значение undefined, если ссылка является нулевой (пустой или неопределенной), в отличие от выдачи ошибки.

При использовании с вызовами функций возвращает значение undefined, если данная функция не существует.

> object?.property // returns undefined if object is nullish otherwise returns the property
> object?.method?.() // calls the method if it is a method otherwise returns undefined instead of throwing an error

Сокращение объекта

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

> let a = 10;
> let b = 20;
> let c = {a:a, b:b}; // creates {'a': 10, 'b': 20}

К счастью, сокращенный синтаксис объекта javascript решает эту проблему.

> let a = 10;
> let b = 20;
> let obj = {a, b} // create {'a': 10, 'b': 20}

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

операторы возведения в степень

Math.pow() обычно используется для поиска значений экспоненты. Однако это может быть неудобно при написании математических формул в виде выражений. В результате предпочтительнее использовать оператор ** вместо функции pow(), поскольку он более удобочитаем и прост в написании.

> Math.pow(4, 0.5)
2
> 4 ** 2
16

стили в журнале консоли

Большинство javascript-разработчиков не знают, что стили могут применяться к console.log(). Второй аргумент будет передан для применения стилей к выводам журнала консоли. Вы должны включить символ %c в первый аргумент, который указывает, где начинать применять стили. Любые допустимые стили CSS будут работать идеально.

> console.log(“%c Success! we got green message”, “color:green;font-weight:bold”);
> console.log("%cThe value is: %c20", "font-weight:bold", "font-weight:bold; color:green");