亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

JavaScriptのデータ型

JavaScript データ型

データ型

JavaScript には、未定義、Null、ブール、數(shù)値、文字列の 5 つの単純なデータ型 (基本データ型とも呼ばれます) があります。複雑なデータ型もあります。オブジェクトは、基本的に順序付けされていない名前と値のペアで構(gòu)成されます。

typeof 演算子

JavaScript は緩やかに型指定されているため、特定の変數(shù)のデータ型を検出する方法が必要です。typeof はプロバイダー側(cè)??の情報を提供する演算子です。値に対して typeof 演算子を使用すると、次の文字列のいずれかが返されます。

● "unknown" - 値が未定義の場合

● "boolean" - 値がブール値の場合

● "string" — —この値が文字列の場合;

● "number"—この値が數(shù)値の場合;

● "object"—この値がオブジェクトまたは null の場合;

● "function"—Ifこの値は関數(shù)です。

未定義型

未定義型は値を 1 つだけ持ち、それが特別な unknown です。変數(shù)が var を使用して宣言されているが初期化されていない場合、変數(shù)の値は未定義になります。例:

var message;
alert(message == unknown) //true

Null 型

Null 型は 2 番目です。値が 1 つだけあるデータ型。この特別な値は null です。論理的な観點から見ると、null 値は null オブジェクト ポインターを表します。これが、typeof 演算子を使用して null を検出するときに「object」が返される理由です。たとえば、次のようになります。 ; // "object"


定義した変數(shù)を?qū)恁芝弗Д趣伪4妞耸褂盲工雸龊悉?、変?shù)を別の値ではなく null に初期化するのが最善です。このようにして、null 値が直接検出されている限り、対応する変數(shù)がオブジェクトへの參照を保存しているかどうかを知ることができます。例:

if(car != null)
{ .

Alert(unknown == null); //true

このような関係にあるnullとunknownですが、用途は全く異なります。いかなる狀況でも、変數(shù)の値を明示的に未定義に設(shè)定する必要はありませんが、同じ規(guī)則は null には適用されません。言い換えれば、オブジェクトを保持することを意図した変數(shù)が実際にはオブジェクトを保持しない限り、その変數(shù)には明示的に null 値を保持させる必要があります。そうすることで、null オブジェクト ポインターとしての null の規(guī)則が反映されるだけでなく、null と未定義をさらに區(qū)別するのにも役立ちます。


ブール型

この型には、true と false の 2 つのリテラル値しかありません。これら 2 つの値は數(shù)値としては同じものではないため、true が 1 に等しいとは限らず、false が 0 に等しいとは限りません。

ブール型のリテラル値は 2 つだけですが、JavaScript のすべての型の値は、これら 2 つのブール値と同等の値を持ちます。値を?qū)潖辘工毳蜘`ル値に変換するには、次のように型変換関數(shù) Boolean() を呼び出すことができます。

var message = 'Hello World' var messageAsBoolean = Boolean(message); この例では、文字列メッセージはブール値に変換され、messageAsBoolean 変數(shù)に格納されます。 Boolean() 関數(shù)は、任意のデータ型の値に対して呼び出すことができ、常にブール値を返します。戻り値が true か false になるかは、変換対象の値のデータ型とその実際の値に依存します。次の表に、さまざまなデータ型とそのオブジェクトの変換規(guī)則を示します。

これらの変換ルールは、フロー制御ステートメント (if ステートメントなど) を理解し、対応するブール変換を自動的に実行するために非常に重要です。例:

var message = 'Hello World';
    if(message)
    {
        alert("Value is true");
    }

この例を?qū)g行すると、文字列メッセージが自動的に変換されるため、警告ボックスが表示されます。対応するブール値 (true) に変換します。このブール変換は自動的に実行されるため、フロー制御ステートメントでどの変數(shù)が使用されているかを正確に知ることが重要です。

數(shù)値型

この型は整數(shù)と浮動小數(shù)點値を表すために使用され、特別な値 NaN (非數(shù)値) もあります。この値は、値を返すはずのオペランドが値を返さないことを示すために使用されます (エラーがスローされないように)。たとえば、他のプログラミング言語では、數(shù)値をゼロで除算するとエラーが発生し、コードの実行が停止します。ただし、JavaScript では、0 で割った値は NaN を返すため、他のコードの実行には影響しません。

NaN 自體には 2 つの優(yōu)れた特徴があります。まず、NaN を伴う演算 (NaN/10 など) は NaN を返すため、複數(shù)ステップの計算で問題が発生する可能性があります。第 2 に、NaN は、NaN 自體を含め、どの値とも等しくありません。たとえば、次のコードは false を返します。

alert(NaN == NaN); //false

JavaScript には isNaN() 関數(shù)があり、この関數(shù)は任意の型のパラメーターを受け入れます。 "數(shù)値ではありません" "。 isNaN() は値を受け取ると、その値を數(shù)値に変換しようとします。數(shù)値ではない一部の値は、文字列「10」やブール値など、數(shù)値に直接変換されます。數(shù)値に変換できない値があると、この関數(shù)は true を返します。例:

alert(isNaN(NaN));    //true
    alert(isNaN(10));    //false(10是一個數(shù)值)
    alert(isNaN("10"));    //false(可能被轉(zhuǎn)換為數(shù)值10)
    alert(isNaN("blue"));    //true(不能被轉(zhuǎn)換為數(shù)值)
    alert(isNaN(true));    //false(可能被轉(zhuǎn)換為數(shù)值1)

數(shù)値以外の値を數(shù)値に変換できる関數(shù)は 3 つあります: Number()、parseInt()、parseFloat()。最初の関數(shù)である変換関數(shù) Number() は任意のデータ型に使用できますが、他の 2 つの関數(shù)は特に文字列を數(shù)値に変換するために使用されます。これら 3 つの関數(shù)は、同じ入力に対して異なる結(jié)果を返します。

Number()関數(shù)の変換ルールは以下の通りです

●ブール値の場合はtrue、falseはそれぞれ1、0に置き換えられます

●數(shù)値の場合はそのまま渡されますで返されます

● null値の場合は0を返します

● 未定義の場合はNaNを返します

● 文字列の場合は次の規(guī)則に従います:

○ 文字列に數(shù)字のみが含まれる場合は変換しますつまり、「1」は 1 になり、「123」は 123 になり、「011」は 11 になります (先頭の 0 は無視されます)

○ 文字列に次のような有効な浮動小數(shù)點形式が含まれている場合"1.1"、対応する浮動小數(shù)點數(shù)に変換します (同様に、先頭の 0 も無視されます)

○ 文字列に "0xf" などの有効な 16 進形式が含まれている場合は、同じ 10 進整數(shù)値に変換しますサイズ

○ If 文字列が空の場合は0に変換

○ 文字列に上記形式以外の文字が含まれている場合はNaNに変換

● オブジェクトの場合は、その文字列のvalueOf()メソッドを呼び出すオブジェクトの場合、戻り値を前述のルールに従って変換します。変換の結(jié)果が NaN の場合、オブジェクトの toString() メソッドが呼び出され、返された文字列値が前述の規(guī)則に従って変換されます。

 var num1 = Number("Hello World");    //NaN
    var num2 = Number("");                //0
    var num3 = Number("000011");        //11
    var num4 = Number(true);            //1

Number() 関數(shù)は文字列を変換する場合には複雑で不合理であるため、整數(shù)を処理する場合には parseInt() 関數(shù)がよく使用されます。 parseInt() 関數(shù)が文字列を変換する場合、文字列が數(shù)値パターンに準(zhǔn)拠しているかどうかに大きく依存します。最初の非スペース文字が見つかるまで、文字列內(nèi)の先頭のスペースは無視されます。最初の文字列が數(shù)字または負(fù)符號でない場合、parseInt() は NaN を返します。つまり、parseInt() を使用して空の文字列を変換すると NaN が返されます。最初の文字が數(shù)字の場合、praseInt() は、後続の文字がすべて解析されるか、數(shù)字以外の文字が検出されるまで、2 番目の文字の解析を続けます。たとえば、小數(shù)點は有効な數(shù)字ではないため、「1234blue」は 1234 に変換され、「22.5」は 22 に変換されます。

文字列の最初の文字が數(shù)字の場合、parseInt() はさまざまな整數(shù)形式 (つまり、10 進數(shù)、8 進數(shù)、16 進數(shù)) も認(rèn)識できます。 parseInt() 関數(shù)の変換規(guī)則をよりよく理解するために、ここにいくつかの例を示します

   var num1 = parseInt("1234blue");    //1234
    var num2 = parseInt("");            //NaN
    var num3 = parseInt("0xA");            //10(十六進制)
    var num4 = parseInt("22.5");        //22
    var num5 = parseInt("070");            //56(八進制)
    var num6 = parseInt("70");            //70
    var num7 = parseInt("10",2);        //2(按二進制解析)
    var num8 = parseInt("10",8);        //8(按八進制解析)
    var num9 = parseInt("10",10);        //10(按十進制解析)
    var num10 = parseInt("10",16);        //16(按十六進制解析)
    var num11 = parseInt("AF");            //56(八進制)
    var num12 = parseInt("AF",16);        //175


parseInt() 関數(shù)と同様に、parseFloat() も最初の文字 (位置 0) から始めて各文字を解析します。そして、文字列の終わりまで、または無効な浮動小數(shù)點數(shù)値文字が見つかるまで解析されます。つまり、文字列の最初の小數(shù)點は有効ですが、2 番目の小數(shù)點は無効であるため、それ以降の文字列は無視されます。たとえば、「22.34.5」は 22.34 に変換されます。

parseFloat() と parseInt() の 2 番目の違いは、先頭のゼロを常に無視することです。 parseFloat() の値は 10 進數(shù)値を解析するため、2 番目のパラメーターで基數(shù)を指定する必要はありません。 String 型は、0 個以上の 16 ビット Unicode 文字で構(gòu)成される文字シーケンス、つまり文字列を表すために使用されます。文字列は一重引用符 (') または二重引用符 (") で表すことができます。

var str1 = "Hello"; var str2 = 'Hello';

任意の文字列の長さは、その length 屬性にアクセスすることで取得できます

Alert(str1.length); //出力 5

値を文字列に変換するには 2 つの方法があります。1 つは、ほぼすべての値に含まれる toString() メソッドです。 ageAsString = age.toString(); //String "11"

var found = true; var foundAsString = found.toString(); //String "true"


數(shù)値、ブール値、オブジェクトおよび文字列値toString() メソッドがありますが、null および未定義の値には、ほとんどの場合、値の toString() メソッドを呼び出すときにパラメータを渡す必要はありません。 パラメータ: 出力値のベース。


りー

。

この例からもわかるように、toString()メソッドはbaseを指定することで出力値を変更します。値 10 は、出力時に基數(shù)に応じてさまざまな數(shù)値形式に変換できます。

変換する値がnullか未定義かわからない場合は、変換関數(shù)String()を使用することもできます。この関數(shù)は、任意の型の値を文字列に変換できます。 String() 関數(shù)は次の変換規(guī)則に従います:

● 値に toString() メソッドがある場合、そのメソッドを (パラメーターなしで) 呼び出し、対応する結(jié)果を返します

● 値が null の場合は、「null」を返します

●If 値が未定義の場合は「未定義」を返す


  var num1 = parseFloat("1234blue");    //1234
    var num2 = parseFloat("0xA");        //0
    var num3 = parseFloat("22.5");        //22.5
    var num4 = parseFloat("22.34.5");    //22.34
    var num5 = parseFloat("0908.5");    //908.5


オブジェクト型

オブジェクトは実際にはデータと関數(shù)の集合です。オブジェクトは、作成するオブジェクトのタイプの名前を続けて new 演算子を?qū)g行することによって作成できます。カスタム オブジェクトを作成するには、オブジェクト型のインスタンスを作成し、それにプロパティやメソッドを追加します。

var o = new Object();

Object のすべてのインスタンスには次のプロパティとメソッドがあります:

● コンストラクター - 現(xiàn)在のオブジェクトの作成に使用される関數(shù)を保持します

● hasOwnProperty(propertyName) - for指定されたプロパティは、(インスタンスのプロトタイプではなく) 現(xiàn)在のオブジェクト インスタンスに存在します。このうち、パラメータとしてのプロパティ名 (propertyName) は文字列形式で指定する必要があります (例: o.hasOwnProperty("name"))

● isPrototypeOf(object) - 受信したオブジェクトが別のオブジェクト Prototype

● propertyIsEnumerable(propertyName) - for-in ステートメントを使用して指定されたプロパティを列挙できるかどうかを確認(rèn)するために使用されます

● toString() - オブジェクトの文字列表現(xiàn)を返します

● valueOf() - A を返しますオブジェクトの文字列、數(shù)値、またはブール表現(xiàn)。通常は toString() メソッドの戻り値と同じです。


學(xué)び続ける
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <script> var carname1="pen"; var carname2="box"; var answer1="It's alright"; var answer2="He is called 'Johnny'"; var answer3='He is called "Johnny"'; document.write(carname1 + "<br>") document.write(carname2 + "<br>") document.write(answer1 + "<br>") document.write(answer2 + "<br>") document.write(answer3 + "<br>") </script> </body> </html>