Làm cách nào để thực thi eval trong JavaScript?

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


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


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 FacebookTwitter để 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
  • Bàn luận
  • khóa học
  • Luyện tập
  • Băng hình
  • 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




        

    "16"
    6

    "16"
    7

    đầu ra

    "16"

    ví dụ 2.  

    Javascript