Conosci queste cose interessanti in Javascript?

Nov 29 2022
1. Perché l'output del seguente codice è così strano ? Potresti avere una domanda sul motivo per cui viene convertito solo in 0 perché in javascript l'operatore dell'algoritmo di confronto è progettato in modo tale da convertire valori non numerici in valori numerici.

1. Perché l'output del seguente codice è così strano ?

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

Potresti avere una domanda sul motivo per cui viene convertito solo in 0 perché in javascript l'operatore dell'algoritmo di confronto è progettato in modo tale da convertire valori non numerici in valori numerici. In questo, converte il valore booleano (vero o falso) in 1 e 0, null in 0 e undefined in falso. Puoi fare riferimento a più qui .

Per riassumere, possiamo dire che per la prima affermazione null > 0 sostituire internamente con 0 > 0 a causa dell'algoritmo di confronto javascript, la seconda affermazione null === 0 restituisce false perché qui stiamo cercando di verificare l'uguaglianza di null con 0 usando operatore di uguaglianza (==, ===).

2. Quanti parametri puoi passare in JSON.parse() o JSON.stringify() ?

Vediamoli uno per uno.

JSON.stringità():

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

Nell'esempio precedente supponiamo di voler convertire dob in tipo Date prima che analizzi. Può essere fatto con la funzione di revisione come di seguito.

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

Significa che la creazione di un oggetto a cui non è consentito modificare il valore della proprietà impedisce l'aggiunta di una nuova proprietà o l'eliminazione di una proprietà dall'oggetto. Vediamo come funziona.

Object.freeze() :

Viene utilizzato per congelare l'oggetto in modo semplice possiamo dire che non è possibile aggiungere, eliminare o modificare alcuna proprietà degli oggetti. Può anche essere riassunto in quanto l'oggetto è disponibile per scopi di sola lettura.

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

Oggetto.seal():

Se vogliamo solo che l'oggetto si comporti nello stesso modo di object.freeze(), ma i valori delle proprietà dell'oggetto possono essere scrivibili ma il prototipo dell'oggetto non può essere modificato, allora possiamo usare object.seal()

In parole povere, usando questo ci è permesso cambiare i valori dell'oggetto ma non possiamo aggiungere o eliminare nessuna chiave oggetto.

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. Come sviluppatore JS, devi aver usato reduce() da qualche parte. È davvero una buona funzione fornita da javascript e così c'è anche un'altra funzione che si comporta esattamente come reduce() ed è reduceRight() ma la differenza è che funziona da destra a sinistra mentre reduce() funzionerà da sinistra a destra sulla matrice.
  2. Per appiattire il numero N dell'array nidificato, puoi usare Array.flat(Infinity) .
  3. Assegnazione a coalescenza nulla (??=) :
  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. Assegnazione logica OR (||=) :

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

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

Per ulteriori suggerimenti sulla programmazione e JavaScript assicurati di seguire. Grazie per aver letto!

Buona programmazione ❤️!…