Znasz te ciekawe rzeczy w JavaScript?

Nov 29 2022
1. Dlaczego wyjście poniższego kodu jest takie dziwne ? Możesz mieć pytanie, dlaczego jest konwertowane tylko na 0, ponieważ w javascript operator algorytmu porównania jest zaprojektowany w taki sposób, aby konwertować wartości nieliczbowe na wartości liczbowe.

1. Dlaczego wyjście poniższego kodu jest takie dziwne ?

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

Możesz mieć pytanie, dlaczego jest konwertowane tylko na 0, ponieważ w javascript operator algorytmu porównania jest zaprojektowany w taki sposób, aby konwertować wartości nieliczbowe na wartości liczbowe. W ten sposób konwertuje wartość logiczną (prawdę lub fałsz) na 1 i 0, null na 0 i niezdefiniowaną na fałsz. Więcej informacji można znaleźć tutaj .

Podsumowując, możemy powiedzieć, że dla pierwszej instrukcji null > 0 wewnętrznie zamień na 0 > 0 ze względu na algorytm porównania javascript, druga instrukcja null === 0 daje fałsz, ponieważ tutaj próbujemy sprawdzić równość null z 0 za pomocą operator równości (==, ===).

2. Ile parametrów można przekazać w JSON.parse() lub JSON.stringify() ?

Zobaczmy je jeden po drugim.

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

W powyższym przykładzie załóżmy, że chcemy przekonwertować dob na typ Date przed przeanalizowaniem. Można to zrobić za pomocą funkcji recenzenta, jak poniżej.

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

Oznacza to, że utworzenie obiektu, któremu nie wolno zmieniać wartości jego właściwości, uniemożliwia dodanie nowej właściwości lub usunięcie właściwości z obiektu. Zobaczmy, jak to działa.

Obiekt.freeze() :

Służy do zamrożenia obiektu w prosty sposób można powiedzieć, że nie można dodawać, usuwać ani zmieniać żadnych właściwości obiektów. Można to również podsumować, ponieważ obiekt jest dostępny tylko do odczytu.

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

Obiekt.pieczęć():

Jeśli chcemy, aby obiekt zachowywał się w taki sam sposób, jak obiekt object.freeze(), ale wartości właściwości obiektu można zapisywać, ale nie można zmienić prototypu obiektu, możemy użyć obiektu.seal()

Mówiąc prosto, za pomocą tego możemy zmieniać wartości obiektów, ale nie możemy dodawać ani usuwać żadnych kluczy obiektów.

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. Jako programista JS musiałeś gdzieś używać funkcji reduce(). Jest to naprawdę dobra funkcja zapewniana przez javascript i podobnie jest jeszcze jedna funkcja, która dokładnie zachowuje się jak reduce() i jest to reduceRight() ale różnica polega na tym, że działa od prawej do lewej, podczas gdy reduce() będzie działać od lewej do prawej na tablicy.
  2. Aby wyrównać numer N zagnieżdżonej tablicy, możesz użyć Array.flat(Infinity) .
  3. Nullish koalescencyjne przypisanie (??=) :
  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. Przypisanie logicznego LUB (||=) :

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

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

Aby uzyskać więcej wskazówek dotyczących programowania i JavaScript, postępuj zgodnie z nimi. Dziękuję za przeczytanie!

Miłego kodowania ❤️!…