NỘI DUNG BÀI VIẾT
Trong bài viết này, mình sẽ chia sẻ về một số sự thật về JavaScript. Mặc dù hơi kỳ lạ nhưng chúng hơi bị thuyết phục ấy :3
Đối tượng
Đối tượng đối số là một đối tượng giống như mảng tương ứng với các đối số được truyền cho hàm.
function argumentFunction(){
console.log(arguments[0]);
console.log(arguments[1]);
console.log(arguments[2]);
}
argumentFunction("1","2","3");
Code language: JavaScript (javascript)
Đầu ra: 1 2 3
function Add() {
var sum = 0;
for(var j = 0; j < arguments.length; j++) {
sum += arguments[j];
}
return sum;
}
Add(1, 2, 3, 4); // returns 10
Code language: JavaScript (javascript)
Lưu ý: Nó không phải là một mảng, tuy nhiên, nó tương tự như một mảng và nó có thuộc tính độ dài trong đó.
Tầm quan trọng của { }
function method1() {
return
{
name: 'foo'
}
}
function method2() {
return {
name: 'foo'
}
}
typeof method1() === typeof method2() // return false
Code language: JavaScript (javascript)
Hàm đầu tiên trả về không xác định và phương thức thứ hai sẽ trả về đối tượng như mong đợi. Dấu ngoặc đóng vai trò chính, vì vậy chúng cần được xử lý một cách thận trọng.
Lưu ý: Nên đặt dấu ngoặc đơn mở đầu trên cùng dòng bạn đang làm việc.
Số nổi
0.1+0.2 //0.30000000000000004
0.1+0.3 //0.4
0.2+0.4 //0.6000000000000001
0.2+0.5 //0.7
0.3+0.6 //0.8999999999999999
0.3+0.7 //1
Code language: JavaScript (javascript)
Hãy thử 0,1 + 0,2 trong môi trường JavaScript của bạn và nó sẽ không trả về 0,3, tuy nhiên, 0,1 + 0,3 sẽ trả về 0,4.
0,1 + 0,2 == 0,3 sẽ trả về sai, vì vậy chúng ta nên cẩn thận.
Tổng các mảng và đối tượng
{} + [] // 0
[] + {} // "[object Object]"
[] + [] // ""
{} + {} // "[object Object][object Object]"
Code language: JavaScript (javascript)
Từ đoạn mã trên, chúng ta có thể đi đến kết luận rằng:
{} + [] == [] + {} // returns false.
Code language: JavaScript (javascript)
Đây là một số sự thật kỳ lạ về JavaScript. Tuy nhiên, có rất nhiều và nếu bạn thấy bất cứ điều gì kỳ lạ, xin vui lòng chia sẻ nó trong phần bình luận.
Các bạn có thể tham khảo các bài viết hay về JavaScript tại đây.
Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.