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
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ả
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à
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.