中級者向け Javascript のすべて
JavaScript とは:
JavaScript はオープンソースのプログラミング言語です。これは動的な Web ページの作成に役立ちます。ブラウザ言語としても使用できます。
クライアント側 (ブラウザ内) とサーバー側 (Node.js などの環境を使用) の両方で実行できます。
JavaScript は、複数のタスクを同時に処理するために不可欠な、イベント駆動型、ノンブロッキング、非同期プログラミングをサポートしています。
変数:
変数はデータを保存するコンテナです
変数の種類
- var
- させてください
- 定数
演算子:
JavaScript 演算子は、さまざまな種類の数学的および論理的計算を実行するために使用されます。
演算子の種類
- 算術演算 = ,-,/,%,*
- 比較
- 論理的
データ型
変数の型を定義します
プリミティブ データ型 = 値を値で保存します
- 文字列
- 番号
- ビッグイント
- ブール値
- 未定義 = 変数を宣言しますが、値は定義されていません。データ型が未定義です
- Null = これは割り当て値です。値を明示的に null に設定します。データ型はオブジェクトです
- シンボル
非プリミティブ データ型 = 参照(アドレス)によって値を格納します
- オブジェクト = 組み込みオブジェクト タイプは次のとおりです: オブジェクト、配列、日付、マップ、セット、intarray、floatarray、promise
- 例:
- null == 未定義は true ですが、null === 未定義は false です。
JavaScript のエクスポートとデフォルトのエクスポートの主な違い?
エクスポートのデフォルトは、モジュールから単一の値をエクスポートするために使用されるということです。
一方、名前付きエクスポートを使用したエクスポートは、複数の値をエクスポートするために使用されます
プリミティブ データ型と非プリミティブ データ型の主な違い?
- プリミティブ型は事前定義されているのに対し、非プリミティブ型はプログラマによって作成されるということです。
- 単一のデータ型値のみを保存したり、複数のデータ型値を保存したりできるプリミティブおよび非プリミティブ データ構造。 プリミティブ データ型はメモリに直接保存されますが、非プリミティブ データ型はメモリ内の値への参照として保存されます。
- プリミティブ データ型は値によって渡され、非プリミティブ データ型は参照によって渡されます。
- プリミティブ データ型は不変です。つまり、一度割り当てられた値は変更できません。非プリミティブ データ型は可変であり、変更できます。
- 数値、文字列、ブール値はプリミティブ データ型の例であり、オブジェクト、配列、関数は非プリミティブ データ型の例です。
関数:
JavaScript 関数は、特定のタスクを実行するように設計されたコードのブロックです。
JavaScript は静的に型付けされた言語ですか、それとも動的に型付けされた言語ですか?
JavaScript は動的に型付けされる言語です。動的型付け言語では、
静的に型付けされた言語
とは対照的に、変数の型は実行時にチェックされます。
ここで、変数の型はコンパイル時にチェックされます。
値渡しと参照渡しについて説明しますか?
JavaScript では、プリミティブ データ型は値によって渡され、非プリミティブ データ型は参照によって渡されます。
プリミティブ データ型 = 文字列、数値、ブール値、null、未定義
非プリミティブ データ型 = オブジェクト、配列
JavaScript の厳密モードと JavaScript 厳密モードの特徴とは何ですか?
厳密な運用環境でコードや関数を作成できます。
その結果、デバッグが非常に簡単になります。
JavaScript のファクトリー関数とは何ですか?
複雑なロジックがあり、同じロジックを持つ複数のオブジェクトを何度も作成する必要がある場合、
関数内にロジックを一度記述すると、その関数をオブジェクトを作成するためのファクトリーとして使用できます。
これは、製品を生産する現実世界の工場と同じです。
ファクトリ関数はオブジェクトを返す関数です。
高階関数:
関数は他の関数を引数として取るか、関数を返します。
map、filter、reduce 関数はすべて HOF の例です。
高階関数は、イベント処理、データ変換 (マップやフィルターなど)、関数ファクトリーやデコレーターの作成などのタスクに役立ちます。
クロージャー:
クロージャは、関数が別の関数
内で定義されるときに作成されます。
そして、内部関数は外部関数のスコープ内の変数とメソッドへのアクセスを保持します
クロージャは、関数内にデータをカプセル化する手段を提供し、スコープ外からデータを隠しながらそのデータへの制御されたアクセスを可能にします。
コールバック:
別の関数の引数として使用される関数は、コールバック関数と呼ばれます。
コールバックは、別の関数が実行された後に実行される関数です。
非同期操作を実行したい場合のコールバック関数の使用例。
map() と forEach()
マップ()=>配列の各要素を反復処理し、各要素に変換関数を適用します。
元の配列は変更しません。変換された要素を含む新しい配列が作成されます。
forEach()=>配列の各要素を反復処理し、各要素に対して提供されたコールバック関数を実行します。
新しい配列を作成したり、既存の配列を変更したりしません。コールバック関数のみを実行します。
map() vs filter() vs reduce()
map() 新しい配列を返します
filter() は、map() に似ていますが、条件が true の場合は新しい配列も返します。条件を適用したい場合に使用します。
reduce() は配列から単一の値を返します。
このキーワード:
this キーワードの値は、関数を呼び出すオブジェクトによって常に異なります。
カレー:
n 引数の関数を n 関数に変換します。
部分適用を有効にするユースケース (複数の引数を取る関数があるが、そのうちの一部のみを修正し、他の引数は後で使用できるようにしておきたい場合)、
コードの再利用。
例:
function add (a) { return function(b){ return a + b; } } add(3)(4)
通常の関数とアロー関数 ?
通常の機能:
これは関数を呼び出すオブジェクトを参照します
コンストラクターとして使用できます
関数宣言はホイストされます(ホスティングを許可)
アロー関数:
自分のこれを持っていません
コンストラクターとして使用することはできません
関数宣言はホイストされません (ホスティングは許可されません) // myfunc は関数ではありません
正常および三元状態 ?
3 項条件は、このコンテキストなしで参照を保存します。
JavaScript の exec () メソッドと test () メソッドの違いは何ですか?
test() と exec() は、JavaScript で使用される RegExp 式メソッドです。
外部 JavaScript を使用する利点は何ですか?
コードを再利用できます。
外部JavaScript(コードのモジュール化)でコードが読みやすくなる
プロトタイプ:
JavaScript プロトタイプ プロパティを使用すると、オブジェクト コンストラクターに新しいプロパティとメソッドを追加することもできます。
テスト用のユースケース
メモ化:
メモ化は、関数の戻り値がパラメーターに基づいてキャッシュされるキャッシュの形式です。
その関数のパラメーターが変更されていない場合、関数のキャッシュされたバージョンが返されます。
ドム:
DOM はドキュメント オブジェクト モデルの略です。 DOM は HTML 用のプログラミング インターフェイスです。
ブラウザが HTML ドキュメントをレンダリングしようとすると、DOM
が作成されます。
この DOM を使用すると、HTML ドキュメント内のさまざまな要素を操作または変更できます。
BOM:
ブラウザ オブジェクト モデルは BOM として知られています。これにより、ユーザーはブラウザを操作できるようになります。
ブラウザの初期オブジェクトはウィンドウです。
約束:
Promise は、JavaScript で非同期操作を処理するために使用されます。 Promise が使用される前は、非同期操作を処理するためにコールバックが使用されていました。
Promise オブジェクトには 4 つの状態があります -
保留中 - 約束の初期状態。
履行 - この状態は、約束が履行されたことを表します。
拒否 - この状態は、Promise が拒否されたことを表します。
Settled - この状態は、約束が拒否されたか履行されたことを表します。
非同期/待機:
これは Promise の上に構築されており、非同期コードを記述するためのより簡潔な方法を提供し、読み書きが容易になります。
async キーワードは同期関数を宣言するために使用され、await は Promise が解決されるのを待つために使用されます。
表現と構造
=>express は何らかの値を返します
例:
function add (a) { return function(b){ return a + b; } } add(3)(4)
5 と myfun() は式である値を返します
アクションを指示および命令しますが、値を返さないステートメント
例: if、else、while はステートメントです
while(i
残りのパラメータとスプレッド演算子:
残りのパラメータは、個別の要素を配列に結合しました
スプレッド演算子は、配列を単一の要素に分割するために使用されます
ジェネレータ関数 ?
途中で停止し、停止したところから続行することができます。
ジェネレーター オブジェクトは next() というメソッドで構成されます。このメソッドが呼び出されると、最も近い yield ステートメントまでコードが実行され、yield 値が返されます。
call()、apply()、bind():
これらはすべて、オブジェクトをこのキーワードに割り当てるために使用されます(このキーワードに値を割り当てます)
関数のこのキーワードを目的のオブジェクトで操作したい場合の使用例
bind() メソッド は、呼び出されたときに this キーワードが指定された値 (オブジェクトなど) に設定される新しい関数を作成します。新しいオブジェクトを作成します。
call() と apply() はまったく同じ目的を果たします。 call() メソッドは、呼び出される関数のコピーを作成しません。
これらの動作の唯一の違いは、call() がすべてのパラメータが個別に渡されることを期待していることです。
一方、 apply() はすべてのパラメータの配列を期待します。
IIFE:
定義するとすぐに実行される、すぐに呼び出される関数。
例:
const x=5; const y=myfun();
純粋関数:
同じ入力に対して同じ出力を生成します。これは、式のオペランドのデータ型が異なる場合に発生します。
外部状態または変数を変更しない関数
JavaScript は静的に型付けされた言語ですか、それとも動的に型付けされた言語ですか?
動的型付け言語では、静的型付け言語
とは対照的に、変数の型が実行時にチェックされます。
ここで、変数の型はコンパイル時にチェックされます。
例:
静的型
(function(){ // Do something; })();
ダイナミックタイプ
string name="salman"; // varaible has types
コアコイン:
あるデータ型から別のデータ型への値の自動変換。
文字列強制
数値を文字列に変換します
- 文字列を数値に変換します
NaN():
isNaN() 関数は、指定された値を Number 型に変換し、NaN と同等とします。
ASP スクリプトと JavaScript ?
ASP スクリプトはサーバー上で実行され、JavaScript はクライアントのブラウザ上で実行されます。
ASP スクリプトは、データベース クエリ、フォームの送信、ユーザー認証などの複雑なタスクを処理するために使用されるサーバー側の言語です。
一方、JavaScript は、アニメーション、ポップアップ ウィンドウ、フォーム検証など、Web ページ上でインタラクティブな要素を作成するために使用されるクライアント側の言語です。
未定義の値:
値は定義されていませんが、変数は存在します
オブジェクトにプロパティがありません
エスリント:
JavaScript コードの一般的な脆弱性のデバッグと修正に役立ちます
私のことをもっと知りたいなら、検索エンジンに sallbro と書いてください...
以上が中級者向け Javascript のすべての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

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