私は、論理演算と数学演算しか実行できない関数を意味し3+5<=9
ます。"string"=="string" && (3<9 || 12>3)
a+b<c
"string".length > 3
編集:
そこで、eval() を使用する正当な理由を 1 つ見つけました ...
私は、論理演算と数学演算しか実行できない関数を意味し3+5<=9
ます。"string"=="string" && (3<9 || 12>3)
a+b<c
"string".length > 3
編集:
そこで、eval() を使用する正当な理由を 1 つ見つけました ...
あなたの質問に対する最も簡単な答えは、「いいえ、ありません」だと思います。
自分で作成したり、既存のもの (JS ライブラリになる) を見つけたり、パーサー ジェネレーターを入手して Javascript で実行できるパーサーを生成したりできます。
ANTLRはそのようなツール/プラットフォームの 1 つです。Javascript ランタイムのダウンロードは、ダウンロード ページにあります。ただし、それを理解して実際に機能するガンマーを作成するには、ANTLRWorks ツールが必要です。
基本的な Math パーサー (4 つの主要な演算子をサポート) は、何をしているのかがわかれば、数分で起動して実行することができます。
はい、解決策があります:新しい関数オブジェクトを作成するだけで、スコープを汚染しないという利点があります...確かに安全に見えます: https://stackoverflow.com/a/7650148/393087
はい、わかっています。これは私が本当に望んでいたものではありませんが、安全性の面で正しい方向に近づいています。