Hàm eval trong JavaScript | Laptrinhcanban.com

Hàm eval trong JavaScript

Hướng dẫn cách sử dụng hàm eval trong javascript. Bạn sẽ học được cách sử dụng hàm eval để thực thi các lệnh JavaScript được miêu tả trong một chuỗi sau bài học này.

Hàm eval trong Javascript

Hàm eval trong Javascript là một hàm glocal có tác dụng thực thi các lệnh JavaScript được miêu tả trong một chuỗi.

Việc sử dụng hàm eval cực kỳ nguy hiểm vì các hacker có thể lợi dụng nó để chạy các dòng lệnh tấn công web được viết dưới dạng chuỗi và truyền vào hàm eval. Vì thế hàm eval được khuyến khích là không nên dùng.

Chúng ta sử dụng hàm eval trong JavaScript với cú pháp sau đây:

eval(string);

Trong đó string là chuỗi ký tự chứa các dòng code JavaScript cần thực thi.

Hàm eval sẽ đánh giá các dòng code được viết trong đối số tring, thực hiện các lệnh và trả về các kết quả sau khi chạy các lệnh đó. Trong trường hợp không có kết quả trả về thì giá trị undefined sẽ được trả về.

Ví dụ cụ thể, chúng ta viết các lệnh code vào String và thực hiện nó thông qua hàm eval như sau:

let str = 'x * y + 10';
let x = 8;
let y = 5;
let z = eval(str);

console.log(z);
//50

Trong ví dụ này, lệnh tính toán số học được viết trong chuỗi str sẽ được thực thi, và kết quả trả về được gán vào biến z như trên.

Hãy cùng xem một ví dụ khác:

let str = 'z = x * y + 10;console.log(z)';
let x = 8;
let y = 5;
let z;

eval(str);
// 50

Ví dụ thứ 2 này thì khác một chút, đó là ngoài việc thực hiện tính toán số học thì chúng ta đã viết luôn cả hàm in kết quả ra trong chuỗi str.

Chú ý khi dùng hàm eval trong Javascript

Giống như đã phân tích ở trên thì hàm eval có tác dụng thực hiện các lệnh JavaScript được viết trong một chuỗi. Do vậy sẽ rất là nguy hiểm nếu chúng ta nhận một chuỗi được viết bởi người dùng khác, rồi chuyển nó vào hàm eval, bởi vì sẽ có khả năng người dùng đó viết các lệnh xấu nhằm tấn công chương trình vào chuỗi, và thực thi nó thông qua eval.

Do tốc độ xử lý của hàm eval cũng không thực sự nhanh, và cũng có các phương pháp khác thay thế cho nó, nên hiện nay hầu như chúng ta không còn sử dụng đến hàm này nữa.

Tuy nhiên trong trường hợp bắt buộc cần phải dùng tới hàm eval, hãy chú ý đến vấn đề an toàn bảo mật mà Kiyoshi đã nêu ở trên nhé.

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách sử dụng hàm eval trong JavaScript rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về JavaScript trong các bài học tiếp theo.

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.