Connaissez-vous ces choses intéressantes en Javascript ?

Nov 29 2022
1. Pourquoi la sortie du code suivant est si étrange  ? Vous vous demandez peut-être pourquoi il n'est converti qu'en 0, car en javascript, l'opérateur d'algorithme de comparaison est conçu de manière à convertir des valeurs non numériques en valeurs numériques.

1. Pourquoi la sortie du code suivant est si étrange  ?

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

Vous vous demandez peut-être pourquoi il n'est converti qu'en 0, car en javascript, l'opérateur d'algorithme de comparaison est conçu de manière à convertir des valeurs non numériques en valeurs numériques. En cela, il convertit la valeur booléenne (vrai ou faux) en 1 et 0, null en 0 et indéfini en faux. Vous pouvez vous référer à plus ici .

Pour résumer cela, nous pouvons dire que pour la première instruction null> 0 remplacer en interne par 0> 0 à cause de l'algorithme de comparaison javascript, la deuxième instruction null === 0 donne faux car ici nous essayons de vérifier l'égalité de null avec 0 en utilisant opérateur d'égalité (==, ===).

2. Combien de paramètres pouvez-vous passer dans JSON.parse() ou JSON.stringify() ?

Voyons-les un par un.

JSON.stringity() :

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])

Dans l'exemple ci-dessus, supposons que nous voulions convertir dob en type Date avant l'analyse. Cela peut être fait avec la fonction de révision comme ci-dessous.

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"
}

Cela signifie que la création d'un objet qui n'est pas autorisé à modifier sa valeur de propriété empêche l'ajout d'une nouvelle propriété ou la suppression d'une propriété de l'objet. Voyons voir comment ça fonctionne.

Objet.freeze() :

Il est utilisé pour figer l'objet d'une manière simple, nous pouvons dire que vous ne pouvez pas ajouter, supprimer ou modifier les propriétés des objets. Cela peut également être résumé car l'objet est disponible en lecture seule.

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'
}

Objet.sceau() :

Si nous voulons simplement que l'objet se comporte de la même manière que object.freeze(), mais que les valeurs des propriétés de l'objet peuvent être écrites mais que le prototype de l'objet ne peut pas être modifié, nous pouvons utiliser object.seal()

En termes simples, en utilisant ceci, nous sommes autorisés à modifier les valeurs d'objet mais ne pouvons pas ajouter ou supprimer de clés d'objet.

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. En tant que développeur JS, vous devez avoir utilisé le reduce() quelque part. C'est une très bonne fonction fournie par javascript et comme ça il y a aussi une autre fonction qui se comporte exactement comme reduce() et c'est reduceRight() mais la différence est qu'elle fonctionne de droite à gauche alors que reduce() fonctionnera de gauche à droite sur le tableau.
  2. Pour aplatir le nombre N du tableau imbriqué, vous pouvez utiliser Array.flat(Infinity) .
  3. Affectation de coalescence nulle (??=) :
  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. Affectation OU logique (||=) :

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

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

Pour plus de conseils sur la programmation et JavaScript, assurez-vous de suivre. Merci pour la lecture!

Bon codage ❤️ !…