Conosci queste cose interessanti in Javascript?
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'
}
- 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.
- Per appiattire il numero N dell'array nidificato, puoi usare Array.flat(Infinity) .
- Assegnazione a coalescenza nulla (??=) :
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 ❤️!…

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































