ホームページ  >  記事  >  バックエンド開発  >  システム内部機能

システム内部機能

WBOY
WBOYオリジナル
2016-06-13 12:15:56893ブラウズ

PHP基礎学習メモ(3)

変数:

変数の意味: データを表すためのコード、つまり自分で定義した名前です。

変数の定義: var v1; var v2 = 2; var v6, v7=7, v8, v9="abc";

代入: v1 = 1; v1 = 1 2 3; v1 = v1 v1;

値: m1 = v1; V1 の値を加算し、M1 に値を代入します。

M2 = V1 5; // V1 の値を 5 に加算し、M2 に値を代入します。

Alert (V1 (V1 ) ; // v1 の値を取得し、「ポップアップ」にアラートに渡します。

document.write( v1 ); // v1 の値を取得し、それを document.write に渡して「出力」します。

Alert (" v1 = "v1); // V1 の値が取得され、文字列「v1 =」が操作に接続され、結果がアラートになります。

document.write( “v1=" v1);

データ型:

基本型:

ブール型: boolean; この型には 2 つの値のみが使用可能です: true、false

文字列型: 同じ意味で単一引用符または二重引用符で表すことができます。 >

配列: 配列、

オブジェクト: オブジェクト

特殊型:

null: 空の型 - 1 つ指定できます 変数には明示的に値「null」が割り当てられます"、これは null 値および空の型です。これは単に「意味」を意味します。つまり、変数には有効な値がありません。

未定義: 未定義: この型は通常、「値がまったく与えられていない」状態に相当します。

算術演算子: + -- 。

2 および -- は単項演算子と呼ばれます。つまり、1 つの変数

3 のみを操作しますが、および – は式 (代入ステートメントなど) で使用できます。同時と同様に、自己インクリメント (または自己デクリメント) と式自体の計算の 2 つの処理が行われます。このとき、変数の前後で意味が異なります。

A) var I = 1; VAR S1 = i; // 結果は次のようになります: S1 は 1、i は 2

b) var I = 1; / 結果は次のようになります: s2 は 2、i は 2

比較演算子: データのサイズ比較の場合、通常は数値です。

== は「あいまい等価」と呼ばれます。つまり、データの内容または変換された内容が等しい場合、等しいと見なされます。

=== は、データ型とデータの内容が等しい場合にのみ等しいと見なされます。

——コンピューターの観点から見ると、データにはデータ型とデータ値 (データの内容) の 2 つの側面があります。

論理演算子: bool 値の演算にのみ使用されます。

論理 AND ( && ): 両方のデータが true の場合にのみ結果が true

どちらかが true で、結果も true

論理否定 (!): Getブール値の「反対の値」

文字列演算子:

接続演算子は 1 つだけ ( ): 意味は「2 つの文字列を接続する」

加算の分析算術演算子 ( ):

" プラス記号 ( ) の 2 つのデータのうちの 1 つが文字列である限り、文字列の「接続」の意味に従って演算が実行されます。 other は文字列ではないため、自動的に文字列に変換されて接続操作が実行されます。

ビット演算子:

ビット演算子は、数値のバイナリ形式でのみ機能します。

var v1 = 5; //これは基数 10 です。実際のバイナリ システムは 101 です。コンピュータ内部では、実際には次のようになります: 00000101

var v2 = 6; /これは 10 進法です。実際のバイナリは 110 です。コンピュータ内ではこれと同様です: 00000110

ビット単位の AND:

シンボル: &

意味: 対応2 つの 2 進数のビット上の数値は「AND」され、結果はこれらのビット演算の結果から構成される 2 進数で表される値になります。

説明: 2 進数の AND 演算の規則は次のとおりです:

1 & 1 è 1

1 & 0 è 0

0 & 1 è 0

0 & 0 è 0

例:

var v1 = 5、v2 = 6、操作図は次のとおりです:

v1=5

v1=5

0

0

0

0

0

1

0

1

v2=6

0

0

0

0

0

1

1

0

v1 & v2

0

0

0

0

0

1

0

0

0
0 0 0 0 1 0 1
v2=6 0 0 0 0 0 1 1 0
v1 および v2 0 0 0 0 0 1 0 0

var v3 = v1 & v2 = 00000100(2) = 4(10)

ビット単位 OR:

シンボル: |

意味: 2 つの 2 進数の対応するビットの「OR 演算」を実行し、結果はこれらのビット演算の結果から構成される 2 進数で表される値になります。

説明: 2 進数の「OR 演算」の規則は次のとおりです:

1 | 1 è 1

1 1 0 | 0 | 0 è 0

ビット単位 NOT:

記号: ~ //これは「単項演算子」です

意味: 「not 演算」を実行します2 進数の対応するビットの数値に「」を適用し、その結果がこれらの 2 進数で表される値になります。

説明: 2 進数の「not 演算」のルールは次のとおりです:

ビット単位の左シフト演算:

記号: <<

意味: 2 進数の各ビットの数値を指定された桁数だけ左に移動し、左側に「リスク」を置きます。「出たものは無視して (カウントしないで)、右側の空きビットを「0」にして、その結果を2進数で表した値となります。

例:

var v1 = 5; var v2 = 5 <<2; 操作図は次のとおりです:

v1=5

0

0

0

v1=5

0

0

0

0

0

1

0

1

v2= 5 << 2

0

0

0

1

0

1

0

0

0

0

1

0

1

v2= 5 << 2

0

0var v2 = 5 << 2 = 00010100(2) = 1 * 24 1*22 = 16 4 = 20 (10)<🎜><🎜> <🎜><🎜> ビット単位の左シフト演算: <🎜><🎜> 記号: >> 意味: 2 進数の各ビットをシフトします。桁は次のとおりです。指定された桁数だけ右に移動され、右側の「飛び出した」桁は無視されます (カウントされません)。左側の空の桁は左側の元の桁で埋められ、結果が返されます。は 2 進数が値を表すものです。 例: var v1 = 5; var v2 = 5 >> 2; 操作図は次のとおりです:

v1=5

0

0

0

0

0

1

0

1

v2= 5 >> 2

0

0

0

0

0

0

0

1

0 1 0 1 0 0
v1=5 0 0 0 0 0 1 0 1
v2= 5 >> 2 0 0 0 0 0 0 0 1

var v2 = 5 >> 2 = 00000001(2) = 1(10)

演算子のその他の内容: 基本的な代入演算子: =、つまり等号の右側のデータを等号の左側の変数に代入します。

間違った構文:

var v1 = 1, v2 = 2, v3 = 5, v4 = -2;

v1 v2 = v3 v4; //間違っています。間違い、大きな間違い

複合代入演算子: = -= *= /= %=

演算子の優先順位 - 多すぎて複雑すぎて覚えられませんが、いくつかのルールを覚えておいてください:

1. 注意: 演算子には優先順位 (順序) の問題があります。

2、括弧が最も優先され、等号(代入)は最後になります。

3、最初に掛け算と割り算をしてから、足し算と引き算

4、明確に考えることができない場合、または問題を解決するために括弧を使用できない場合は、括弧を使用してください

5、括弧は小さな括弧にすぎず、1 レベルのレイヤのネストにすることができます。

例:

var year = 2013;

//閏年を判定: 4 で割り切れるが 100 で割り切れない年は閏年です。は 400 で割り切れます。うるう年でもあります。

if ( ( (年 % 4 == 0) && (年 % 100 != 0) ) || (年 % 400 == 0) )

{ document.write( year "うるう年です") ;}

データ値の転送方法:

var v1 = 10;

var v2 = v1; //v1 の中間値をコピーします。 、それを変数 v2 に入れます。このとき、「v1 の値を v2 に渡す」とも言えます。

var v1 = v1 v1; //v1 の値は変更されていますが、変更されています。 v2 には影響しません - v2 自体も独立変数であるためです。

document.write("
v1=" v1) //20

document.write("
v2=" v2); 10、いいえ、40、

上記の「v2 = v1」は「値によるコピー」と呼ばれます。v1 の値を取得してコピーを作成し、それを v2

var に割り当てます。 v3 = {name:"小花", age:18, edu:"University"}; //これはいわゆる「オブジェクト」タイプであり、3 つのデータが含まれています。

//データの操作は次のようになります:

document.write("
v3 オブジェクトの年齢は次のとおりです: " v3.age);

v3.age = 19; //v3 オブジェクトの年齢データの値には、前の v1 = 20 と同様に新しい値が繰り返し割り当てられます。

var v4 = v3; /このとき、v3 変数の「メモリアドレス」が v4 変数に渡され、v3 オブジェクト自体のデータは実際にはこのアドレスからのみ取得されます。 ——これは、値による参照渡しと呼ばれます。このとき、2 つの変数は、実際には、本名、芸名、芸名、ニックネームなど、複数の人の名前と同様に、同じデータ内容を持ちます。

document.write ("
v4 オブジェクトの年齢は次のとおりです: " v4.age);

v3.age = 20; //

document. write("
この時点で、v4 オブジェクトの年齢は次のとおりです: " v4.age);

概要:

js では、基本的なデータ型は "値によるコピー" - 値による受け渡し 新しいデータはその時点で直接表示されます (もちろん、別の変数によっても表されます)

複合データ型 (配列とオブジェクト) は「参照による受け渡し」を使用します -値を渡すときは、アドレスが指すようにするだけです。データのコピーはまだ 1 つだけあり、2 つの変数は同じデータを指します。

if 分岐構造:

制御構造: 特定の構文を使用してプログラムの実行フローを制御します。「プロセス制御構造」とも呼ばれます。

分岐とは「複数の道を一つ進む」ことです。

最も単純な形式

:

//この条件が満たされる (つまり、条件判定の結果が true である) 場合、その中のステートメント ブロックは次のようになります。実行しないと何も起こりません。

if(条件判定文) RM

}

分岐フォームを 1 つ選択してください : 意味は、2 つの道があり、1 つを選択する必要があるということです。

if(条件判定文)

else

{

// 実行されるステートメント ブロック 2 - 前の条件が true でない場合に実行

}

複数選択 1 分岐構造

: 条件の満足度に従って複数のパスの 1 つを選択しますが、そのいずれも選択することはできません:

if(条件判定1) //この条件が満たされた場合、ステートメントブロック1を実行し、ifが終了します

{

//ステートメントブロック1

}

else if (条件判定 2) //If 条件 1 満たされない場合は条件 2 を判定: 満たされている場合は文ブロック 2 を実行して終了 if

{

//文ブロック 2

}

else if (条件判定 3) //条件 2 が満たされない場合は条件 3 を判定、満たされている場合は文ブロック 3 を実行して終了if

{

//ステートメントブロック 3

}

…………………… 。 。 。 。 。いずれの条件も満たされない場合は、最後に何も実行されず、if は終了します。

総合型

:

if(条件判定1) //この条件が成立した場合、文ブロック1を実行し、その後if は終了します

{

//文ブロック 1

}

else if (条件判定 2) //条件 1 が満たされない場合条件 2 を判断します。満たされた場合、ステートメント ブロック 2 を実行して終了します。 if

{

//ステートメント ブロック 2

}

else if ( 条件判定 3 ) //条件 2 が満たされない場合は条件 3 を判定し、満たされている場合はステートメント ブロック 3 を実行して終了 if

{

>}

……………………。 。 。 。 。 。

else

{

//最後の else ステートメント ブロック。 //このステートメント ブロックは、前の条件がいずれも満たされない場合に実行されます。

}

注: 包括的な形式では、実行される分岐 (ステートメント ブロック) が 1 つ必要です。

switch 分岐構造:

switch 分岐構造の全体的な意味は if と似ており、「から 1 つのパスを取る」という意味もあります。使用形式:

switch (変数または式) //変数であっても式であっても、最終的には「値」を表します。

{

case 固定値 1: //v1 が値 1 と等しい場合、ステートメント ブロック 1 が実行されます

//ステートメント ブロック 1;

Break; //このスイッチを終了します 構造体

case 固定値 2: v1 が前の値 1 と等しくない場合は、ここで値 2 と等しいかどうかの判断を続けます。等しい場合は、ステートメント 2

//ステートメント ブロック 2;

Break; 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。

デフォルト: // 前の判断が成立しない (つまり、等しくない) 場合、この文が実行されます。

//デフォルトのステートメント ブロック

}

特記事項: if ステートメントでは、> などの非常に柔軟な条件判断を使用できます。 < <= == != === ただし、スイッチの場合の判定は等しい判定のみです。

while ループの構造:

ループの基本概念:

1、ループとは、特定のプログラム (ステートメントのブロック) を繰り返し実行することです

2、ループを止める方法が必要です - コンピューターには「疲れた、もうやらない」と判断する独自の判断能力がありません

while ループの基本構文形式:

while (条件判定) //If 条件判定が満たされた場合はステートメントブロックが実行され、そうでない場合は while が終了します。

{

//実行されるステートメントブロック

} //このステートメントブロックが実行されると、すぐに前の while 位置に戻り、判定を継続します。

上記の形式は構文の基本的な要件にすぎませんが、「実際の」実践では、通常、次のパターンに従う必要があります:

[ループ変数の初期化] ]

while ( 【条件判定としてのループ変数】 )

{

//ループ本体は繰り返し実行されるステートメントのブロックです

【ループ変数値の変更】

}

do while ループの構造:

do while ループは、最初に 1 回実行され、その後、次のいずれかを決定するタイプです。判定条件に基づいて実行を継続し、ループする循環構造。

do while の実際の形式は次のとおりです。

[ループ変数初期化]

do

{

//ループ本体は繰り返し実行するStatementブロック

[ループ変数の値の変更]

} while ( [条件判定としてのループ変数] ) ;

説明 : まず do の後の括弧内のステートメント ブロックを実行し、次に while ステートメントで条件判定を行い、判定が true (真) の場合は引き続き上記の do に戻って中括弧内のステートメント ブロックを実行します。そうしないと終わってしまいます。

for ループ構造 - 推奨:

for ループの基本形式:

for( [ループ変数の初期化 A]; [条件付きとしてのループ変数判定 B]; [ループ変数値の変更 C] )

{

// 繰り返し実行するステートメントブロックであるループ本体 D

}

for ループの実行ロジック (シーケンス):

A è Bètrue è D è C è Bètrue è D è C è Bè

┗èfalseèfor ループの終了 ┗èfalseèfor ループの終了

関数

関数は数値ではありません。

関数は単なる文法上の構成要素です。

関数は、数行のコードを全体として「パッケージ化」する文法構造です。

関数は、変数と同様に、定義して使用する必要がある構文であると言えます。定義して使用する必要があります。

関数は特定の関数を完了するためのもので、通常は「繰り返し実行する必要がある関数」です。関数の目的は、関数内にラップされたコード ブロック (ステートメント ブロック) を実行することです。

関数は独立した実行空間です。つまり、そのコンテンツコードと関数の外部のコードは「分離」されていると考えることができます。

関数 の定義形式:

関数 関数名 (仮引数 1、仮引数 2、...)

{

//実行されるステートメントブロック - 関数本体

}

var s1 = parseInt(3.5);

var s2 = parseInt(3.8); //3

var s3 = parseInt(3.1); //3

var s4 = parseInt(3.0); //3

var s5 = parseInt(3); //3

——parseInt は実際には関数、つまりシステム内部関数です。この関数には、与えられた数値を対応する整数 (その数値以下の最大の整数) に変換する「魔法の能力」があります。

リクエストを作成します:

2 つの直角辺 3 と 4 に対応する斜辺をリクエストしたいと思います。

ボール 5 と 6、ボール 7 と 8 などに対応する斜辺も必要です。 。 。 。 。 。 。 。

関数とは正確には何ですか?関数は、モジュール型プログラミングのアイデアを文法的に具体化したものにすぎません。いわゆるモジュール型プログラミングのアイデアは、さまざまな「繰り返しタスク」を独立した「モジュール」にし、使用するときにそれらを「直接呼び出す」ことで、繰り返しタスクの必要性をなくすというものです。書くこと。

関数呼び出し形式 :

関数名 (実パラメータ 1、実パラメータ 2、....);

関数呼び出し処理:

1, まず、関数呼び出し時の実パラメータ値を関数定義時の仮パラメータに一対一対応で渡します。

a) 仮パラメータは、関数の関数に応じて、特定の実際の意味を表す「変数名」のみである必要があります。

B) 実際のパラメータは「データ」のみである必要があります (直接データまたは変数データの場合があります)

C) 注: フォームパラメータ内の変数名は VAR では使用できません。他の場所で定義できますか。

2, 次に、プログラムの実行フローが関数に入り、関数内の「すべてのステートメント」が対応するプロセスに従って実行されます

3, 内部のプログラムの実行後関数が完了すると、プログラムの実行フローは関数呼び出しの場所に戻ります。

a) 関数によって実行されるタスクに戻り値が必要な場合、値を返すために return ステートメントを使用する必要があります。この時点で関数は自然に終了します。

b) 関数が値を返す必要がない場合は、return ステートメントを使用することもできます。これは、関数がここですぐに終了することを示すだけです (すべてのステートメントが完全に実行されていない可能性があります)

関数の戻り値2 状況:

戻り値があります: という意味です関数が特定の「計算」(実行) を経てデータが生成され、そのデータが呼び出し元 (呼び出し元) に返されます。このとき、それを実現するには「return a value;」を使用する必要があります。 ——たとえば、上司が一定額を受け取って従業員に電車の切符を買うように指示した場合、従業員は購入した電車の切符を上司に返却する必要があります。

特記事項: 戻り値がある場合、関数呼び出しは値として扱われます。

関数が値を返すかどうかは、構文ではなく実際のニーズによって決まります。構文は実際のニーズに応じてのみ変更されます。

戻り値なし: 関数は内部のコードを実行するだけで、実行後に終了し、「呼び出し元」にデータを返す必要がないことを示します。

関数 のパラメータ: 文法的な規定はまったくありませんが、パラメータがあるかどうか、またはパラメータの数はアプリケーション自体のニーズに依存します。関数の機能を完了するには、どのようなデータが必要ですか。このデータは、関数の仮パラメータとしても反映されます。それぞれの仮パラメータは、ある意味(データ)を表します。

変数のスコープ

いわゆるスコープとは、「有効で使用可能な範囲」を指します

スコープには 2 つのタイプがあります:

グローバル スコープ: すべてのプログラム スコープで使用できる (有効な) スコープ。

ローカル スコープ: 特定のスコープ (通常は関数内) 内でのみ使用できる (有効な) スコープ。

変数はスコープの観点から 2 つのタイプに分類されます:

グローバル変数: グローバルスコープ(有効)で使用できる変数を指します。関数の外で定義された変数はグローバル変数です。グローバル変数は関数の外部と内部の両方で使用できます。

ローカル変数: 特定のスコープ (通常は関数) 内でのみ有効な変数を指します。通常は変数が定義されている関数内です

システム内部関数

parseInt (xxx): パラメータ xxx を整数に変換する - 丸め演算。

parseInt( 3 ); è 3

parseInt( 3.1 ); è 3

parseInt( “3” ); è 3

parseInt( “3.8” ); è 3

parseInt( “3abc” ); 🎜>

parseInt( “3.8abc” );è 3

parseInt( “3.1abc” );è 3

parseInt( “abc3” ); > parseInt( “abc 3.8” );è NaN

parseInt( “abc3.1” );è NaN

parseInt( “abc” ); è NaN

NaN - これは特別な数値 (タイプ数値) であり、その意味は次のとおりです: 数値ではありません (つまり、数値ではありません) - この状況は通常、数値が必要であるが、提供されたデータが数値ではないことを意味します。数値は数値に変換できない場合があります。 ——数値 NaN は、それ自体を含め、どの数値とも等しくありません。

parseFloat(xxx): パラメーター xxx を 10 進数に変換します。

parseFloat ( 3 ); è 3

parseFloat ( 3.8 ); 3

parseFloat ( “3.8 ” ); 3.8

parseFloat (3.1) 🎜>

parseFloat ( "3abc" ); è 3

parseFloat ( "3.8abc" ); parseFloat ( “3.1abc” ); è 3.1

parseFloat ( “abc3” ); è NaN

parseFloat ( “abc 3.8” ); NaN

parseFloat ( " abc3 .1” ); NaN

parseFloat ( “abc” ); NaN

Number(xxx): パラメータ xxx を「数値」に変換します - 比較に注意してくださいparseFloatを使って。

数値 ( 3 ); 3

数値 ( 3.1 ); è 3.1

数値 ( "3" ); 3

数値 ( "3.8" );

数値 ( "3.1" ); 3.1

数値 ( "3abc" ); è NaN 🎜>

数値 ( "3.1abc" ); abc3” ); è NaN

数値 ( "abc 3.8" ); è NaN

数値 ( "abc3 .1" ); è NaN

数値 ( "abc" ); è NaN

isNaN (xxx): パラメータ xxx が「非数値」であるかどうかを判断します - 非数値の場合は結果が true、数値の場合は結果は false

isNaN (3); è false

isNaN (3.8); è false

isNaN (3.1); 3”); è è false

isNaN (“3abc”); è true

isNaN (“abc3” ); è true

isNaN (“abc 3.8”) ” ); è true

isNaN (“abc3.1” ); è true

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