JS Advanced Notes_JavaScript スキル

May 16, 2016 pm 06:04 PM

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 までご連絡ください。

ホット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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

JavaScriptの文字列文字を交換します JavaScriptの文字列文字を交換します Mar 11, 2025 am 12:07 AM

JavaScript文字列置換法とFAQの詳細な説明 この記事では、javaScriptの文字列文字を置き換える2つの方法について説明します:内部JavaScriptコードとWebページの内部HTML。 JavaScriptコード内の文字列を交換します 最も直接的な方法は、置換()メソッドを使用することです。 str = str.replace( "find"、 "置換"); この方法は、最初の一致のみを置き換えます。すべての一致を置き換えるには、正規表現を使用して、グローバルフラグGを追加します。 str = str.replace(/fi

カスタムGoogle検索APIセットアップチュートリアル カスタムGoogle検索APIセットアップチュートリアル Mar 04, 2025 am 01:06 AM

このチュートリアルでは、カスタムGoogle検索APIをブログまたはWebサイトに統合する方法を示し、標準のWordPressテーマ検索関数よりも洗練された検索エクスペリエンスを提供します。 驚くほど簡単です!検索をyに制限することができます

独自のAjax Webアプリケーションを構築します 独自のAjax Webアプリケーションを構築します Mar 09, 2025 am 12:11 AM

それで、あなたはここで、Ajaxと呼ばれるこのことについてすべてを学ぶ準備ができています。しかし、それは正確には何ですか? Ajaxという用語は、動的でインタラクティブなWebコンテンツを作成するために使用されるテクノロジーのゆるいグループ化を指します。 Ajaxという用語は、もともとJesse Jによって造られました

例JSONファイルの例 例JSONファイルの例 Mar 03, 2025 am 12:35 AM

この記事シリーズは、2017年半ばに最新の情報と新鮮な例で書き直されました。 このJSONの例では、JSON形式を使用してファイルに単純な値を保存する方法について説明します。 キー価値ペア表記を使用して、あらゆる種類を保存できます

10 jQuery構文蛍光物 10 jQuery構文蛍光物 Mar 02, 2025 am 12:32 AM

コードプレゼンテーションを強化する:開発者向けの10個の構文蛍光物 ウェブサイトやブログでコードスニペットを共有することは、開発者にとって一般的な慣行です。 適切な構文ハイライターを選択すると、読みやすさと視覚的な魅力を大幅に改善できます。 t

8見事なjQueryページレイアウトプラグイン 8見事なjQueryページレイアウトプラグイン Mar 06, 2025 am 12:48 AM

楽なWebページレイアウトのためにjQueryを活用する:8本質的なプラグイン jQueryは、Webページのレイアウトを大幅に簡素化します。 この記事では、プロセスを合理化する8つの強力なjQueryプラグイン、特に手動のウェブサイトの作成に役立ちます

10 JavaScript&JQuery MVCチュートリアル 10 JavaScript&JQuery MVCチュートリアル Mar 02, 2025 am 01:16 AM

この記事では、JavaScriptとJQuery Model-View-Controller(MVC)フレームワークに関する10を超えるチュートリアルの厳選された選択を紹介します。これは、新年にWeb開発スキルを向上させるのに最適です。 これらのチュートリアルは、Foundatioのさまざまなトピックをカバーしています

' this' JavaScriptで? ' this' JavaScriptで? Mar 04, 2025 am 01:15 AM

コアポイント これは通常、メソッドを「所有」するオブジェクトを指しますが、関数がどのように呼び出されるかに依存します。 現在のオブジェクトがない場合、これはグローバルオブジェクトを指します。 Webブラウザでは、ウィンドウで表されます。 関数を呼び出すと、これはグローバルオブジェクトを維持しますが、オブジェクトコンストラクターまたはそのメソッドを呼び出すとき、これはオブジェクトのインスタンスを指します。 call()、apply()、bind()などのメソッドを使用して、このコンテキストを変更できます。これらのメソッドは、与えられたこの値とパラメーターを使用して関数を呼び出します。 JavaScriptは優れたプログラミング言語です。数年前、この文はそうでした

See all articles