12 thủ thuật vô cùng hữu ích mà lập trình viên JavaScript cần biết

12-thu-thuat-lap-trinh-javascript
Trong bài viết này tôi sẽ chia sẻ 12 thủ thuật vô cùng hữu ích cho JavaScript. Những thủ thuật này sẽ giúp bạn giảm lượng code cũng như làm code chạy tối ưu hơn.

1. Chuyển đổi kiểu dữ liệu sang boolean sử dụng toán tử !!


Đôi lúc chúng ta cần kiểm tra nếu một vài biến tồn tại hoặc nếu nó có một giá trị hợp lệ hay không. Để xác nhận như vậy, bạn có thể sử dụng !! (toán tử phủ định đôi). Nó sẽ tự động chuyển đổi mọi kiểu dữ liệu về boolean và biến này sẽ trả về falsechỉ khi nó có những giá trị như: 0null""undefined hoặc NaN, ngược lại nó sẽ trả về true. Để hiểu hơn về cách nó hoạt động, hãy xem ví dụ đơn giản sau:

function Account(cash) {  
    this.cash = cash;
    this.hasMoney = !!cash;
}
var account = new Account(100.50);  
console.log(account.cash); // 100.50  
console.log(account.hasMoney); // true
var emptyAccount = new Account(0);  
console.log(emptyAccount.cash); // 0  
console.log(emptyAccount.hasMoney); // false

Trong ví dụ trên, nếu account.cash có giá trị lớn hơn 0 thì account.hasMoney sẽ có giá trị là true.

2. Chuyển đổi kiểu dữ liệu sang number sử dụng toán tử +


Thủ thuật này rất tuyệt vời và dễ dàng để thực hiện, nhưng nó chỉ hoạt động với chuỗi những con số, ngược lại nó sẽ trả về NaN (Not a Number). Hãy nhìn ví dụ sau:

function toNumber(strNumber) {  
    return +strNumber;
}
console.log(toNumber("1234")); // 1234  
console.log(toNumber("ACB")); // NaN

Thủ thuật này cũng hoạt động với cả Date và trong trường hợp này nó sẽ trả về timestamp:

console.log(+new Date()) // 1461288164385

3. Câu điều kiện rút gọn


Nếu bạn thấy một đoạn code giống như này:

if (conected) {  
    login();
}

Bạn có thể rút gọn nó bằng cách kết hợp một biến (sẽ được xác nhận) và một hàm sử dụng && (toán tử AND) ở giữa. Ví dụ, đoạn code trên có thể trở nên ngắn gọn trong một dòng:

conected && login();

Bạn có thể làm tương tự để kiểm tra nếu một vài thuộc tính hay hàm tồn tại trong object. Tương tự như đoạn code dưới đây:

user && user.login();

4. Đặt giá trị mặc định sử dụng toán tử ||


Ngày nay trong ES6 đã hỗ trợ tham số mặc định. Trong trường hợp bạn muốn giả lập tính năng này trong các trình duyệt cũ thì bạn có thể sử dụng || (toán tự OR) bằng cách chèn giá trị mặc định như là tham số thứ hai để sử dụng. Nếu tham số đầu tiên trả về false thì tham số thứ hai sẽ được sử dụng như là một giá trị mặc định. Xem ví dụ sau:

function User(name, age) {  
    this.name = name || "Oliver Queen";
    this.age = age || 27;
}
var user1 = new User();  
console.log(user1.name); // Oliver Queen  
console.log(user1.age); // 27
var user2 = new User("Barry Allen", 25);  
console.log(user2.name); // Barry Allen  
console.log(user2.age); // 25

5. Cache array.length trong vòng lặp


Mẹo này rất đơn giản và gây tác động lớn tới hiệu suất khi xử lý các mảng lớn trong vòng lặp. Hầu hết thì mọi người sử dụng vòng lặp for như sau để duyệt qua mảng:

for (var i = 0; i < array.length; i++) {  
    console.log(array[i]);
}

Nếu bạn làm việc với các mảng nhỏ thì không sao, nhưng nếu bạn xử lý những mảng lớn thì đoạn code này sẽ tính toán lại kích cỡ của mảng sau mỗi lần lặp và sẽ gây ra một chút chậm chễ (delay). Để tránh điều này, bạn có thể cache array.length trong một biến để dùng nó thay vì gọi array.length trong mỗi lần lặp:

var length = array.length;  
for (var i = 0; i < length; i++) {  
    console.log(array[i]);
}

Để làm nó trông gọn hơn, chỉ việc viết lại như sau:

for (var i = 0, length = array.length; i < length; i++) {  
    console.log(array[i]);
}

6. Nhận diện các thuộc tính trong một object


Thủ thuật này vô cùng hữu ích khi bạn cần kiểm tra nếu một vài thuộc tính tồn tại hay không và nó giúp tránh chạy các hàm hay thuộc tính chưa định nghĩa (undefined). Nếu bạn định viết code chạy trên đa trình duyệt thì bạn cũng có thể sử dụng kỹ thuật này. Ví dụ, hãy tưởng tượng rằng bạn cần viết code mà tương thích với IE6 và bạn muốn sử dụng document.querySelector() để lấy một vài phần tử bằng ID của chúng. Tuy nhiên, trong trình duyệt này thì hàm đó không tồn tại, vậy nên để kiểm tra xem hàm này có tồn tại không bạn có thể sử dụng toán tử in, xem ví dụ:

if ('querySelector' in document) {  
    document.querySelector("#id");
} else {
    document.getElementById("id");
}

Trong trường hợp này, nếu không có hàm querySelector trong document, chúng ta có thể sử dụng document.getElementById() thay thế.

7. Lấy phần tử cuối cùng trong mảng


Array.prototype.slice(begin, end) có thể cắt mảng khi bạn đặt tham số begin vàend. Nhưng nếu bạn không nhập tham số end, hàm này sẽ tự động đặt giá trị lớn nhất cho mảng. Tôi nghĩ rằng ít người biết được hàm này có thể chấp nhận giá trị âm, và nếu bạn đặt tham số begin là một số âm thì bạn sẽ lấy ra các phần tử cuối cùng từ mảng:

var array = [1, 2, 3, 4, 5, 6];  
console.log(array.slice(-1)); // [6]  
console.log(array.slice(-2)); // [5,6]  
console.log(array.slice(-3)); // [4,5,6]

8. Cắt ngắn mảng


Kỹ thuật này có thể khóa kích cỡ mảng, điều này rất hữu ích để xóa một vài phần tử của mảng dựa trên số phần tử mà bạn muốn. Ví dụ, nếu bạn có một mảng với 10 phần tử nhưng bạn chỉ muốn lấy 5 phần tử đầu tiên thì bạn có thể cắt ngắn mảng, làm nó nhỏ hơn bằng cách đặt array.length = 5. Xem ví dụ sau:

var array = [1, 2, 3, 4, 5, 6];  
console.log(array.length); // 6  
array.length = 3;  
console.log(array.length); // 3  
console.log(array); // [1,2,3]

9. Thay thế toàn bộ


Hàm String.replace() cho phép sử dụng String và Regex để thay thế chuỗi, nhưng hàm này chỉ thay thế các chuỗi con xuất hiện đầu tiên. Nhưng bạn có thể giả lập một hàm replaceAll() bằng cách sử dụng /g ở cuối Regex:

var string = "john john";  
console.log(string.replace(/hn/, "ana")); // "joana john"  
console.log(string.replace(/hn/g, "ana")); // "joana joana"

10. Gộp các mảng


Nếu bạn cần gộp hai mảng thì có thể sử dụng hàm Array.concat():

var array1 = [1, 2, 3];  
var array2 = [4, 5, 6];  
console.log(array1.concat(array2)); // [1,2,3,4,5,6];

Tuy nhiên, hàm này không phải là cách thích hợp nhất để gộp các mảng lớn vì nó sẽ tốn rất nhiều bộ nhớ do tạo ra một mảng mới. Trong trường hợp này, bạn có thể sử dụng Array.push.apply(arr1, arr2). Thay vì tạo ra một mảng mới thì nó sẽ gộp mảng thứ hai vào mảng thứ nhất từ đó giảm việc sử dụng bộ nhớ:

var array1 = [1, 2, 3];  
var array2 = [4, 5, 6];  
console.log(array1.push.apply(array1, array2)); // [1,2,3,4,5,6];

11. Chuyển NodeList thành mảng


Nếu bạn chạy hàm document.querySelectorAll("p"), nó sẽ trả về một mảng chứa các phần tử DOM - NodeList object. Nhưng object này không có toàn bộ các hàm của mảng như: sort()reduce()map()filter(). Trong trường hợp bạn muốn sử dụng các hàm này và nhiều hàm sẵn có khác của mảng, bạn cần chuyển NodeList thành mảng. Để thực hiện kĩ thuật này bạn chỉ cần dùng hàm:[].slice.call(elements)

var elements = document.querySelectorAll("p"); // NodeList  
var arrayElements = [].slice.call(elements); // Now the NodeList is an array  
var arrayElements = Array.from(elements); // This is another way of converting NodeList to Array

12. Xáo trộn các phần tử trong mảng


Để xáo trộn các phần tử của mảng mà không cần sử dụng các thư viện riêng như Lodash, bạn chỉ cần sử dụng thủ thuật sau:

var list = [1, 2, 3];  
console.log(list.sort(function() {  
    return Math.random() - 0.5
})); // [2,1,3]

Kết luận


Giờ thì bạn đã học được một vài thủ thuật JavaScript hữu ích mà phần lớn được sử dụng để giảm thiểu code và một vài thủ thuật được sử dụng trong các framework JS phổ biến như Lodash, Underscore.js, Strings.js và nhiều framework khác. Hi vọng bạn thích bài viết này và nếu bạn còn biết những thủ thuật JS nào khác, hãy cho mình biết ở dưới phần bình luận nhé!

Ghost Windows 7 Lite Autumn [x86-x64] Nhanh, Mượt, Nhẹ by Hiếu PiPo {MBR & UEFI}

  • Được làm từ bộ cài đặt windows 7 lite by Hiếu PiPo mình đã test rất kĩ bộ cài này lên quết định sử dụng.
  • Là bản ghost setup nên mình không cài và tích hợp phần mềm nào thêm. Các bạn sử dụng bộ AIO này sẽ có những phần mềm cần thiết.
  • Sử dụng bộ icon & theme của Hiếu PiPo Trong quá trình cài đặt windows sẽ tự activated
  • Các ứng dụng và tool mình để trong folder C:\Extra chi tiết ở hình ảnh bên dưới !
  • Đã thay đổi thông tin của windows nhưng không cá nhân hóa một thành phần nào của windows.
  • Vì là bản lite nên chắc chắn không đủ được driver nên các bạn hãy chuẩn bị các bộ driver offline hoặc các phần mềm cài đặt drivers online.
  




Đối với bản x64 các bạn khi ghost xong hãy vào Folder Options rồi nhấn vào khung màu đỏ bên dưới để sử dụng chuột quen thuộc nhé



Link Download:


MD5
x86 770 Mb: B5B53C8C - 004E3F54 - 521DCF7E - E8544511
x64 1.11 Gb: 34E3FB60 - C7B4A0F8 - 3F2A3426 - 856CE1E7
UEFI 1.06 Gb: D920B7EE - C302AE79 - D3370238 - E959ECB1

Windows 7 chơi game tốt hơn Windows 10, điều đó có đúng?

So với các hệ điều hành di động như iOS và Android, cho tới một số đối thủ trực tiếp khác tại phân khúc PC là Linux và Mac OS X, Windows có một số lợi thế nhất định trong mắt các game thủ.

Thực tế số lượng trò chơi hỗ trợ Windows là vô cùng lớn, chưa tính tới các trình giả lập cho phép người dùng Windows PC chơi những game không được chính thức hỗ trợ.

Tuy nhiên, "nội bộ" những người dùng Windows lại bị phân hóa bởi các luồng ý kiến khác nhau, đặc biệt vấn đề "phiên bản Windows mới có hỗ trợ game tốt hơn so với phiên bản Windows cũ", hay "Windows cũ tốn ít tài nguyên phần cứng hơn, nên chơi game mượt hơn", liệu các nhận định này có thực sự đúng? Chúng ta sẽ tìm lời giải qua bài viết này.

Thực tế cộng đồng đã từng có các bài điều tra game thủ về phiên bản Windows mà họ sử dụng cũng như tác động của hệ điều hành tới trải nghiệm chơi game. Theo như thông tin từ Steam, tính tới tháng 4/2016 Windows 10 64-bit đang là phiên bản Windows có số người sử dụng nhiều nhất 38,18%, ngay sau đó là Windows 7 64-bit 32,53%. Lý do cho việc các phiên bản 32-bit bị thất sủng bởi bộ nhớ RAM của các hệ thống PC chơi game đã lên rất cao, trung bình 8GB, cũng theo số liệu của Steam.



Điều đáng chú ý, thị phần của Windows 10 trên Steam đã tăng 1,36% trong tháng 4 vừa qua, đồng nghĩa với việc các game thủ Steam đã quyết định nâng cấp lên phiên bản Windows mới nhất, thay vì "bảo thủ" từ chối lời đề nghị của Microsoft.

Windows phiên bản mới có nhiều tính năng hỗ trợ người chơi game

Microsoft thừa biết lợi thế của Windows đối với người chơi game, bởi vậy không có lý do gì họ bỏ qua đối tượng khách hàng này. Trong những năm vừa qua, hay đúng hơn là từ khi Windows 10 còn trong trứng nước tới lúc ra mắt chính thức, Microsoft đã và đang đầu tư nhiều cho những tính năng đáng giá mà game thủ cần tới.


Có thể kể tới 4 tính năng nổi bật:

- Game bar: thanh công cụ hỗ trợ game, quay lại và chụp ảnh màn hình trò chơi

- Hỗ trợ DirectX 12

- Ứng dụng Xbox hoàn thiện, giúp mua, chơi và streaming game giữa máy tính Windows với Xbox One

- Hỗ trợ Xbox Controller tốt hơn




Trước đó, trên Windows 7 hay thậm chí là Windows 8 những tính năng nói trên đều chưa hề xuất hiện, hoặc chưa hoàn thiện. Chừng ấy là đủ để các game thủ rũ bỏ phiên bản cũ kỹ và nâng cấp lên Windows 10 rồi.

Hiệu năng, độ tương thích


Tới thời điểm này, chưa có bất cứ thông số nào chứng minh được Windows 10 khiến chơi game giật lag hơn hoặc ngược lại. Ở một số tựa game, Windows 10 có mức FPS thấp hơn so với Windows 7 nhưng số khác lại cho kết quả tốt hơn.

Điều này có lẽ tới từ độ tương thích của game với các hệ điều hành, ví dụ game cũ sẽ hỗ trợ tốt hơn cho hệ điều hành cũ, còn game mới lại được tối ưu cho các hệ điều hành mới hơn.

Trong một số trường hợp khác, tính tương thích được xét liên quan tới các phần cứng, như driver hỗ trợ cho card đồ họa hay vi xử lý. Thời điểm còn đang ở phiên bản thử nghiệm hoặc mới ra mắt, có thể Windows 10 sẽ gặp phải tình trạng không có driver tối ưu, tuy nhiên tới thời điểm này thì có thể chắc chắn được rằng hệ điều hành mới nhất do Microsoft phát triển đã hỗ trợ đủ hầu hết các phần cứng máy tính trên thị trường, loại trừ những món đồ đã quá cũ kỹ. Hoặc nếu như bạn mua một dàn máy tính mới, sử dụng vi xử lý Skylake, thì nhiều khả năng bạn sẽ buộc phải cài đặt Windows 10, bởi các phần cứng mới thậm chí sẽ dừng hỗ trợ Windows 7.




Như vậy, nếu bạn nói rằng Windows 10 mang lại hiệu năng chơi game kém hơn so với Windows 7, hay phiên bản cũ tốn ít tài nguyên hệ thống hơn, thì bạn không có gì để chứng minh điều đó cả. Tất cả chỉ đơn giản là hệ điều hành có tương thích với game hay không mà thôi. Và trong tương lai, khả năng tương thích với các game mới của Windows 7 sẽ dần yếu đi, Microsoft chính thức ngừng phát triển và hỗ trợ, lúc đó Windows 10 mới thực sự là hệ điều hành mà game thủ cần tới.

Tính ổn định


Như đã nói ở trên, Windows 7 đã chính thức không còn được hỗ trợ và phát triển từ 1/2015, các phiên bản mở rộng của nó cũng sẽ bị dừng hỗ trợ từ 2020, nó sẽ trở thành một hệ điều hành "chết".



Trong khi đó, Windows 10 đang được tiếp tục phát triển, mà tương lai gần, mùa hè này bản cập nhật lớn Anniversary của Windows 10 sẽ cập bến với nhiều tính năng hữu dụng khác.

Vậy có nên nâng cấp?


Có muốn hay không, sớm muộn, để chơi các tựa game khủng, bạn cũng sẽ phải nâng cấp vì trong tương lai phần cứng sẽ không còn hỗ trợ Windows 7 nữa. Nhưng ở thời điểm hiện tại, lựa chọn vẫn nằm trong tay bạn.



Nếu bạn cảm thấy thoải mái với Windows 7, đặc biệt thích giao diện Aero của nó, hãy cứ từ chối các thông báo nâng cấp tới từ Microsoft. Nhưng sự hiện đại và mới mẻ của Windows 10 đang thôi thúc bạn, hãy nhanh tay nâng cấp, bởi hạn nâng cấp miễn phí chỉ còn tới ngày 29/7 thôi.

Nhanh Tay Active Online Key Windows 7 nào :))

Key này active online win 7 pro nhé.Key xách tay ở mỹ về nhé
72H9Q DBRV3 TJJ79 BHR8T 78GHH
Active key này ngon lành rồi update lên win 10 là ok


Khắc Phục Lỗi Liên Quan Đến Tắt Máy Và Ngủ Ở Win 10

Do 1 số ít các bạn dùng win 10 không tắt được máy hoàn toàn sau khi nhấn shut down , sleep thì bị đánh thức hoặc không sleep được.
Các bạn config theo các ảnh dưới .

Có thể sẽ hiệu quả trên 1 số máy , nhưng cũng có thể ko hiệu quả với 1 số máyVì vậy các bạn nào đã thiết lập như ảnh mà ko hiệu quả thì cũng ko buông lời gạch đá nhé !!


Nếu có thể các bạn cũng thử luôn với các driver USB , ở thẻ power manager cũng xóa luôn các dấu tick .
Hy vọng sẽ giúp ích những bạn nào bị tình trạng đau đầu với tắt máy và slepp bị treo

Sever BOt Like Mới Nhất 2016 Hoạt động 24/24 cực chất !

📢Update Giao Diện Mới,Cập Nhật Những Chức Năng Như Sau: 📢
🔫 Bot Like 💣
🔫 Bot Ex Like 💣
🔫 Bot Trả Like 💣
====Đang Dự Định====
🌹 Vip Liker, Sub 💋
🌹 Bot Cảm Xúc 💋
🌹 Bot Cmt , Bot Ex Like Cmt 💋
 Website: http://king-liker.net  
 Cam Kết : Chúng Tôi Sẽ Không Spam Token Hay Phá Token Của Các Bạn 
 Rất An Toàn Và Tiện Lợi Cho Các Bạn Sử Dụng 
😍 Cảm Ơn Các Bạn Đã Chú Ý