Một số tip hữu ích javascript
Chuyển đổi kiểu dữ liệu sang boolean. Đôi lúc ta cần kiểm tra một biến có tồn tại hoặc giá trị của nó có hợp lệ hay không. Để làm như vậy ta có thể dùng toán tử !! . Nó sẽ trả mọi kiểu dữ liệu về dạng boolean. Nó trả về false nếu những giá trị truyền vào là "", null, undefined, 0, NaN. Ngược ...
- Chuyển đổi kiểu dữ liệu sang boolean.
Đôi lúc ta cần kiểm tra một biến có tồn tại hoặc giá trị của nó có hợp lệ hay không. Để làm như vậy ta có thể dùng toán tử !! . Nó sẽ trả mọi kiểu dữ liệu về dạng boolean. Nó trả về false nếu những giá trị truyền vào là "", null, undefined, 0, NaN. Ngược lại nó sẽ trả về true. Ví dụ:
var x = "123" console.log(!!x) // true var y = null console.log( !!y ) // false
- Chuyển đổi kiểu dữ liệu sang number sử dụng toán tử + .
Dùng để chuyển chuỗi những con số sang số. Ngược lại nếu trong chuỗi có cả chữ thì nó sẽ trả về NaN. Với DateTime nó sẽ trả về số dạng Timestamp ví dụ:
var x = "123" console.log(+x); // 123 var y = "Abc123" console.log(+y) //NaN var z = new Date() console.log(+z) // 1495679563806
- Sử dụng AND và OR cho các điều kiện.
- ví dụ dùng and để thay cho câu lệnh if: thay vì viết:
if(foo == 1){ doSomething(); }
ta có thể dùng :
(foo ==1) && doSomething();
- Dùng OR để set giá trị default cho 1 variable:
function doSomething(arg1){ arg1 = arg1 || 10; // arg1 will have 10 as a default value if it’s not already set }
- Sử dụng Map để tạo loop qua các item của array:
ví dụ
var squares = [1,2,3,4].map(function (val) { return val * val; // [1,4,9,16] });
- Sử dụng === thay thế ==.
Hãy xem sự khác nhau giữa các ví dụ sau:
[10] === 10 // is false [10] == 10 // is true '10' == 10 // is true '10' === 10 // is false [] == 0 // is true [] === 0 // is false ' == false // is true but true == "a" is false ' === false // is false
Bởi vì khi dùng == sẽ tự động convert type nếu cần nên [10] đã bị convert thành 10. Còn khi dùng === ta có thể so sánh cả giá trị lẫn kiểu của dữ liệu
-
undefined, null, 0, false, NaN, ' (empty string) đều có tính chất giá trị false.
-
Lấy giá tri random trong 1 mảng:
var items = [12, 548 , 'a' , 2 , 5478 , 'foo' , 8852, , 'Doe' , 2145 , 119]; var randomItem = items[Math.floor(Math.random() * items.length)];
- Lấy số random trong một khoảng xác định:
var x = Math.floor(Math.random() * (max - min + 1)) + min;
- Đảo thứ tự của các phàn tử trong mảng.
Ta có thể dùng hàm Math.random để xáo trộn các phần tử trong 1 mảng ví dụ:
var list = [1, 2, 3]; console.log(list.sort(function() { return Math.random() - 0.5 })); // [2,1,3]
- gộp các mảng.:
Ta có thể dùng hàm concat của class Array để gộp 2 hay nhiều mảng. ví dụ:
arr1 = [1,2,3] arr2 = [4,5,6] arr = arr1.concat(arr2) // [1,2,3,4,5,6]
Tuy nhiên hàm này chỉ thích hợp với việc gộp các mảng nhỏ vì nó tạo ra một mảng mới hoàn toán. đối với các mảng lớn ta có thể dùng hàm Array.push Array.push.apply:
arr1.push.apply(arr2)
Hàm này gộp trực tiếp mảng 2 vào mảng 1 từ đó ko cần sử dụng đến bộ nhớ cho mảng mới như concat nên sẽ cải thiện tốc độ.
- xóa dữ liệu của một array.
Ta có thể dùng các cách:
arr = [1,2,3,4,5] arr.splice(0, arr.length);
or
arr.length = 0.
mình thì thích dùng cách 2 hơn