Вы знаете эти интересные вещи в Javascript?

Nov 29 2022
1. Почему вывод следующего кода такой странный ? У вас может возникнуть вопрос, почему он преобразуется только в 0, потому что в javascript оператор алгоритма сравнения разработан таким образом, чтобы преобразовывать нечисловые значения в числовые.

1. Почему вывод следующего кода такой странный ?

console.log(null > 0);   // false
console.log(null === 0); // false
console.log(null >= 0);  // true

У вас может возникнуть вопрос, почему он преобразуется только в 0, потому что в javascript оператор алгоритма сравнения разработан таким образом, чтобы преобразовывать нечисловые значения в числовые. При этом он преобразует логическое значение (true или false) в 1 и 0, null в 0 и undefined в false. Вы можете обратиться к больше здесь .

Подводя итог, мы можем сказать, что для первого утверждения null > 0 внутренне заменить на 0 > 0 из-за алгоритма сравнения javascript, второе утверждение null === 0 дает false, потому что здесь мы пытаемся проверить равенство null с 0, используя оператор равенства (==, ===).

2. Сколько параметров вы можете передать в JSON.parse() или JSON.stringify()?

Давайте посмотрим их один за другим.

JSON.строка():

Syntax: JSON.stringify(value, [replacer, space])

const user = {
    firstName: 'John',
    lastName: 'Williams',
    dob: "12-31-1997"
}

console.log(JSON.stringify(user));

// Output 
{"firstName":"John","lastName":"Williams","dob":"12-31-1997"}

console.log(JSON.stringify(user, ['firstName', 'lastName'], 5));

// Output

{
     "firstName": "John",
     "lastName": "Williams"
}

Syntax: JSON.parse(text, [reviver])

В приведенном выше примере предположим, что мы хотим преобразовать dob в тип Date до того, как он будет проанализирован. Это можно сделать с помощью функции рецензента, как показано ниже.

const reviewer = (key, value) => {
    if (key === 'dob') {
        value = new Date(value);
    }
    return value;
}

JSON.parse(JSON.stringify(user), reviewer)

// Output

{
  dob: Wed Dec 31 1997 00:00:00 GMT+0530 (India Standard Time) {}
  firstName: "John"
  lastName: "Williams"
}

Это означает, что создание объекта, которому не разрешено изменять значение свойства, предотвращает добавление нового свойства или удаление свойства объекта. Давайте посмотрим, как это работает.

Объект.заморозить() :

Он используется для замораживания объекта простым способом, мы можем сказать, что вы не можете добавлять, удалять или изменять какие-либо свойства объектов. Это также можно резюмировать, поскольку объект доступен только для чтения.

const obj = {
  firstName: 'Richard',
  lastName: 'Williams'
}

Object.freeze(obj); // Will not allowed to change any value or to add new property in it

obj.dob = '31-12-1991'; // Will give error if use strict is applied else it ignores
obj.firstName = 'John';

console.log(obj);

// Output 

{
    firstName: 'Richard',
    lastName: 'Williams'
}

Объект.печать():

Если мы просто хотим, чтобы объект вел себя так же, как object.freeze(), но значения свойств объекта могут быть записаны, но прототип объекта не может быть изменен, мы можем использовать object.seal()

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

const obj = {
  firstName: 'Richard',
  lastName: 'Williams'
}

Object.seal(obj); // Will allow to change only value of it's, can't add new property in it

obj.dob = '31-12-1991';
obj.firstName = 'John';
delete obj.firstName;


console.log(obj);

// Output 

{
    firstName: 'John',
    lastName: 'Williams'
}

  1. Как разработчик JS, вы, должно быть, где-то использовали функцию reduce(). Это действительно хорошая функция, предоставляемая javascript, и, подобно этому, есть еще одна функция, которая ведет себя точно так же, как reduce(), и это reduceRight(), но разница в том, что она работает справа налево, тогда как reduce() будет работать слева направо. на массиве.
  2. Чтобы сгладить число N вложенного массива, вы можете использовать Array.flat(Infinity) .
  3. Нулевое объединение присваивания (??=) :
  4. const obj = { name : 'Johnathon'};
    obj.name ??= 'John';
    obj.age ??= 25;
    console.log(obj.name, obj.age); // Johnathon 25
    

const obj = { 
  name : 'John',
  age: 24
};

obj.name &&= 'Johnathon';
obj.age &&= 25;
console.log(obj.name, obj.age); // Johnathon 25

5. Логическое назначение ИЛИ (||=):

const obj = { 
  name : '',
  age: 25
};

obj.name ||= 'Johnathon';
obj.age ||= 40;
console.log(obj.name, obj.age); // Johnathon 25

Для получения дополнительных советов по программированию и JavaScript обязательно следуйте. Спасибо за чтение!

Удачного кодирования ❤️!…