Eval() trong JavaScript là gì?

Bất cứ khi nào bạn xử lý javascript và bạn đến một điểm mà bạn muốn đánh giá một biểu thức, hàm eval() sẽ ở đó. Trên thực tế, đây là một chức năng toàn cục của JavaScript mà chúng tôi sử dụng để đánh giá chuỗi được chỉ định dưới dạng mã JavaScript và sau đó thực hiện hoặc thực hiện thao tác mong muốn trên chuỗi đó

Ngoài ra, hàm eval() hoạt động khác nhau trong các tình huống khác nhau. Đối với một đối số được ước tính, nếu đó là một biểu thức, thì hàm eval() sẽ lấy nó làm biểu thức rồi đánh giá nó

Trong trường hợp một đối số là một câu lệnh của JavaScript, hàm eval() sẽ xử lý nó như một câu lệnh và sau đó thực thi nó

Gợi ý. Hàm eval() không thực hiện phép toán số học vì phép toán này được JavaScript thực hiện tự động

Cú pháp hàm eval

Đây là cú pháp của hàm eval

eval ( chuỗi )

eval là một hàm trong khi giá trị bên trong được gọi là tham số. Như bạn có thể thấy, chuỗi là tham số. Tùy thuộc vào bản chất của chương trình, chuỗi có thể là một biểu thức của JavaScript, một chuỗi các câu lệnh hoặc thậm chí là một câu lệnh đơn lẻ

Điều kiện cho giá trị Trả về

Để hàm eval() thực hiện và lấy kết quả, chúng ta cần đặt một số giá trị vào hàm. Trong trường hợp giá trị trống, nó sẽ trả về undefined

Ví dụ về hàm eval

Hãy thử một vài ví dụ để chứng minh và hiểu hoạt động thực sự của hàm eval()

Ví dụ 1
Chúng tôi sẽ đưa ra hai ví dụ về vấn đề này và hãy xem liệu bạn có thể đánh giá câu trả lời đúng không.

a = đánh giá (mới String('5+5'));
b = eval('5+5');

console.log( a ); .
console.log( b );

Bạn nghĩ sao?

Trước tiên hãy nói về ví dụ cũ. Trong trường hợp đó, giả sử chúng ta đã chỉ định hàm tạo của một chuỗi, thì hàm eval() sẽ trả về đối tượng của chuỗi. Nó sẽ không thực hiện hoạt động của chuỗi

Do đó, đầu ra của a sẽ là một đối tượng của chuỗi sẽ chứa “5 + 5”, không phải là câu trả lời cho phép toán số học này

Bây giờ chúng ta đến với biến b, trong đối số của hàm eval(), chúng ta không thấy bất kỳ chuỗi nào bên trong. Do đó, hàm eval() sẽ đánh giá biểu thức và câu trả lời sẽ là 10 sau khi được đánh giá

đầu ra

Eval() trong JavaScript là gì?

Ví dụ 2
Trong ví dụ này, chúng ta sẽ thử truyền các biến cho hàm eval() và xem điều gì sẽ xảy ra.

var f = 6, g = 7, h = 8, sum, mul, sub;
sum = eval(" f + g + h ");
mul = eval(" f * g * h");
sub = eval(" f - g");

console.log( tổng ); .  
console.log( mul ); .  
console.log( phụ );

Trong đoạn mã trên, chúng ta đã bắt đầu rõ ràng các biến f, g và h với các giá trị. Sau đó, chúng tôi thực hiện một số phép tính số học cơ bản để đánh giá chức năng của hàm eval(). Đó là cách hàm eval() hoạt động trong trường hợp không có chuỗi. Nó đánh giá biểu thức được đặt bên trong

Kết quả sẽ là

Kết quả

Eval() trong JavaScript là gì?

Ví dụ 3
Hãy thử đặt một cái gì đó phức tạp hơn như gọi một hàm và gán lệnh gọi hàm đó cho một biến.

var thử nghiệm ;

chức năng func1 (m, n)
{
  return m * n;
}

eval("test = func1(30, 20);");
console.log( kiểm tra );

Làm thế nào bạn sẽ đánh giá đầu ra? . Đây là cách

Đầu tiên, chúng ta khai báo biến test. Sau đó, chúng tôi giới thiệu hàm là “func1” bao gồm hai đối số “m” và “n”. Giá trị trả về của hàm đó sẽ là phép nhân của hai tham số “m” và “n” này

Kết quả sẽ được lưu trong biến kiểm tra và hàm sẽ được gọi bởi hàm eval()

Do đó, đầu ra sẽ là

Eval() trong JavaScript là gì?

Hạn chế

  • Nó được coi là không an toàn
  • Chậm
  • Mã không thể đọc được trong khi xử lý nó

Phần kết luận

Trong chủ đề này, chúng ta đã hiểu khá rõ về hàm eval(), chức năng của hàm eval() cũng như các hành vi của nó trong các điều kiện cụ thể

Chúng tôi bắt đầu bài viết từ phần mô tả hàm eval(), sau đó, bằng cách nêu rõ cú pháp, hạn chế và ví dụ, chúng tôi đã đề cập đến mọi khía cạnh của hàm eval() để người đọc có thể hiểu khái niệm này một cách tốt nhất.

Làm cách nào để sử dụng eval() trong JS?

Phương thức eval() đánh giá hoặc thực thi một đối số. Nếu đối số là một biểu thức, eval() sẽ đánh giá biểu thức. Nếu đối số là một hoặc nhiều câu lệnh JavaScript, eval() sẽ thực thi các câu lệnh .

Ví dụ về việc sử dụng hàm eval() là gì?

Một trường hợp sử dụng phổ biến của hàm eval() trong Python là để đánh giá các biểu thức toán học từ đầu vào dựa trên chuỗi . Ví dụ: nếu bạn muốn tạo một máy tính Python, thì bạn có thể sử dụng eval() để đánh giá đầu vào của người dùng và trả về kết quả tính toán.

Hàm eval là gì?

Hàm Eval đánh giá biểu thức chuỗi và trả về giá trị của nó . Ví dụ: Eval("1 + 1") trả về 2. Nếu bạn truyền vào hàm Eval một chuỗi chứa tên của hàm, hàm Eval sẽ trả về giá trị trả về của hàm.

Đánh giá có tốt trong JavaScript không?

Mã độc hại. việc 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.