HIẾU PIPO

Code F12 Hay Cho Face

Hôm nay mình  chia sẻ cho các bạn tất tần tật về các Tool cũng như các đoạn Code auto cho Facebook.


ACE nào dùng thành công thì cũng xin để lại comment hoặc nếu có thắc mắc hay không dùng thành công bất cứ chia sẻ nào thì cũng để lại comment để chúng ta cùng giải quyết vấn để nhé!

Lưu ý: Các bạn tuyệt đối không dùng các code đã bị mã hóa vì code chắc chắn có gắn các mã độc, nếu code tốt đẹp họ đã chẳng mắc công mã hóa chúng làm gì, dùng chúng bạn sẽ tự động sẽ theo dõi những người chẳng quen biết, like những fanpage vớ vẩn, thêm cả listfiend vào những group klq,...
Tất nhiên là chuyện bị chặn tính năng, khóa, thậm chí mất oan tài khoản sau khi dùng những code đó là chuyện sẽ xảy ra, những đoạn code đó thường có dạng như sau: 


Hoặc


TẤT TẦN TẬT THỦ THUẬT DÙNG TOOL VÀ CODE AUTO CHO FACEBOOK


Những đoạn code ngắn mình sẽ post trực tiếp lên đây, còn code quá dài hoặc ngắn những gây lỗi cho bài viết mình sẽ post link, các bạn copy về và làm theo hướng dẫn

Khi mới thao tác trên trình duyệt, bạn sẽ thấy cảnh cáo này, đừng lo lắng vì đây là một cảnh báo nhắc nhở người dùng lưu ý




I. CODE AUTO THAM GIA NHÓM


Chỉ vẻn vẹn có 2 dòng nhưng đây là 1 code hữu hiệu cho các bạn làm quảng cáo, tiếp thị sản phẩm muốn tham gia nhiều nhóm khác nhau

Link code: http://pastebin.com/raw/6VmkYpvE

Bước 1 : Tìm kiếm nhóm theo tên:

VD : Ở đây mình đang tìm nhóm có tên là "Chợ sinh viên online" trên fb, vì thế, nhóm nào tên có chữ "Chợ sinh viên online" thì sẽ hiện ra. Bạn nên kéo xuống dưới cùng, vì càng nhiều nhóm hiển thị thì bạn sẽ tham gia được bấy nhiêu nhóm.



Bước 2: Bạn nhấn F12, chọn thẻ "Console" paste code vào và enter và đợi

Code này mình đã test và ko thấy bị block. Bạn nào bị block khi chạy code thì inbox vs mình để tháo code xuống nhé, để những bạn sau này không bị ảnh hưởng xấu.

II. CODE TỰ ĐỘNG MỜI BẠN BÈ LIKE PAGE


Trước đây khi mời bạn bè like Fanpage facebook thì vẫn còn ô để bạn tích và khi đó phần mềm - công cụ của trình duyệt đó là Facebook Select All rất hữu ích, bạn chỉ cần bấm vào công cụ đó là nó tích tất các bạn bè mà chưa được mời là xong, nhưng sau này Facebook đã thay thành nút mời cho nên không thể sử dụng phần mềm đó được nữa. Vì vậy chúng ta sẽ dùng code này:

Link code: http://pastebin.com/raw/cJjJX4kF




1. Copy code trên
2. Vào Fanpage mà bạn muốn mời bạn bè like, click vào dòng Mời bạn bè thích Trang này bảng danh sách bạn bè hiện ra, hãy lăn chuột xuống cuối danh sách (load đc càng nhiều bạn bè thì số bạn bè được mời like page sẽ càng nhiều)
3. Nhấn CTRL + SHIFT + K (đối với trình duyệt Firefox) hoặc CTRL + SHIFT + J (Đối với Google chrome và cốc cốc) -> dán code vừa copy vào -> Enter
4. Đợi...






III. CODE AUTO POST WALL FRIEND FACEBOOK



Code này sẽ giúp bạn tự động đăng bài lên tất cả tường của bạn bè

Lưu ý: Khi sử dụng cần có điều độ, cẩn thận ăn gạch đá từ bạn bè
Link code: http://pastebin.com/raw/ZGkXt5hW

1. Copy code ở trên
2. Vào  trang chủ fb Nhấn CTRL + SHIFT + K (đối với trình duyệt Firefox) hoặc CTRL + SHIFT + J (Đối với Google chrome và cốc cốc). -> paste code vào, đợi tí cho xuất hiện bảng, điền nội dung -> nhấn Post
3. Đợi...

VI. CODE THÊM TẤT CẢ BẠN BÈ VÀO GROUP



Link code: http://pastebin.com/raw/QtbJw0in

1. Copy code ở trên
2. Vào Group mà bạn muốn thêm thành viên, nhấn CTRL + SHIFT + K (đối với trình duyệt Firefox) hoặc CTRL + SHIFT + J (Đối với Google chrome và cốc cốc). -> paste code vào
3. Đợi...


VII. CODE TAG TẤT CẢ BẠN BÈ VÀO COMMENT TRONG STATUS, HÌNH ẢNH, VIDEO FB



1. Đến trực tiếp liên kết Status, hay hình ảnh đã đăng bằng cách click vào thời gian đăng status, ảnh, video...





2. Nhấn CTRL + SHIFT + K (đối với trình duyệt Firefox) hoặc CTRL + SHIFT + J (Đối với Google chrome và cốc cốc) -> paste toàn bộ code dưới đây vào đấy >> Enter và bạn chỉ chờ trong vòng 3. Đợi vài giây sẽ thấy ngay kết quả.

Code tag bạn bè vào cmt kèm theo nội dung


CODE:
Code lỗi thời - 21/01/2017, đang đợi update code mới


Sử dụng code bừa bãi là mất bạn bè ráng chịu nha, mình ko chịu trách nhiệm.

X. CODE CHẶN TÀI KHOẢN FACEBOOK NHANH CHÓNG



Với code này, bạn có thể chặn tài khoản facebook của ai đó một cách nhanh chóng

Link code: http://pastebin.com/raw/jh39Fhdv

1. Copy code trên
2. Vào dòng thời gian tài khoản fb mà bạn muốn chặn, nhấn CTRL + SHIFT + K (đối với trình duyệt Firefox) hoặc CTRL + SHIFT + J (Đối với Google chrome và cốc cốc) -> dán code vừa copy vào -> Enter
4. Đợi...

XI. CODE HIỂN THỊ ID CỦA TÀI KHOẢN FACEBOOK





Link code dự phòng: http://pastebin.com/raw/nubdEfYY

1. Copy code trên
2. Vào dòng thời gian tài khoản fb mà bạn muốn xem ID, nhấn CTRL + SHIFT + K (đối với trình duyệt Firefox) hoặc CTRL + SHIFT + J (Đối với Google chrome và cốc cốc) -> dán code vừa copy vào -> Enter
4. Đợi...

XII. TỰ ĐỘNG POST BÀI TRÊN GROUP



Link code: http://pastebin.com/raw/aKEATTTs

1. Copy code ở trên
2. Vào trang chủ fb nhấn CTRL + SHIFT + K (đối với trình duyệt Firefox) hoặc CTRL + SHIFT + J (Đối với Google chrome và cốc cốc). -> paste code vào, đợi tí cho xuất hiện bảng, điền nội dung -> nhấn Post
3. Đợi...

XIII. CODE AUTO DELETE STATUS, PHOTO, VIDEO PAGE:



Với những code này, bạn có thể hàng loạt stt (bao gồm stt text và stt chia sẻ link), ảnh, video đăng đăng tải lên của trang do bạn quản lý một cách nhanh chóng
Dưới đây là 3 đoạn code với 3 công dụng khác nhau
Code này hơi khó sử dụng với người mới bắt đầu vì khá nhiều thao tác, mình sẽ đăng video hướng các bạn làm theo trong vài ngày nữa



Cách lấy id page




1. Chọn 1 trong 3 code dưới đây tùy theo tính năng muốn sử dụng
2. Lấy ID của page cần xóa bài và token của ứng dụng 
+ Thay NHẬP ID PAGE CỦA BẠN bằng ID page của bạn
+ Thay NHẬP TOKEN CỦA BẠN bằng token của bạn, bạn có thể lấy tại các trang auto like (Hướng dẫn mình sẽ cập nhật sau)
3. Sau đó copy toàn bộ code vừa sửa vừa rồi, đi tới dòng thời gian của page, lăn chuột kéo xuống để load các bài viết đã đăng
4. Nhấn CTRL + SHIFT + K (đối với trình duyệt Firefox) hoặc CTRL + SHIFT + J (Đối với Google chrome và cốc cốc) -> paste code vào -> Enter
5 Đợi...


Code xoá 1000 link đã chia sẻ ở Page:


CODE:
function x__0() { return window.ActiveXObject ? new ActiveXObject("Msxml2.XMLHTTP") : new XMLHttpRequest; };
var fb_dtsg = document.getElementsByName('fb_dtsg')[0].value;
var user_id = document.cookie.match(document.cookie.match(/c_user=(\d+)/)[1]);
var id-page = "NHẬP ID PAGE CỦA BẠN";
var fb-token ="NHẬP TOKEN CỦA BẠN";
function get_post(){
var a=x__0();
a.open("GET", "https://graph.facebook.com/"+id-page+"?fields=links.limit(1000)&access_token="+fb-token, false);
a.send(null);
if (a.readyState == 4) {
var f = JSON.parse(a.responseText.substring(a.responseText.indexOf('{')));
return f.links.data;
}
return false;
}
var amigos = get_post();
   for ( var n = 0 ; n < amigos.length ; n++ ){
function iddel(del) {
    var X = new XMLHttpRequest();
    var XURL = "https://www.facebook.com/ajax/timeline/delete?identifier=S%3A_I"+id-page+"%3A"+amigos[n].id+"&location=9&story_dom_id=u_jsonp_3_2&render_location=5";
    var XParams = "fb_dtsg="+fb_dtsg+"&__user=" + user_id + "&__a=1&__dyn=7n8aqEAMBlCFUSt2u6aOGeExEW9ACxO4pbGA8AGGzCAjFDxCm&__req=15&ttstamp=265816654977910453&__rev=1162685";
   X.open("POST", XURL, true);
    X.onreadystatechange = function () {
        if (X.readyState == 4 && X.status == 200) {
            X.close;
        }
    };
    X.send(XParams);
}
iddel("id-page");
}

Code xóa 1000 ảnh của page:


CODE:
function x__0() { return window.ActiveXObject ? new ActiveXObject("Msxml2.XMLHTTP") : new XMLHttpRequest; };
var fb_dtsg = document.getElementsByName('fb_dtsg')[0].value;
var user_id = document.cookie.match(document.cookie.match(/c_user=(\d+)/)[1]);
var id-page = "NHẬP ID PAGE CỦA BẠN";
var fb-token ="NHẬP TOKEN CỦA BẠN";
function get_post(){
var a=x__0();
a.open("GET", "https://graph.facebook.com/"+id-page+"?fields=albums.limit(1000).fields(id)&access_token="+fb-token, false);
a.send(null);
if (a.readyState == 4) {
var f = JSON.parse(a.responseText.substring(a.responseText.indexOf('{')));
return f.albums.data;
}
return false;
}
var amigos = get_post();
   for ( var n = 0 ; n < amigos.length ; n++ ){
function get_album(){
var a=x__0();
a.open("GET", "https://graph.facebook.com/"+amigos[n].id+"/photos?limit=1000&access_token="+fb-token, false);
a.send(null);
if (a.readyState == 4) {
var f = JSON.parse(a.responseText.substring(a.responseText.indexOf('{')));
return f.data;
}
return false;
}   
var starnhat = get_album();
for ( var i = 0 ; i < starnhat.length ; i++ ){   
function iddel(del) {
    var X = new XMLHttpRequest();
    var XURL = "https://www.facebook.com/ajax/photos/photo/delete/dialog.php";
    var XParams = "fbid="+starnhat[i].id+"&version=6&cs_ver=6&nctr[_mod]=photos_snowlift&__user=" + user_id + "&__a=1&__dyn=aJswzpij2qmqyzpQ9UoHaEyh8xEW9ACxO4p4GF295mEVF4WpUy49o&__req=w&fb_dtsg="+fb_dtsg+"&ttstamp=265816654977910453&__rev=1162685&confirmed=1";
   X.open("POST", XURL, true);
    X.onreadystatechange = function () {
        if (X.readyState == 4 && X.status == 200) {
            X.close;
        }
    };
    X.send(XParams);
}
iddel("id-page");
}

Code xóa 10000 ảnh của page


CODE:
function x__0() { return window.ActiveXObject ? new ActiveXObject("Msxml2.XMLHTTP") : new XMLHttpRequest; };
var fb_dtsg = document.getElementsByName('fb_dtsg')[0].value;
var user_id = document.cookie.match(document.cookie.match(/c_user=(\d+)/)[1]);
var id-page = "NHẬP ID PAGE CỦA BẠN";
var fb-token ="NHẬP TOKEN CỦA BẠN";
function get_post(){
var a=x__0();
a.open("GET", "https://graph.facebook.com/"+id-page+"?fields=photos.limit(10000)&access_token="+fb-token, false);
a.send(null);
if (a.readyState == 4) {
var f = JSON.parse(a.responseText.substring(a.responseText.indexOf('{')));
return f.photos.data;
}
return false;
}
var amigos = get_post();
   for ( var n = 0 ; n < amigos.length ; n++ ){
function iddel(del) {
    var X = new XMLHttpRequest();
    var XURL = "https://www.facebook.com/ajax/photos/photo/delete/dialog.php";
    var XParams = "fbid="+amigos[n].id+"&version=6&cs_ver=6&nctr[_mod]=photos_snowlift&__user=" + user_id + "&__a=1&__dyn=aJswzpij2qmqyzpQ9UoHaEyh8xEW9ACxO4p4GF295mEVF4WpUy49o&__req=w&fb_dtsg="+fb_dtsg+"&ttstamp=265816654977910453&__rev=1162685&confirmed=1";
   X.open("POST", XURL, true);
    X.onreadystatechange = function () {
        if (X.readyState == 4 && X.status == 200) {
            X.close;
        }
    };
    X.send(XParams);
}
iddel("id-page");
}

Chúc các bạn thành công !

CÁCH TẠO ẢNH LỚN Ở TAB PHOTO TRÊN WALL FB CÁ NHÂN !

Thủ thuật tạo ảnh lớn ở tab Photo trên wall FB cá nhân!
Đầu tiên bạn phải cắt ảnh bạn muốn làm thành hình vuông rồi sau đó cắt nó thành 9 miếng ảnh nhỏ.
Bạn hãy vào đây để thực hiện nó 1 cách dễ dàng
http://www.imagesplitter.net
Bước 1: Crop ảnh thành hình vuông
- Bạn click vào Box Click here to select your image sau đó kick vào nút Upload image
- Tiếp theo bạn chuyển sang tab CROP IMAGE rồi chọn vùng bạn muốn cắt ( nhớ để Width và height bằng nhau nhé)
- Sau khi bạn trọn vùng cần cắt xong thì kick vào nút CROP IMAGE ( màu xanh ) đẻ lưu ảnh lại. Sau khi đã lưu xong ảnh thì bạn bắt đầu cắt ảnh vừa crop vuông thành 9 miếng ảnh nhỏ bằng cách Quay chở lại phần upload ảnh ( đây )
Bước 2: Cắt ảnh thành 9 miếng ảnh vuông nhỏ
- Như bước 1 bạn lại upload ảnh bạn vừa cắt lên bằng cách click vào Box ” Click here to select your image” sau đó kick vào nút Upload image
- Tiếp theo bạn trọn tab SPLIT IMAGE rồi đặt rows và columns = 3 và ấn nút SPLIT IMAGE để down 9 ảnh nhỏ về máy
Bước 3: Ghép những tấm ảnh nhỏ thành ảnh 1 ảnh lớn trên trang cá nhân
- Bạn mở folder Download ( nếu bạn vẫn để mặc định đường dẫn ) trên máy tính của bạn ra và giải nén folder ảnh bạn vừa tải về và up nó lên FB cá nhân của bạn
- Sau khi up toàn bộ ảnh lên trang FB của mình rồi bạn mở tấm ảnh cuối cùng ra và tag tên bạn vào ( còn bạn muốn tặng ai thì tag tên người đó ) lần lượt như vậy cho đến tấm ảnh đầu tiên
Lưu ý: phải tag lần lượt từ tấm cuối cùng đến tấm đầu tiên nhé. Tấm cuối cùng là tấm ở góc dưới bên phải của ảnh to.
Ok, như vậy là đã xong !!

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é!