ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript のヒント 2.5_JavaScript のヒント
前回のブログ投稿では、 JavaScript にラムダ式 と同様のプログラミング機能を持たせる方法を紹介しましたが、JavaScript の構文チェックと互換性がある必要があるため、さまざまな状況で使用できます。限定。
しかし、もっと注意深い友人の中には、私がその (擬似) Lambda モジュールでいくつかのトリックを使用していることに気付いたかもしれません。ここで、次のヒントを紹介します。
1. 新しい関数を使用します。構文チェックを実行します。
フレームワークを書こうとする学生は、このことについて深く感じているはずです。コードを通じて生成されたコードは、技術的なミスにより文法的なエラーを引き起こす場合があり、その結果、動作中に異常な中断が発生する場合があります。ユーザー入力を受け入れることができますが、ユーザーは意図的または非意図的に間違ったステートメントや式を作成する可能性があります。
この問題を解決するために、意図的に複雑な構文チェック プロセスを作成する (または既成の構文チェック プロセスを使用する) 学生もいます。しかし、コード構文を分析するコードを作成するのは非常に骨の折れる作業であり、一度問題が発見されると、調整するのも非常に困難です。不便です。
実際、この問題にはもっと簡単な解決策があります。それは、eval や new Function などのスクリプト エンジン独自の構文チェックを使用することです。もちろん、この eval を無差別に使用することはできません。eval が不適切に使用されると、問題はありますが、new Function はそれほど大きな問題ではありません。new Function によって構築された関数は、どのような状況でもグローバル スコープで直接動作しますが、単なる構文チェックであれば問題は発生しません。スコープの問題。構築された新しい関数を実際に直接呼び出さない限り、予期しない結果になります。
2. eval で受け入れられるパラメータの前に「0」を追加します。
実際には、これは IE のバグが原因です。
何らかの魔法の理由により、IE で eval を呼び出して関数を動的に構築する場合、関数の式の前後に括弧を追加するだけです。たとえば、