3
我需要評估用戶構建的布爾表達式。我看到兩種方法可以做到這一點:用於布爾表達式評估的Javascript評估
1)建立一個字符串,將其傳遞給EVAL
2)建立一個抽象語法樹,並評估它自己
我與EVAL實現它,因爲它是最簡單解。我不相信第二種方法會好得多,如果實際上速度較慢,我不會感到驚訝。
安全性不應該是一個問題,因爲我從一組預定值構建表達式。
在大多數情況下,表達式將非常簡單,但可以構建更復雜的表達式。這大約是複雜,因爲它會得到:「(真||假& &假)& &(真)」
的思考?
謝謝。我們最終只是堅持評估。實際上,我們使用「var f = new Function('return'+ exprStr); f();」因爲有傳言說它速度更快,但似乎沒有人知道爲什麼。我們也跳過了eval,用於諸如'true'或'false'等簡單表達式。 – AaronSzy