เพื่อนที่คุ้นเคยกับ JavaScript อาจไม่คุ้นเคยกับฟังก์ชั่น eval () เราสามารถใช้มันเพื่อใช้การดำเนินการของรหัสไดนามิก ฉันยังเขียนหน้าเว็บที่ใช้เป็นพิเศษเพื่อคำนวณการแสดงออกทางคณิตศาสตร์ ความสามารถในการคำนวณดีกว่าของ Google และ Baidu Calculators อย่างน้อยก็มีความแม่นยำสูงกว่า อย่างไรก็ตามหากการดำเนินการทั้งสี่เกินการดำเนินการทั้งสี่รูปแบบของการแสดงออกจะซับซ้อนมากเช่นตัวอย่างที่ได้รับจาก Baidu:
บันทึก ((5+5)^2) -3+pi ต้องเขียนเป็น math.log (math.pow (5+5,2))*math.log10e-3+math.pi ที่จะใช้สำหรับการคำนวณกับ eval ฉันไม่ได้คิดถึงวิธีแก้ปัญหาที่เหมาะสำหรับเรื่องนี้ ตกลงนี่ไม่ใช่หัวข้อหลักของบทความนี้ลองปล่อยมันไป
ฉันเคยเห็นผู้คนใช้รหัสต่อไปนี้ใน Blog Park อย่างน้อยในแง่ของรูปแบบรหัสมันค่อนข้างง่าย:
// csc.exe noname1.cs /r:c:/windows/microsoft.net/framework/v1.1.4322/microsoft.jscript.dll // หมายเหตุ: สอง namespaces ของ microsoft.jscript และ microsoft.vsa คลาสสาธารณะคลาส 1 {โมฆะคงที่หลัก (สตริง [] args) {system.console.writeLine ("Hello World"); string expression = "var ผลลัพธ์: int = 0; result == 1?/" ความสำเร็จ/":/" ล้มเหลว/""; microsoft.jscript.vsa.vsaEngine ve = microsoft.jscript.vsa.vsaEngine.createEngine (); Console.WriteLine (microsoft.jscript.eval.jscriptevaluate (นิพจน์, VE)); -อย่างไรก็ตามมันเป็นสิ่งที่ไม่พึงประสงค์ที่สภาพแวดล้อมการรวบรวมในขณะนี้ให้คำเตือนต่อไปนี้: 'microsoft.jscript.vsa.vsaEngine' ล้าสมัย: 'การใช้ประเภทนี้ไม่แนะนำเพราะมันถูกเลิกใช้ใน Visual Studio 2005; จะไม่มีการแทนที่คุณสมบัตินี้ โปรดดูเอกสาร ICODECOMPILER สำหรับความช่วยเหลือเพิ่มเติม ' แน่นอนรหัสสามารถรวบรวมและดำเนินการตามปกติ
ด้านล่างนี้ฉันจะให้วิธีอื่นในการใช้ฟังก์ชันการประเมินของ JavaScript โดยตรง ด้วยความช่วยเหลือของส่วนประกอบ COM เส้นทางอ้างอิงคือ %SystemRoot %/System32/MSScript.ocx และฉันจะโพสต์รหัสที่สมบูรณ์โดยตรง
การใช้ระบบ; การใช้ System.collections.generic; การใช้ System.Text; การใช้ System.Diagnostics; Namespace ScriptProgramming {โปรแกรมคลาส {โมฆะคงที่หลัก (สตริง [] args) {string strexpression = "1+2*3"; String strresult = eval (strexpression); Console.WriteLine (Strexpression + "=" + strresult); Console.WriteLine ("กดปุ่มใด ๆ เพื่อดำเนินการต่อ"); console.readkey (); } /// <summary> /// Component Component Microsoft Script Control /// %systemroot %/system32/msscript.ocx /// ฟังก์ชั่นนี้ใช้เพื่อเรียกใช้งานรหัสแบบไดนามิก /// </summary> /// <param name = "นิพจน์"> </param> /// ลอง {msscriptcontrol.scriptcontrolclass jscript = ใหม่ msscriptcontrol.scriptcontrolclass (); jscript.language = "jscript"; stresult = jscript.eval (นิพจน์) .tostring (); } catch (exception ex) {debug.fail (ex.message); } return strresult; -คำอธิบายโดยละเอียดข้างต้นของตัวอย่างการดำเนินการรหัสแบบไดนามิก (eval of js) ตัวอย่างคือเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น