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

//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 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




        // 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
    NaN
    2

        

    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 0

    Input : 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[] function1

    Input : eval[new String['2 + 2']];
    Output: returns a String object containing "2 + 2"
    3_______3_______6 // JavaScript to illustrate eval[] function4

        

    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 0

    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

    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

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

    Để thực thi JavaScript trong trình duyệt, bạn có hai tùy chọn — hoặc là đặt nó bên trong phần tử tập lệnh ở bất cứ đâu bên trong tài liệu HTML hoặc đặt nó . js] và sau đó tham chiếu tệp đó bên trong tài liệu HTML bằng phần tử tập lệnh trống có thuộc tính src.

    việc sử dụng eval[] giải thích với một ví dụ là gì?

    Hàm eval chủ yếu được sử dụng trong các tình huống hoặc ứng dụng cần đánh giá các biểu thức toán học. Ngoài ra nếu người dùng muốn đánh giá chuỗi thành mã thì có thể sử dụng hàm eval, vì hàm eval đánh giá biểu thức chuỗi và kết quả trả về số nguyên

    Tại sao không sử dụng eval trong JavaScript?

    Mã độc hại . gọi eval có thể làm hỏng máy tính. Ví dụ. nếu bạn sử dụng phía máy chủ eval và một người dùng tinh nghịch quyết định sử dụng một vòng lặp vô hạn làm tên người dùng của họ. chậm khủng khiếp. ngôn ngữ JavaScript được thiết kế để sử dụng đầy đủ các loại JavaScript [số, hàm, đối tượng, v.v.]… Không chỉ các chuỗi.

    eval[] có an toàn không?

    eval[] không an toàn vì bạn không bao giờ biết liệu mã bạn thực thi có đáng tin cậy hay không. Bạn có thể giới hạn phạm vi của các biến đang được truy cập với đối số thứ hai được chuyển đến eval[] nhưng có nhiều trường hợp nội dung của lệnh có an toàn hay không.

    Chủ Đề