Bạn có biết những điều thú vị này trong Javascript?
1. Tại sao đầu ra của đoạn mã sau lại lạ như vậy ?
console.log(null > 0); // false
console.log(null === 0); // false
console.log(null >= 0); // true
Bạn có thể thắc mắc rằng tại sao nó chỉ được chuyển đổi thành 0 bởi vì trong javascript, toán tử thuật toán so sánh được thiết kế theo cách chuyển đổi giá trị không phải là số thành giá trị số. Trong đó, nó chuyển đổi giá trị boolean (đúng hoặc sai) thành 1 và 0, null thành 0 và không xác định thành sai. Bạn có thể tham khảo thêm tại đây .
Để tóm tắt điều này, chúng ta có thể nói rằng đối với câu lệnh đầu tiên null > 0 thay thế bên trong bằng 0 > 0 do thuật toán so sánh javascript, câu lệnh thứ hai null === 0 cho kết quả sai vì ở đây chúng tôi đang cố gắng kiểm tra sự bằng nhau của null với 0 bằng cách sử dụng toán tử đẳng thức (==, ===).
2. Bạn có thể chuyển bao nhiêu tham số trong JSON.parse() hoặc JSON.stringify() ?
Hãy xem từng người một.
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])
Trong ví dụ trên, giả sử chúng tôi muốn chuyển đổi loại dob thành loại Ngày trước khi nó phân tích cú pháp. Nó có thể được thực hiện với chức năng người đánh giá như bên dưới.
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"
}
Có nghĩa là làm đối tượng không được phép thay đổi giá trị thuộc tính, ngăn cản việc thêm thuộc tính mới hoặc xóa thuộc tính khỏi đối tượng. Hãy xem nó hoạt động như thế nào.
Object.freeze() :
Nó được sử dụng để đóng băng đối tượng một cách đơn giản, có thể nói rằng bạn không thể thêm, xóa hoặc thay đổi bất kỳ thuộc tính nào của đối tượng. Nó cũng có thể được tóm tắt là đối tượng có sẵn cho mục đích chỉ đọc.
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'
}
Đối tượng.seal():
Nếu chúng ta chỉ muốn đối tượng hoạt động giống như đối tượng.freeze(), nhưng các giá trị của thuộc tính đối tượng có thể ghi được nhưng nguyên mẫu của đối tượng không thể thay đổi thì chúng ta có thể sử dụng object.seal()
Nói một cách đơn giản, bằng cách sử dụng này, chúng tôi được phép thay đổi các giá trị đối tượng nhưng không thể thêm hoặc xóa bất kỳ khóa đối tượng nào.
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'
}
- Là một nhà phát triển JS, chắc hẳn bạn đã sử dụng hàm reduce() ở đâu đó. Đó là một chức năng thực sự tốt do javascript cung cấp và giống như vậy, cũng có một chức năng nữa hoạt động chính xác như reduce() và đó là reduceRight() nhưng sự khác biệt là nó hoạt động từ phải sang trái trong khi reduce() sẽ hoạt động từ trái sang phải trên mảng.
- Để làm phẳng số N của mảng lồng nhau, bạn có thể sử dụng Array.flat(Infinity) .
- Nhiệm vụ hợp nhất 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. Phép gán logic OR (||=) :
const obj = {
name : '',
age: 25
};
obj.name ||= 'Johnathon';
obj.age ||= 40;
console.log(obj.name, obj.age); // Johnathon 25
Để biết thêm các mẹo về lập trình và JavaScript, hãy nhớ làm theo. Cảm ơn bạn đã đọc!
Mã hóa vui vẻ ❤️!…

![Dù sao thì một danh sách được liên kết là gì? [Phần 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































