JavaScript、または Mocha、LiveScript、JScript、または ECMAScript は、世界で最も人気のあるプログラミング言語の 1 つです。事実上、世界中のすべてのパーソナル コンピュータには、少なくとも 1 つの JavaScript インタプリタがインストールされており、アクティブに使用されています。 JavaScript の人気はひとえに、WWW スクリプト言語の分野における JavaScript の地位によるものです。
その人気にもかかわらず、JavaScript が優れた動的オブジェクト指向汎用プログラミング言語であることを知っている人はほとんどいません。実はこれが秘密になる可能性があります!なぜこの言語はこれほど誤解されているのでしょうか?
名前
Java- この接頭辞は人々に簡単に Java を思い出させ、それが Java のサブセットまたは Java の簡略化されたバージョンであると考える可能性があります。もともとこの名前は、意図的に概念を混乱させ、「誤解」を生み出すという下心で付けられたようです。 JavaScript は Java として解釈されません。 Java は解釈された Java です。 JavaScript は別の言語です。
Java の構文が C に非常に似ているのと同じように、JavaScript の構文も Java に似ています。しかし、Java が C のサブセットではないのと同じように、これは Java のサブセットではありません。 Java (Oak) が当初取り組むことを意図していた領域では、Java よりも優れています。
JavaScriptはSun Microsystemsの製品ではなく、SunはJavaの本拠地です。 JavaScript は Netscape で開発されました。元々は LiveScript と呼ばれていましたが、それは今でも良い名前です。
-Script 接尾辞は、人々にそれが本物のプログラミング言語ではないと思わせます、そしてそれと「プログラミング言語」の間にはまだかなりのギャップがあります。ただし、これはアプリケーション ドメインのみの問題です。 C と比較すると、JavaScript は豊かな表現力と柔軟な形式と引き換えにパフォーマンスを犠牲にします。
C スキンの Lisp
JavaScript は、中括弧やステートメントの形式を含め、C に似た構文により、通常のプロセス指向プログラミング言語のように見えます。 JavaScript は C や Java よりも Lisp や Scheme などの関数型言語との共通点が多いため、これは誤解です。リストの代わりに配列を使用し、プロパティ リストの代わりにオブジェクトを使用します。関数が最初にあり、クロージャ (クロージャを翻訳する方法??) があり、ラムダ式も使用できます。
型変換
JavaScriptはもともとNetscape Navigatorで実行されるように設計されており、Navigatorでの成功により、事実上すべてのWebブラウザに標準搭載されるようになりました。これにより「型変換」が行われます。 JavaScript はプログラミング言語のジョージ リーブス (スーパーマン) であり、Web 以外の多数のプログラムに適した選択肢です。
移動目標
JavaScript の最初のいくつかのバージョンは非常に弱く、例外処理も内部関数も継承もありませんでした。現在では、完全なオブジェクト指向プログラミング言語となっています。しかし、この言語のアイデアの多くは、その未熟な形式に基づいています。
この言語の管理者であるECMA委員会は、言語を拡張し、バージョンが多すぎるという最大の問題を意図的に悪化させています。これは混乱の原因です。
設計エラー
完璧なプログラミング言語は存在しません。 JavaScript には、型に応じて「追加」と「接続」の両方を意味するオーバーロードされた + 記号や、避けるべきエラーが発生しやすい with ステートメントなど、設計上のエラーもあります。その予約語ポリシーは厳しすぎます。セミコロンの挿入は、たとえばリテラル正規表現の記号として使用される場合など、大きな間違いです。これらの間違いはプログラミングのエラーに直接つながり、言語の全体的な設計に疑問を投げかけました。幸いなことに、これらの問題の多くは、優れた lint プログラムを使用することで軽減できます。
この言語の全体的な設計は非常に明白です。奇妙なことに、ECMAScript 委員会は既存の問題を解決することにあまり関心を示しておらず、おそらく新しい問題を作成することにもっと興味があるということです。
貧弱な実装
JavaScriptの初期の実装には多くのバグがあり、それが言語自体に非常に悪い影響を与えました。さらに悪いことに、これらのバグのある実装がバグのある Web ブラウザに埋め込まれていることです。
悪い本
ほとんどすべての JavaScript の本はかなりひどいです。これらにはエラーが含まれており、悪い例が含まれており、悪い習慣を奨励しています。 JavaScript 言語のいくつかの重要な機能は、明確に説明されていないか、まったく言及されていません。私は JavaScript の本をたくさん読みましたが、お勧めできるのは 1 冊だけです。David Flanagan 著の『JavaScript: The Definitive Guide (4th Edition)』です。 (著者への注意: 良い本を書いたら、コピーを送ってください。校正します。)
「準標準」の規格
ECMAが発行する公式言語仕様の品質は非常に悪い。読みにくいだけでなく、理解するのも非常に難しいです。これは、著者がこの標準文書を通じて言語をより深く理解できなかった「悪い本」に多大な貢献をします。 ECMA と TC39 はこれについて非常に当惑するはずです。
アマチュア
JavaScriptを使う人のほとんどはプログラマーではなく、良いプログラムを書くための訓練も受けていません。 JavaScript は非常に表現力が豊かで、とにかくそれを使って便利なことができます。このため、JavaScript はプロのプログラマーよりもアマチュア向けであるという評判が生まれています。これは明らかに間違いです。
オブジェクト指向
JavaScriptはオブジェクト指向ですか?これにはオブジェクトがあり、そのオブジェクトにはデータを含めることができ、そのデータを操作するためのメソッドも含めることができます。クラスはありませんが、クラス変数やメソッドの宣言など、クラスの処理を行うコンストラクターがあります。クラス指向の継承はありませんが、プロトタイプ指向の継承はあります。
オブジェクトシステムを構築する主な方法は、継承 (is-a) と集約 (has-a) の 2 つです。 JavaScript には両方の機能がありますが、その動的な性質により、集約よりも優れた実装が可能になります。
JavaScript が実際にはオブジェクト指向ではないという議論の一部は、JavaScript が情報の隠蔽を提供しないという事実に基づいています。つまり、JavaScript オブジェクトにはプライベート変数やメソッドはなく、そのメンバーはすべてパブリックです。
しかし実際には、JavaScript オブジェクトはプライベート変数とプライベート メソッドを持つことができます (これを行う方法については、ここをクリックしてください)。もちろん、このことを知っている人が非常に少ない理由は、JavaScript が世界で最も誤解されている言語だからです。
JavaScript が実際にはオブジェクト指向ではないというもう 1 つの議論は、JavaScript が継承を提供しないことです。しかし実際には、JavaScript は従来の継承をサポートしているだけでなく、他のコードの再利用パターンもサポートしています。
翻訳: Yuan Xiaohui 元のリンク: http://www.crockford.com/javascript/javascript.html

JavaScriptフレームワークのパワーは、開発を簡素化し、ユーザーエクスペリエンスとアプリケーションのパフォーマンスを向上させることにあります。フレームワークを選択するときは、次のことを検討してください。1。プロジェクトのサイズと複雑さ、2。チームエクスペリエンス、3。エコシステムとコミュニティサポート。

はじめに私はあなたがそれを奇妙に思うかもしれないことを知っています、JavaScript、C、およびブラウザは正確に何をしなければなりませんか?彼らは無関係であるように見えますが、実際、彼らは現代のウェブ開発において非常に重要な役割を果たしています。今日は、これら3つの間の密接なつながりについて説明します。この記事を通して、JavaScriptがブラウザでどのように実行されるか、ブラウザエンジンでのCの役割、およびそれらが協力してWebページのレンダリングと相互作用を駆動する方法を学びます。私たちは皆、JavaScriptとブラウザの関係を知っています。 JavaScriptは、フロントエンド開発のコア言語です。ブラウザで直接実行され、Webページが鮮明で興味深いものになります。なぜJavascrを疑問に思ったことがありますか

node.jsは、主にストリームのおかげで、効率的なI/Oで優れています。 ストリームはデータを段階的に処理し、メモリの過負荷を回避します。大きなファイル、ネットワークタスク、リアルタイムアプリケーションの場合。ストリームとTypeScriptのタイプの安全性を組み合わせることで、パワーが作成されます

PythonとJavaScriptのパフォーマンスと効率の違いは、主に以下に反映されています。1)解釈された言語として、Pythonはゆっくりと実行されますが、開発効率が高く、迅速なプロトタイプ開発に適しています。 2)JavaScriptはブラウザ内の単一のスレッドに限定されていますが、マルチスレッドおよび非同期I/Oを使用してnode.jsのパフォーマンスを改善でき、両方とも実際のプロジェクトで利点があります。

JavaScriptは1995年に発信され、Brandon Ikeによって作成され、言語をCに実現しました。 2。JavaScriptのメモリ管理とパフォーマンスの最適化は、C言語に依存しています。 3. C言語のクロスプラットフォーム機能は、さまざまなオペレーティングシステムでJavaScriptを効率的に実行するのに役立ちます。

JavaScriptはブラウザとnode.js環境で実行され、JavaScriptエンジンに依存してコードを解析および実行します。 1)解析段階で抽象的構文ツリー(AST)を生成します。 2)ASTをコンパイル段階のバイトコードまたはマシンコードに変換します。 3)実行段階でコンパイルされたコードを実行します。

PythonとJavaScriptの将来の傾向には、1。Pythonが科学コンピューティングの分野での位置を統合し、AI、2。JavaScriptはWebテクノロジーの開発を促進します。どちらもそれぞれのフィールドでアプリケーションシナリオを拡大し続け、パフォーマンスをより多くのブレークスルーを行います。

開発環境におけるPythonとJavaScriptの両方の選択が重要です。 1)Pythonの開発環境には、Pycharm、Jupyternotebook、Anacondaが含まれます。これらは、データサイエンスと迅速なプロトタイピングに適しています。 2)JavaScriptの開発環境には、フロントエンドおよびバックエンド開発に適したnode.js、vscode、およびwebpackが含まれます。プロジェクトのニーズに応じて適切なツールを選択すると、開発効率とプロジェクトの成功率が向上する可能性があります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 中国語版
中国語版、とても使いやすい

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ホットトピック









