Apakah Anda tahu hal-hal menarik di Javascript ini?

1. Mengapa output dari kode berikut sangat aneh ?
console.log(null > 0); // false
console.log(null === 0); // false
console.log(null >= 0); // true
Anda mungkin memiliki pertanyaan mengapa hanya dikonversi menjadi 0 karena dalam javascript operator algoritma perbandingan dirancang sedemikian rupa untuk mengubah nilai non-numerik menjadi numerik. Dalam hal itu, ia mengubah nilai boolean (benar atau salah) menjadi 1 dan 0, nol menjadi 0 dan tidak terdefinisi menjadi salah. Anda dapat merujuk lebih lanjut di sini .
Untuk meringkas ini kita dapat mengatakan bahwa untuk pernyataan pertama null > 0 secara internal ganti dengan 0 > 0 karena algoritma perbandingan javascript, pernyataan kedua null === 0 memberikan salah karena di sini kami mencoba untuk memeriksa persamaan null dengan 0 menggunakan operator kesetaraan (==, ===).
2. Berapa banyak parameter yang dapat Anda berikan di JSON.parse() atau JSON.stringify() ?
Mari kita lihat satu per satu.
JSON.stringitas():
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])
Dalam contoh di atas misalkan kita ingin mengonversi dob ke tipe Tanggal sebelum diurai. Itu bisa dilakukan dengan fungsi reviewer seperti di bawah ini.
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"
}
Artinya membuat objek yang tidak diperbolehkan mengubah nilai propertinya, mencegah penambahan properti baru atau menghapus properti dari objek. Mari kita lihat cara kerjanya.
Objek.bekukan() :
Ini digunakan untuk membekukan objek dengan cara yang sederhana, kita dapat mengatakan bahwa Anda tidak dapat menambah, menghapus, atau mengubah properti objek apa pun. Itu juga dapat diringkas karena objek tersedia untuk tujuan hanya-baca.
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'
}
Objek.seal():
Jika kita hanya ingin objek berperilaku dengan cara yang sama seperti object.freeze() , tetapi nilai properti objek dapat ditulisi tetapi prototipe objek tidak dapat diubah maka kita dapat menggunakan object.seal()
Sederhananya, dengan menggunakan ini kita diizinkan untuk mengubah nilai objek tetapi tidak dapat menambah atau menghapus kunci objek apa pun.
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'
}
- Sebagai pengembang JS, Anda pasti pernah menggunakan pengurangan () di suatu tempat. Ini adalah fungsi yang sangat bagus yang disediakan oleh javascript dan seperti itu ada juga satu fungsi lagi yang berperilaku persis seperti reduce() dan itu adalah reduceRight() tetapi perbedaannya bekerja dari kanan ke kiri sedangkan reduce() akan bekerja dari kiri ke kanan pada larik.
- Untuk meratakan nomor N dari array bersarang, Anda dapat menggunakan Array.flat(Infinity) .
- Penugasan penggabungan nullish (??=) :
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. Penetapan OR logis (||=) :
const obj = {
name : '',
age: 25
};
obj.name ||= 'Johnathon';
obj.age ||= 40;
console.log(obj.name, obj.age); // Johnathon 25
Untuk tips pemrograman dan JavaScript lainnya, pastikan untuk mengikuti. Terima kasih telah membaca!
Selamat Coding ❤️!…