Kennen Sie diese interessanten Dinge in Javascript?

Nov 29 2022
1. Warum ist die Ausgabe des folgenden Codes so seltsam ? Möglicherweise haben Sie eine Frage, warum es nur in 0 konvertiert wird, da der Vergleichsalgorithmusoperator in Javascript so konzipiert ist, dass nicht numerische Werte in numerische Werte konvertiert werden.

1. Warum ist die Ausgabe des folgenden Codes so seltsam ?

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

Möglicherweise haben Sie eine Frage, warum es nur in 0 konvertiert wird, da der Vergleichsalgorithmusoperator in Javascript so konzipiert ist, dass nicht numerische Werte in numerische Werte konvertiert werden. Dabei konvertiert es den booleschen Wert (wahr oder falsch) in 1 und 0, null in 0 und undefiniert in falsch. Weitere Informationen finden Sie hier .

Zusammenfassend können wir sagen, dass für die erste Anweisung null > 0 aufgrund des Javascript-Vergleichsalgorithmus intern durch 0 > 0 ersetzt wird, die zweite Anweisung null === 0 ergibt falsch, da wir hier versuchen, die Gleichheit von null mit 0 zu überprüfen Gleichheitsoperator (==, ===).

2. Wie viele Parameter können Sie in JSON.parse() oder JSON.stringify() übergeben?

Sehen wir sie uns nacheinander an.

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

Nehmen wir im obigen Beispiel an, wir möchten dob vor dem Parsen in den Date-Typ konvertieren. Dies kann mit der Reviewer-Funktion wie unten durchgeführt werden.

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

Dies bedeutet, dass das Erstellen eines Objekts, das seinen Eigenschaftswert nicht ändern darf, das Hinzufügen einer neuen Eigenschaft oder das Löschen einer Eigenschaft aus dem Objekt verhindert. Mal sehen, wie es funktioniert.

Object.freeze() :

Es wird verwendet, um das Objekt auf einfache Weise einzufrieren. Wir können sagen, dass Sie keine Eigenschaften von Objekten hinzufügen, löschen oder ändern können. Es kann auch zusammengefasst werden, dass das Objekt nur zum Lesen verfügbar ist.

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

Objekt.siegel():

Wenn wir nur wollen, dass sich das Objekt genauso verhält wie object.freeze(), aber Werte von Objekteigenschaften können schreibbar sein, aber der Prototyp des Objekts kann nicht geändert werden, dann können wir object.seal() verwenden.

Einfach gesagt, können wir damit die Objektwerte ändern, aber keine Objektschlüssel hinzufügen oder löschen.

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. Als JS-Entwickler müssen Sie Reduce() irgendwo verwendet haben. Es ist eine wirklich gute Funktion, die von Javascript bereitgestellt wird, und so gibt es auch eine weitere Funktion, die sich genau wie Reduce () verhält, und das ist ReduceRight (), aber der Unterschied ist, dass sie von rechts nach links funktioniert, während Reduce () von links nach rechts funktioniert auf dem Array.
  2. Um die N-Zahl des verschachtelten Arrays zu glätten, können Sie Array.flat(Infinity) verwenden .
  3. Nullish-Koaleszenz-Zuweisung (??=) :
  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. Logische ODER-Verknüpfung (||=) :

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

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

Weitere Programmier- und JavaScript-Tipps finden Sie im Folgenden. Vielen Dank fürs Lesen!

Viel Spaß beim Programmieren ❤️!…