、プログラミング言語の理解を記録し、言語のC / C ++、パイソン、LUA、ダーツは、JavaScript、Javaの様々な数年に接触しました
プログラミング言語の理解、我々は二つの側面に焦点を当てるべきです
まず、言語機能
言語の機能は次のとおりです。
弱い型指定された対1に強くタイプ
強力なタイプは、ハードの一種で、改宗を受け入れません
例えばC ++強く型付けされ、変換の異なる種類は、様々なキャストが必要です
JavaScriptは弱く型付けされ、変数は、番号のために、文字列のために、ターゲットが問題になることはありません
動的型付け対2.スタティック
、変数の型を決定するためのプログラムを実行する前に事前申告の対象またはコンパイラによって推論:静的型付けは、
ダイナミックタイプ、タイプのためのプログラムを実行すると結合し、チェックまで
動的言語の言語対3.静的
実行時のプログラムは、JavaScriptのオブジェクトとして、コードの構造を変更することができますメンバーや機能を追加するために、任意の時点で添加されます
前記参照データ型タイプVSの値
基本データ型にJavaScriptでの添加、その他は同じオブジェクトにので実際には変数代入ポイントは、参照型であります
概要:かどうかは、あなたは、変数宣言の型を指定する必要があります - >動的型付け対静的
声明変換するかどうかのタイプの後 - >強く、弱いタイプ対型付け
プログラムは、オブジェクトの内部構造を変更することができ、実行されている - >静的、動的言語対言語
しかし、すべてはダーツ言語にカウントされません。
どちらも、AOT、バイナリにコンパイルすることができ、及び実行を説明することができます
変数宣言は、いずれかのステートメントの種類を指定していないにも動的にすることができ、種類を指定することができます
反射をサポートしていない、それは静的な言語であります
タイプは、無料の変換ではない、強く型付けされた言語であります
第二に、動作環境
ランタイム環境は、現実または仮想マシンのオペレーティングシステムである、注意を払う必要があります
1.コンパイルと実行が対解釈します
コンパイルされた:ソース - >コンパイラ - >実行可能コード
解釈:、インタプリタのソースコードで読み取りコンパイルし、実行します。
ただ、オブジェクトコードの変換時に異なるソースコード付き。
C / C ++コンパイル型であり、ソースファイルのそれぞれは、実行可能ファイルへのコネクタのリンク、オペレーティングシステムのロードと実行した後、OBJにコンパイルされています
JS、Pythonは、解釈され、仮想マシンの実行によってロード、最初のバイトコードをコンパイル。
C / C ++ファイルは同じですが、ページはjsのコードブロック(<SCRIPT>スプリット)単位、nodejsとPythonの独立した訳で、実行が、コードの各ブロックは、変数を共有:コンパイル単位に注意して
2.非同期プログラミングモデル
地獄の問題への非同期コールバックモデルリード、非同期モデルがシングルスレッドであるnodejsはプログラムで非同期コードを書くためのawait、非同期、同期後に発生しました。より良いメンテナンス
3.ガベージコレクション
神が修正または補足することを大きな希望があり、理解しています。