国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

データ型と変數(shù)

データ型

コンピュータはその名前が示すように、數(shù)學的な計算を行うことができる機械であるため、コンピュータプログラムは當然さまざまな數(shù)値を扱うことができます。ただし、コンピュータは數(shù)値だけでなく、テキスト、グラフィックス、オーディオ、ビデオ、Web ページなどのさまざまなデータを処理できます。データが異なれば、異なるデータ型の定義が必要になります。 JavaScript では次のデータ型が定義されています:

Number

JavaScript では整數(shù)と浮動小數(shù)點數(shù)が區(qū)別されず、次のデータ型が有効です:

123; // Integer 1230.456; / 浮動小數(shù)點數(shù) 0.4561.2345e3; // 科學的表記法は 1.2345x1000 を表します。これは 1234.5-99 に相當します。 // 結果が計算できない場合、NaN は無限大を表します。 / Infinity は無限大を表し、JavaScript の Number で表現(xiàn)できる最大値を超える場合は Infinity と表現(xiàn)します

コンピューターでは 2 進數(shù)を使用するため、整數(shù)を表すには 16 進數(shù)を使用した方が便利な場合があります。 0x および 0 ~ 9、a ~ f は、たとえば、0xff00、0xa5b4c3d2 などを意味し、10 進數(shù)で表現(xiàn)された値とまったく同じです。

Number は四則演算を直接実行できます。ルールは數(shù)學と一致しています:

1 + 2; // 3(1 + 2) * 5 / 2; // 7.52 / 0; // Infinity0 / 0; // NaN10 % 3; // 110.5 % 3; // 1.5

% は剰余演算であることに注意してください。

文字列

文字列は、「abc」、「xyz」など、一重引用符 ' または二重引用符 " で囲まれたテキストです。 '' または "" 自體は単なる表現(xiàn)方法であることに注意してください。は文字列の一部ではありません。したがって、文字列 'abc' には a、b、c の 3 つの文字しかありません。

ブール値の式は、ブール代數(shù)の式とまったく同じです。 value には true と false のみが含まれます。true と false を直接使用してブール値を表すことも、ブール演算を通じて計算することもできます。 // これは true 値です。 false; // これは false 値です 2 > 1; // これは true 値です 2 >= 3; すべてが true の場合のみ、これは AND 演算です。 && 演算の結果は true です:

tru??e && true; // この && ステートメントは truetrue && false; // この && ステートメントは falsefalse と評価されます && true && false; // この && ステートメントは false と評価されます

||演算は、そのうちの 1 つが true であり、演算結果が true である限り、OR 演算です。

false || このステートメントは falsetrue と評価されます。 || ステートメントは truefalse と評価されます || このステートメントは true と評価されます

! 演算は true を false に、false を true に変える?yún)g項演算子です。 // 結果は true! ) ; // 結果は true です


ブール値は、次のような條件判斷でよく使用されます:

var age = 15;if (age >= 18) {
    alert('adult');
} else {
    alert('teenager');
}

比較演算子

數(shù)値を比較する場合、比較演算子を通じてブール値を取得できます:

2 > 5; // false5 >= 2; // true7 == 7; // true

実際、JavaScript ではあらゆるデータ型の比較が可能です:

false == 0; // truefalse === 0; // false

等価演算子 == に特に注意してください。 JavaScript が設計されたとき、2 つの比較演算子がありました。 1 つ目は == 比較で、多くの場合、非常に奇妙な結果が得られます。 2 つ目は == です。 = 比較の場合、データ型の自動変換は行われません。データ型が一致しない場合は false が返されます。

JavaScript の設計上の欠陥のため、== 比較を使用せず、常に === 比較に固執(zhí)してください。

もう 1 つの例外は、特別な Number NaN がそれ自體を含む他のすべての値と等しくないことです:

NaN === NaN; // false

NaN を決定する唯一の方法は isNaN() 関數(shù)を使用することです:

isNaN(NaN); // true


最後に、浮動小數(shù)點數(shù)の等価比較に注意してください:

1 / 3 === (1 - 2 / 3) // false


; JavaScript の設計上の欠陥。コンピューターは無限に繰り返される小數(shù)を正確に表現(xiàn)できないため、浮動小數(shù)點數(shù)では演算中にエラーが発生します。 2 つの浮動小數(shù)點數(shù)が等しいかどうかを比較するには、その差の絶対値を計算して、それが特定のしきい値より小さいかどうかを確認するだけです:

Math.abs(1 / 3 - (1 - 2 / 3)) < ; 0.0000001; // true


null は「空」の値を表します。これは 0 とは異なり、空の文字列 '' は長さ 0 の文字列を表します。 、nullは「null」を表します。

他の言語でも、JavaScript と同様の null の表現(xiàn)があります。たとえば、Java では null が使用され、Swift では nil が使用され、Python では None が使用されます。ただし、JavaScript には、「未定義」を意味する null に似た undefine もあります。


JavaScript の設計者は、空の値を表すために null を使用し、未定義の値を表すために unknown を使用することを望んでいます。これが役に立たないことは事実が証明しており、この 2 つの違いはほとんど重要ではありません。ほとんどの場合、null を使用する必要があります。 unknown は、関數(shù)パラメータが渡されるかどうかを決定する場合にのみ役立ちます。

配列

配列とは、項目を順番に並べた集合であり、集合の各値を要素と呼びます。 JavaScript 配列には任意のデータ型を含めることができます。例:

[1, 2, 3.14, 'Hello', null, true];

上記の配列には 6 つの要素が含まれています。配列は [] で表され、要素は , で區(qū)切られます。

配列を作成する別の方法は、Array() 関數(shù)を使用することです:

new Array(1, 2, 3) // 配列 [1, 2, 3] を作成しました

ただし、コードの都合上、読みやすくするためにそのため、[] を直接使用することを強くお勧めします。

配列の要素にはインデックスによってアクセスできます。インデックスの開始値は 0 であることに注意してください:

var arr = [1, 2, 3.14, 'Hello', null, true];
arr[0]; // 返回索引為0的元素,即1arr[5]; // 返回索引為5的元素,即truearr[6]; // 索引超出了范圍,返回undefined

Objects


JavaScript オブジェクトは、キーと値の順序付けされていないコレクションです。例:

var person = {
    name: 'Bob',
    age: 20,
    tags: ['js', 'web', 'mobile'],
    city: 'Beijing',
    hasCar: true,
    zipcode: null};

JavaScript オブジェクトのキーはすべて文字列型であり、値は任意のデータ型にすることができます。上記の person オブジェクトは合計 6 つのキーと値のペアを定義しており、それぞれがオブジェクトの屬性とも呼ばれます。たとえば、person の name 屬性は「Bob」、zipcode 屬性は null です。

オブジェクトのプロパティを取得するには、オブジェクト変數(shù)を使用します。 プロパティ名: // 'Bob'person.zipcode; // null


変數(shù)の概念は基本的に次のとおりです。これは、中學校の代數(shù)學の方程式の変數(shù)と同じです。ただし、コンピューター プログラムでは、変數(shù)は數(shù)値だけでなく、任意のデータ型を使用できる點が異なります。

JavaScriptでは変數(shù)は変數(shù)名で表され、英語の大文字と小文字、數(shù)字、$、_の組み合わせであり、數(shù)字で始めることはできません。変數(shù)名に、if、while などの JavaScript キーワードを使用することはできません。変數(shù)を宣言するには、var ステートメントを使用します。例:

var a; // 変數(shù) a が宣言され、a の値は未定義です var $b = 1; // 変數(shù) $b が宣言され、値がは $b に割り當てられます。 $ b の値は 1var s_007 = '007'; // s_007 は文字列です var = true; // 答えはブール値です truevar t = null; t is null

変數(shù)名には中國語も使えますが、困らないようにしてください。

JavaScript では、変數(shù)に値を割り當てるには等號 = を使用します。変數(shù)には任意のデータ型を割り當てることができます。同じ変數(shù)を繰り返し割り當てることも、異なる型の変數(shù)にすることもできます。ただし、var を使用して宣言できるのは 1 回のみであることに注意してください。このように、変數(shù)自體の型が固定されていない言語を動的言語といい、これに対応する言語を靜的言語といいます。靜的言語では、変數(shù)を定義するときに変數(shù)の型を指定する必要があります。値を割り當てるときに型が一致しない場合は、エラーが報告されます。たとえば、Java は靜的言語であり、代入ステートメントは次のとおりです:

int a = 123; // a は整數(shù)型変數(shù)であり、型は int a = "ABC" で宣言されます。整數(shù)変數(shù)に文字列を割り當てることはできません

このため、靜的言語と比較して動的言語はより柔軟です。

代入ステートメントの等號を數(shù)學の等號と同一視しないでください。たとえば、次のコード:

var a = 123; // a的值是整數(shù)123a = 'ABC'; // a變?yōu)樽址?/pre>

x = x + 2 を數(shù)學的に理解しても、それはいずれにせよ真ではありません。プログラムでは、代入ステートメントはまず右辺の式 x + 2 を計算し、結果 12 を取得します。そしてそれを変數(shù) x に代入します。前回の x の値は 10 だったので、再代入後の x の値は 12 になります。

strict モード

JavaScript 設計の開始時に、初心者が學習しやすいように、変數(shù)を宣言するために var を使用することは必須ではありません。この設計エラーは重大な結果をもたらします。変數(shù)が var 宣言なしで使用されると、その変數(shù)は自動的にグローバル変數(shù)として宣言されます:

var x = 10;
x = x + 2;

同じページ上の異なる JavaScript ファイルで、var が使用されていない場合、両方の場合に次のようになります。変數(shù) i がたまたま使用されていると、変數(shù) i は相互に影響を及ぼし、デバッグが困難な誤った結果が生成されます。

var を使用して宣言された変數(shù)は、グローバル変數(shù)ではありません。そのスコープは、変數(shù)が宣言された関數(shù)本體に限定されます (関數(shù)の概念については後で説明します)。さまざまな機能體。

JavaScript のこの重大な設計上の欠陥を修正するために、ECMA はその後の仕様で厳密モードを導入しました。変數(shù)を宣言するために var を使用せずに変數(shù)を使用すると、厳密モードで実行される JavaScript コードは強制的に変數(shù)を宣言します。操作ミス。

厳密モードを有効にする方法は、JavaScript コードの最初の行に次のように記述することです:

'use strict';

これは文字列です。厳密モードをサポートしていないブラウザでは、文字列ステートメントとして実行されます。厳密モードをサポートするブラウザでは、厳密モードで JavaScript を実行できるようになります。

ブラウザが厳密モードをサポートできるかどうかをテストするには:

'use strict';
// ブラウザが厳密モードをサポートしている場合、
// 次のコードは ReferenceError エラーを報告します:

i = 10; // i現(xiàn)在是全局變量
abc = 'Hello, world';
alert(abc);


學び続ける
||
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title> RunJS 演示代碼 </title> <script> var ck = function(){ var x = prompt ("輸入數(shù)據(jù): ", ""); alert(x); } </script> </head> <body> <button onclick="ck();"> 按鈕 </button> </body> </html>