รู้เบื้องต้นเกี่ยวกับการประเมิน
--- Eval เป็นวิธีการต้นแบบวัตถุทั่วโลกในนิยาม ECMA;
--- พารามิเตอร์ที่ได้รับการยอมรับจาก Eval เป็นรหัสรูปแบบสตริง JS ซึ่งจะดำเนินการโดยเอ็นจิ้นการดำเนินการ (จำไว้ว่า 'การเขียนโปรแกรมขั้นสูง' หรือบางสิ่งบางอย่างสร้างเอ็นจิ้นการดำเนินการใหม่ในเวลานี้) จากนั้นส่งคืนผลลัพธ์ไปยังตำแหน่งของการเรียก Eval
<! doctype html> <html> <head> <dite> การเรียนรู้การเรียนรู้ </title> <script type = "text/javascript">/*eval ("นิพจน์"); เรียกใช้คำสั่งการแสดงออก evern ("("+JavaScript type+")"); แปลงเป็นวัตถุ JavaScript*/var jsonObj = {"ชื่อ": "ljl", "data": 123}; // json, เป็นวัตถุของ JavaScript jsonstring = '{"ชื่อ": "ljl", "data": 123}'; objtype = eval ("("+jsonstring+")"); // แปลงอักขระ JSON เป็นการแจ้งเตือนวัตถุ JavaScript (typeof jsonstring); // stringalert (typeof objtype); // objalert (eval (123)); // 123Alert y = evaln ('x+1'); // ดำเนินการแจ้งเตือนการแสดงออก 2+1 ('y ='+y); // 3 </script> </head> <body> </body> </html>ภาคผนวก: สรุป
Eval เป็นหนึ่งในคุณสมบัติแบบไดนามิกของ JS ผ่านมันจะดำเนินการโดยตรงโปรแกรม JS และส่งคืนผลลัพธ์ การใช้งานทั่วไปคือการกู้คืนข้อมูล JSON ไปยังวัตถุ JS;
อย่างไรก็ตามเนื่องจากมันสามารถเปลี่ยนวัตถุบริบทได้ที่รันไทม์แบบไดนามิกมันจะนำความเสี่ยงของการโจมตีการฉีด
เมื่อใช้งานให้ใส่ใจกับไวยากรณ์ของสตริงของ Eval ปัญหาที่พบบ่อยคือปัญหา 'รั้ง'