プログラミング言語の現代の構文の形成の歴史は、宇宙の形成のプロセスの知識に似ています。何がどのように始めに...しかし、今はすべてがシンプルでアクセスしやすいです。
アルゴリズムは最終的には常にコマンドの連鎖。プログラミングにおける並列性は、何らかの組み合わせのシーケンスのセットです。循環アルゴリズムは、シーケンシャルまたはパラレルのコマンドチェーンよりも実用的ではありませんでした。タグ、トランジション、条件 - すべてが決定に足りました。機能的な言語はこれらの考え方を奪いましたが、コードセクションを繰り返す必要はありませんでした。
JavaScriptのサイクルは残っていますが、機能的ですアイデアは、特別な意味を取得しました。おそらく、何かを「Lispの」と「プロローグ」の左が、すべてのほとんどは、JavaScriptが住んでいる地域は、そこにあるという事実につながったが、それは、この最新の決断疑わしいです。
JavaScriptはブラウザ内で動作します。ページを受け取り、DOMで解析し、最初のスクリプトを実行します。これにロードされたものを含む他のすべてのページは、開発者が言語を操作する手作業であり、これを介してサーバー上のコードを呼び出すことができ、AJAXメカニズムを使用して結果を得ることができます。
ブラウザはJavaScriptコードを実行します。サーバーへの情報転送を提供し、HTMLマークアップ、スタイル、コード自体を含むレスポンスを受け取るブラウザを含む、ブラウザのオブジェクトを使用します。答えは配列とオブジェクトで表現できます。 JavaScriptを使用する感覚はJavaScriptでは失われていますが、JavaScriptを使用しないで行う方法はたくさんあり、無限のコマンドシーケンスでブラウザをハングアップさせる危険性は最善の解決策ではありません。
実際のサイクルはほとんどのJavaScriptシンタックス構造に存在し、開発者は標準構造を独自の機能で補うことができます。
現代のプログラマーはそれを考えることさえしないサイクルの最後でシリーズ(サイクル)プロセッサ、バイナリ操作の簡単なシーケンス、中断されたレジ、すなわち条件 - (のため、しばらく、しばらく操作を行い、...)サイクルにそれらを使用。
したがって、機械語のレベルにサイクルはありません:通常のコマンド、条件付き演算、および遷移の組み合わせがあります。ブラウザとJavaScriptインタプリタを開発するために使用されるツールが何であれ、ループは明確になります。そして、「コードの部分」は、異なる時間と異なる世代のプログラマによって表されるでしょう。上記の1つはJavaScriptの「構築」です。最新のJavaScriptサイクルを提供する構文です。
JSは素晴らしい言語です:現実的でモダンでフル装備です。このツールの構文には、時間のテストに合格し、アルゴリズムの揺るぎない基盤となったすべての構造が含まれます。しかし、サイクルは本当に必要ですか?プログラミングの進歩は、しばしば基本的な性質の質問を求めましたが、場合によっては解決策が見つかっただけでした。
サイクルには2つのオプションしかありません。条件またはカウンターではなく、実際に(最低レベルで)任意のサイクル - 条件によってのみ。いくつかの言語では、「それぞれのための」サイクルが発生します。 JavaScriptでは、foreachループはオブジェクト内の小道具で表されますが、array.forEach(...)オプションを使用できます。
いずれにしても、2つの選択肢があります。最終的にはすべてのプログラミングのアルゴリズムを実行するコンピュータコードが、でも解釈の言語で書いて、他のコマンドチェイン繰り返しオプションを持っていない:彼はまで再び実行するために何かを持っていることがあります。
JavaScriptは典型的なインタプリタです。この機能は、ブラウザ内で機能し、そのオブジェクトを使用し、ページがブラウザにロードされたとき、および操作中にクライアント側でアルゴリズムを実行できるようにします。
JavaScriptでは、foreachループは一連の関数へのアプリケーションのように見えます:
そのようなサイクルを使用しても問題は生じません。正式には、そのようなサイクルはありません。配列の要素に関数の一貫した呼び出しがあります。
もっとよく知っているJavaScriptを見てください:
ここで、カウンタは変数であり、値これは式に応じて変化し、サイクル終了の符号が条件です。数式と条件にループ変数が含まれている必要はありません。しかし、サイクルの最後の制御は、その内容によって完全に決定されます。
JavaScriptが提供するオプションいつ状態を確認する必要があるかによって異なります。ループの本体が一度も実行できない場合、本体が少なくとも1回は実行されなければならない場合は1つですが、これは別のものです。
最初のケースでは、while構文を解釈しながら、JavaScriptは最初に条件をチェックし、真であればループを実行します。後者の場合、最初にサイクルが実行されます。構築条件で指定された変数を変更した結果 それが偽の値を取る間、ループは実行を停止します。
いずれかの主要タスク(構成部分)アルゴリズム - 見つけるだけで、次に何をするかを決める。検索の最も基本的なバージョンは変数にアクセスすることで、結果は直接取得されます。多くの変数がある場合、または値(配列)が多数ある場合は、値を見つけるために、スクリプトのさらなる動作を決定する何かを見つける必要があります。
このような単純な教義は、 ある種類のJavaScript言語でカウンタを使用してサイクルを実行するすべての仕事のための万能薬。現代のコンピュータは高速です。ブラウザでスクリプトを実行する時間は十分ありますが、急いでいるところはありません。何かのために何かを整理する方が簡単です。その結果、JjavaScript forループは非常に人気があります。
これには何も悪いことはありません。しかし、このようなアプローチの背後には、1つまたは別のアルゴリズムが書き込まれる本質が簡単に失われます。 データは無意味ではありません。どんなプログラムが書かれているすべてのものが意味を成しています。 J上で過度に使用するjavaScript forループでは、開発者は必要なエンティティを確認して適切なアルゴリズムを作成することができません。
適用 JavaScriptサイクル、サンプル 同じコードを関数で表現することができます。アルゴリズムは即座に変更され、スクリプト本体のサイズは小さくなり、すべてが読みやすく理解できるようになります。
これは根本的に新しい解決策ではありませんが、本質的には他の言語構成を超えたものではありません。特に、JjavaScriptループは、従来のsplit()関数で見つけることができます:
var cResult = "私、8,7,6,5,4";
var aResult = cResult.分割("、");
ループはありませんが、 "、"文字を検索し、それを使って数字を別の数字に区切って使用すると、この機能は他にどのように機能しますか?
内部での実装方法の抽象化function split()では、サイクルを使用してJavaScriptを機能に追加することができます。このアプローチは、それぞれの問題ごとに機能の開発につながることは重要ですが、一般的にはこのアプローチを使用します。
これらの関数はallt()、padc()、padl()、およびpadr()です。これはJavaScriptではありませんが、行から空白を削除するか、行の長さを左右、または両方に合わせる必要があることがあります。これらの関数の本体にはJavaScriptサイクルがあります。シンプルで、アクセス可能で、決してそれを使用するアルゴリズムをハングしません。
数変換関数の変形計算の10番目のシステムへの16進数では、あるデータ形式から別のデータ形式へと、do-whileサイクルを通してここで実行されると言うのが簡単です。非常にコンパクトで効果的な言語構文。
JavaScriptは他のプログラミング言語の組ではなく、さまざまなバージョンの違いはありません。最も重要なことは、構文を変更するのではなく、開発して拡張することです。
JSプログラマーの考え方は異なります PHPプログラマーの考えから(特に、「Prolog」とそのフォロワーが主流に含まれていないことを除いて、他の言語をまとめて)、 アルゴリズムが変数、配列、代入演算子、ループ構造に限定されない場合。
サイクルがないと想像して問題が解決した場合必要な場合、最も簡単なオプション(目隠し)は、プログラムが情報空間内のポイントまたはポイントのシステムであるデータを処理すると想定することです。ポイントとは何か、ポイントのシステムとは何かは、特定の主題分野の問題です。プログラマーにとって、この論文は次のことを意味します。単純なデータがあり、単純なデータのコレクションがあります。当然、1つのレベルの単純なデータムは、下のレベルではシステムになり、上のレベルではポイントになります。
このアプローチでは、ポイントの関心事はあなたの方法を通してあなたの本質を明らかにすることです。ポイントがスーパーシステム内にある場合、システムの機能は、ポイントに含まれるポイントのエンティティのセットとしてその本質を明示することです。
このアプローチは、言語のアイデアと同じくらい古いですプログラミングですが、プログラミングに十分に反映されていません。多くのプログラマーは正しく考えていますが、彼らの創造性の結果には多くの要望が残されています。
世界を見るために時々目隠しをすることは役に立ちます!