eval[] chậm chạp và dễ bị đe dọa bảo mật, do đó không được khuyến khích sử dụng. Đây là lý do tại sao nó được nói như vậy
i] Mã được truyền cho eval được thực thi với các đặc quyền của người thi hành. Vì vậy, nếu mã được truyền có thể bị ảnh hưởng bởi một số ý định xấu, nó sẽ dẫn đến việc chạy mã độc hại trên máy của người dùng với các đặc quyền của trang web của bạn
ii] Một mã độc có thể hiểu phạm vi mà mã được chuyển đến eval được gọi là. Do đó, có thể làm tăng các mối đe dọa bảo mật
iii] eval phải gọi Trình thông dịch JS, do đó làm cho nó chậm chạp
Ví dụ -1 của hàm eval[]
Ví dụ sau minh họa cách sử dụng hàm eval[]
JavaScript: eval function example-1
JavaScript eval[] function example-1
//This is done to make the following JavaScript code compatible to XHTML.
Xem ví dụ trên trình duyệt
Ví dụ -2 của hàm eval[]
Đây là một ví dụ khác về hàm eval[]
JavaScript: eval function example-2
JavaScript eval[] function example-2
//This is done to make the following JavaScript code compatible to XHTML.
Xem ví dụ trên trình duyệt
Các lựa chọn thay thế cho eval
Thay vì sử dụng eval để chuyển đổi tên thuộc tính thành thuộc tính, hãy sử dụng toán tử thành viên
Mã không được đề xuất
chữ cái var = { a. táo, b. chuối };
var lettername = getPropName[];
eval["var display = chữ cái. " + tên đệm ];
Mã khuyến nghị
chữ cái var = { a. táo, b. chuối };
var lettername = getPropName[];
var display= alphabets[proname ]; . a
Sử dụng các chức năng thay vì đánh giá đoạn mã
sử dụng json. xâu chuỗi và JSON. phân tích cú pháp thay vì sử dụng evals
Bạn có thể bấm vào đây để xem một cuộc thảo luận chi tiết
Truyền dữ liệu thay vì mã
Để cạo dữ liệu từ trang web saya, sử dụng XPATH thay vì Mã JavaScript
Duy trì khả năng tương thích triển khai chéo
Không sử dụng đối số thứ hai trong eval. Nó không được hỗ trợ trong tất cả các trình duyệt hiện đại
Thực thi mã với các đặc quyền hạn chế
Nếu bạn đang chạy mã với eval, hãy giảm đặc quyền. Điều này mặc dù có thể không được thực hiện trong nhiều ứng dụng. Một số trường hợp sử dụng có thể đang triển khai nó trong XUL - kiến trúc giao diện người dùng của Mozilla
Trước. JavaScript. Hàm số
Kế tiếp. Hàm isFinite[] trong JavaScript
Kiểm tra kỹ năng Lập trình của bạn với bài kiểm tra của w3resource
Theo dõi chúng tôi trên Facebook và Twitter để cập nhật thông tin mới nhất.
JavaScript. Lời khuyên trong ngày
Lấy các mục cuối cùng trong một mảng
Nếu muốn lấy các phần tử ở cuối mảng, bạn có thể sử dụng phương thức slice với số nguyên âm
Hàm JavaScript eval[]
Cải thiện bài viết
Lưu bài viết
Thích bài viết
- Cập nhật lần cuối. 13 tháng 1 năm 2023
Cải thiện bài viết
Lưu bài viết
Hàm eval[] trong Javascript được sử dụng để đánh giá biểu thức. Nếu đối số đại diện cho một hoặc nhiều câu lệnh JavaScript, eval[] sẽ đánh giá các câu lệnh. Chúng tôi không gọi eval[] để đánh giá một biểu thức số học. JavaScript tự động đánh giá các biểu thức số học.
Ghi chú
đánh giá[]. Hàm này được sử dụng để đánh giá một chuỗi dưới dạng mã JavaScript, nhưng hiện tại nó được coi là không dùng nữa vì nó có thể gây ra các lỗ hổng bảo mật và thường không cần thiết
cú pháp
eval[string]
Thông số. Hàm này chấp nhận một tham số duy nhất như đã đề cập ở trên và được mô tả bên dưới
- Chuỗi. Một chuỗi đại diện cho một biểu thức JavaScript, câu lệnh hoặc chuỗi các câu lệnh. Biểu thức có thể bao gồm các biến và thuộc tính của các đối tượng hiện có
Giá trị trả về. Giá trị hoàn thành của việc đánh giá mã đã cho được trả về bằng cách sử dụng eval[]. Nếu giá trị hoàn thành trống, không xác định được trả về.
Thí dụ
Input : eval[new String['2 + 2']]; Output: returns a String object containing "2 + 2"
Input : eval[new String['4 + 4']]; Output: returns a String object containing "4 + 4"
Các ví dụ dưới đây minh họa hàm eval[] trong JavaScript.
ví dụ 1.
Javascript
// JavaScript to illustrate eval[] function
Input : eval[new String['2 + 2']]; Output: returns a String object containing "2 + 2"0
Input : eval[new String['2 + 2']]; Output: returns a String object containing "2 + 2"1
Input : eval[new String['2 + 2']]; Output: returns a String object containing "2 + 2"3_______3_______4
Input : eval[new String['2 + 2']]; Output: returns a String object containing "2 + 2"3_______3_______6
Input : eval[new String['2 + 2']]; Output: returns a String object containing "2 + 2"7
Input : eval[new String['2 + 2']]; Output: returns a String object containing "2 + 2"3_______3_______6
Input : eval[new String['4 + 4']]; Output: returns a String object containing "4 + 4"0
Input : eval[new String['2 + 2']]; Output: returns a String object containing "2 + 2"3_______4_______3
Input : eval[new String['2 + 2']]; Output: returns a String object containing "2 + 2"3_______3_______6
Input : eval[new String['4 + 4']]; Output: returns a String object containing "4 + 4"6
Input : eval[new String['4 + 4']]; Output: returns a String object containing "4 + 4"7
Input : eval[new String['4 + 4']]; Output: returns a String object containing "4 + 4"8
Input : eval[new String['2 + 2']]; Output: returns a String object containing "2 + 2"3_______23_______0
"16"2
"16"4
"16"6
"16"7
đầu ra
"16"
ví dụ 2.
Javascript
// JavaScript to illustrate eval[] function
Input : eval[new String['2 + 2']]; Output: returns a String object containing "2 + 2"0
Input : eval[new String['2 + 2']]; Output: returns a String object containing "2 + 2"1
Input : eval[new String['2 + 2']]; Output: returns a String object containing "2 + 2"3_______3_______4
Input : eval[new String['2 + 2']]; Output: returns a String object containing "2 + 2"3_______3_______6
"4"9
Input : eval[new String['2 + 2']]; Output: returns a String object containing "2 + 2"3_______3_______6
NaN2
Input : eval[new String['2 + 2']]; Output: returns a String object containing "2 + 2"3_______38_______5
Input : eval[new String['2 + 2']]; Output: returns a String object containing "2 + 2"3_______3_______6
Input : eval[new String['4 + 4']]; Output: returns a String object containing "4 + 4"6
Input : eval[new String['4 + 4']]; Output: returns a String object containing "4 + 4"7
0Input : eval[new String['2 + 2']]; Output: returns a String object containing "2 + 2"3_______23_______0
"16"2
6
"16"6
"16"7
đầu ra
"4"
ví dụ 3.
Javascript
// JavaScript to illustrate eval[] function
Input : eval[new String['2 + 2']]; Output: returns a String object containing "2 + 2"0
Input : eval[new String['2 + 2']]; Output: returns a String object containing "2 + 2"1
Input : eval[new String['2 + 2']]; Output: returns a String object containing "2 + 2"3_______3_______4
Input : eval[new String['2 + 2']]; Output: returns a String object containing "2 + 2"3_______3_______6
// JavaScript to illustrate eval[] function
1Input : eval[new String['2 + 2']]; Output: returns a String object containing "2 + 2"3_______3_______6
// JavaScript to illustrate eval[] function
4
Input : eval[new String['2 + 2']]; Output: returns a String object containing "2 + 2"3_______73_______7
Input : eval[new String['2 + 2']]; Output: returns a String object containing "2 + 2"3_______3_______6
Input : eval[new String['4 + 4']]; Output: returns a String object containing "4 + 4"6
Input : eval[new String['4 + 4']]; Output: returns a String object containing "4 + 4"7
0Input : eval[new String['2 + 2']]; Output: returns a String object containing "2 + 2"3_______23_______0
"16"2
"16"4
"16"6
"16"7
đầu ra
NaN
Chúng tôi có một danh sách đầy đủ các phương thức Chức năng Javascript, để kiểm tra những phương thức đó, vui lòng xem qua bài viết tham khảo đầy đủ Chức năng Javascript này
Trình duyệt được hỗ trợ
- Google Chrome
- trình duyệt web IE
- Mozilla Firefox
- Cuộc đi săn
- Ô-pê-ra
Chúng tôi có một Cheat Sheet về Javascript, nơi chúng tôi đề cập đến tất cả các chủ đề quan trọng của Javascript để kiểm tra những chủ đề đó, vui lòng xem qua Javascript Cheat Sheet-Hướng dẫn cơ bản về JavaScript