検索

JS の詳細
1. JS データ型
1. 基本型
JS には次の 5 つの基本型があります。
1) 未定義。値は 1 つだけ、未定義です。変数が定義されているが、値が割り当てられていない場合、システムはデフォルトでその変数に未定義の値を割り当てます。
2) 無効です。また、値は null だけです。これは参照型であり、オブジェクトを保存することを目的とした変数がさまざまな理由でオブジェクトを指していない場合、通常はその変数に null の値を割り当てることができます。
3) 数字。数値型は、C# における整数と浮動小数点型のコレクションです。その具体的な型は、一般的に、割り当てられる値の型です。また、var num = 1.0; このとき、num は整数型であり、小数点以下が 0 以外の正確な値がある場合にのみ浮動小数点型になることに注意してください。 Number 型に関するその他の知識ポイントは次のとおりです。 NaN は、値が数値ではないことを意味します。 isNaN() は、受信した値が Number 型であると判断できます。 parseInt() は、受信したパラメーターを数値型に変換できます。文字列が数値型以外の場合、その文字列は自動的に削除され、parseInt("123blue") の文字列の青い部分は無視されます。メソッドは、受信パラメータを整数型に変換しようとしていると理解できます。変換できない場合、変換できない部分は無視されます。 parseFloat() メソッドは parseInt() メソッドに似ています。
4) ブール値。 Boolean 型は、C# の bool 型と同様に、true と false の 2 つの値を持ちますが、C# では、0 が False に対応し、1 が true に対応するなど、数値との対応関係はありません。
5)文字列。 string型には、0~16ビットのUNICODEコードからなる文字列が格納されます。
2. 複合型
1) オブジェクト型。これは JS の最上位の「親クラス」です (JS にはクラスの概念がなく、理解を容易にするためのものであるため) これはデータとメソッド (関数) のコレクションですが、そうではありません。従来のオブジェクト指向言語をサポートするクラスとインターフェイスを備えています。オブジェクト型は、本質的には、コレクションに似た、json 形式のキーと値のペアの順序なしリストです。これには、次の 7 つのメソッドが含まれています。
constructor() Constructor?
hasOwnProperty(propertyName) プロパティが現在のオブジェクト内にあるかどうかを確認します。
isPrototypeOf(object) オブジェクトがオブジェクトのプロトタイプであるかどうかを確認します。
propertyIsEnumerable(propertyName) プロパティが for- を使用してループできるかどうかを確認します。 in
toString( )
valueOf()
オブジェクトを作成するには、次のような方法があります。
新しいキーワードによって: var s = new Object(); =27;
JS による単純な定義: var s = {};
オブジェクトのリテラル表記: var s = {"name":"james", " age":"27"};追記:json形式のデータのキーは、値が文字列でない場合はダブルクォーテーションで囲む必要はありません。不要なトラブルを避けるために、キーと値の両方を二重引用符で囲むことをお勧めします。
Object オブジェクトのプロパティにアクセスするメソッド:
s.name 直接クリックします。
s["name"]; 角括弧を使用する利点は (インデクサーと同様)、変数を通じてプロパティに動的にアクセスできることです。 ) 配列型。これはデータ
の順序付きリストです。これは他の配列とは異なります。
配列要素は任意の型にすることができ、同じ配列の要素型も異なる可能性があります。これは List と同等です。 C# では
長さは読み書きする
配列の長さ属性を任意に変更できます (これを使用して配列要素を削除できます)
配列のスタック メソッドは後入れ先出しです
push() それに追加します
pop() スタックヘッドから取り出します、取り出した後に配列の要素数が変わります
配列のキューメソッドは先入れ先出しです
shift() キューの末尾から取り出します
unshift() キューの末尾から追加します
Sort
sort() 配列内のデータを特定の順序で並べます。匿名メソッドに渡すことができます (インターフェイスに似ています)
reverse() 配置を逆にします
配列を接続します
concat() 例: var color=["a","b"];var newcolor=colors.concat(" yellow",["c","d"]); 結果として、色には 5 つの要素があります。配列が concate メソッドに渡される場合、配列は分割され、要素がターゲット配列に追加されます。 json 形式のデータを渡すと、json データは要素として扱われ、配列に追加されます。
3) 関数の種類。関数はオブジェクトであり、関数名はポインターです。
宣言メソッド (3 つの方法):
function sum(x,y){return x y;}
var sum=function(x,y) ){return x y;} //関数式
var sum=new Function("x","y","re​​turn x y;");//オブジェクトの作成、推奨されません (2 回解析されます)
関数の種類過負荷はありません。 Function 型は、他の型と同様に、複数回割り当てられると、前の割り当てを上書き (置き換え) します。同じ名前の複数の関数は、実際には同じ関数オブジェクトに値を割り当てます。後者の割り当ては前の割り当てを上書きするため、最後の関数定義が実行されます。
Function のプロパティについて説明する前に、JS コードの実行環境とスコープ、およびその他の知識ポイントを理解する必要があります。
a) 実行環境: 現在の関数 (メソッド)が見つかります。たとえば、window の下で実行される関数の実行環境は window です。実際のグローバル実行環境はグローバルですが、ほとんどのブラウザはコード アクセスを公開せず、ウィンドウを通じて間接的にアクセスするだけです。
b) if などのステートメントはブロック スコープを使用しません。JS のスコープは C# のスコープとは異なります。if や for などの中括弧で囲まれたコードはブロック スコープを形成できません。
c) var を使用して変数を宣言すると、その変数は最も近い使用可能な環境に追加されます。var が使用されない場合は、親環境に追加されます。これは、var を使用せずに定義された変数がグローバル変数である理由を説明します。 。
d) 宣言ステートメントは、どこに配置しても最初に実行されます。 JS コードは上から下に順番に実行されますが、宣言されたステートメントに遭遇すると、コンパイラは宣言されたステートメントを最初に実行し、他のステートメントの実行中に宣言されていない変数が見つかったためにエラーが報告されないようにします。
e) ガベージコレクション。オブジェクトを保持する変数を null に設定することは、変数 (スタック) と参照値 (ヒープ) の間の関係を切断することと同じであり、ガベージ コレクション ステーションは、
関数:
の内部属性を自動的にリサイクルします。引数
渡されたパラメータを保存する配列です。
callee は、この引数オブ​​ジェクトを所有する関数オブジェクトを保存するポインターです。これは、関数自体を呼び出す必要がある場合、独自の関数名を必要とせずに callee を使用できるため、関数の数が少なくなります。結合の度合い。
this
は、現在の関数の実行環境を指します。これは、関数が実行されるスコープです。
関数オブジェクトのプロパティとメソッド
長さ
名前付きパラメーターの数。関数で定義
関数名.length
prototype (プロトタイプ)
すべてのインスタンス メソッドの実際の場所を保存
apply([変更されるスコープ])
スコープの変更関数オブジェクトはこの値を変更します
サンプルコード
コードをコピー コードは次のとおりです:

関数 sum( x, y) {
alert(this);
return x y;
//window.sum(1,2); ) {
callS.callSum1(1, 2);
}
callSum1 = function (x, y) {
alert(this); var s = sum.apply( this, argument);
//sum(1, 2);
return s;


call() メソッドも同様です上記の apply() メソッド
へ この 2 つのメソッドは継承されず、関数のスコープを拡張できます。これの最大の利点は、オブジェクトとメソッドが結合関係を持つ必要がないことです。両方によって渡される最初のパラメータは変更されるスコープであり、apply によって渡される 2 番目のパラメータはパラメータ配列であり、呼び出しでは各名前付きパラメータに渡されます。
2. 値の型と参照型
非常に多くの基本型 (null を除くすべての値型) と複合型 (基本的にすべての参照型) について説明しましたが、言語設計者が値の型と参照型を設計する理由を理解する必要があります。 。両者の違いは何ですか?
1. 値型のコンテンツ長は固定であり、参照型のコンテンツ長の格納範囲は固定ではなく、可変長のデータを格納できます。
2. 値型は次のような値のみを格納できます。整数と文字列は待ちます。参照型はオブジェクトのヒープ アドレスを格納できるため、複数の変数が同じオブジェクトを指すことができます。
3. 最も重要な点は、参照型によりスタックのストレージ プレッシャーが軽減されることです (値型はスタック)。
4. JS 構文では、基本データ型は属性を動的に追加できませんが、参照データ型は属性を動的に追加できます。
3. 型を検出するためのキーワード
1.typeof
基本型の型を判定し、true または false を返す
2.instanceof
複合(参照)型の型を判定し、true を返すまたは false
基本型を決定するために使用すると、常に false が返されます。
4. eval() メソッド
eval() メソッドは非常に強力で、パーサーと同等です。パラメータは 1 つだけ受け入れられ、それは実行される JS コード文字列です。パーサーは eval() を見つけると、eval() 内のパラメータを解析し、eval が実行される場所に挿入します。その効果は、対応する場所に JS コードを直接記述することと同じです。
5. オブジェクトの作成
1) 単純なファクトリ パターン
2) コンストラクター パターン。各インスタンスにはすべてのメソッドが含まれているため、メモリが無駄に消費されます。
3) プロトタイプモード。各インスタンスにメソッドを保存しなくても、すべてのインスタンスがメソッドを呼び出せるように、プロトタイプにメソッドを保存します。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
CおよびJavaScript:接続が説明しましたCおよびJavaScript:接続が説明しましたApr 23, 2025 am 12:07 AM

CおよびJavaScriptは、WebAssemblyを介して相互運用性を実現します。 1)CコードはWebAssemblyモジュールにコンパイルされ、JavaScript環境に導入され、コンピューティングパワーが強化されます。 2)ゲーム開発では、Cは物理エンジンとグラフィックスレンダリングを処理し、JavaScriptはゲームロジックとユーザーインターフェイスを担当します。

Webサイトからアプリまで:JavaScriptの多様なアプリケーションWebサイトからアプリまで:JavaScriptの多様なアプリケーションApr 22, 2025 am 12:02 AM

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

Python vs. JavaScript:ユースケースとアプリケーションと比較されますPython vs. JavaScript:ユースケースとアプリケーションと比較されますApr 21, 2025 am 12:01 AM

Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

JavaScript通訳者とコンパイラにおけるC/Cの役割JavaScript通訳者とコンパイラにおけるC/Cの役割Apr 20, 2025 am 12:01 AM

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

JavaScript in Action:実際の例とプロジェクトJavaScript in Action:実際の例とプロジェクトApr 19, 2025 am 12:13 AM

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

JavaScriptとWeb:コア機能とユースケースJavaScriptとWeb:コア機能とユースケースApr 18, 2025 am 12:19 AM

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

JavaScriptエンジンの理解:実装の詳細JavaScriptエンジンの理解:実装の詳細Apr 17, 2025 am 12:05 AM

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

Python vs. JavaScript:学習曲線と使いやすさPython vs. JavaScript:学習曲線と使いやすさApr 16, 2025 am 12:12 AM

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

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

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

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、