この例を実行すると、文字列メッセージが対応するブール値 (true) に自動的に変換されるため、警告ボックスが表示されます。このブール変換は自動的に実行されるため、フロー制御ステートメントでどの変数が使用されているかを正確に知ることが重要です。
NaN 自体には 2 つの優れた特徴があります。まず、NaN を伴う演算 (NaN/10 など) は NaN を返すため、複数ステップの計算で問題が発生する可能性があります。第 2 に、NaN は、NaN 自体を含め、どの値とも等しくありません。たとえば、次のコードは false を返します。
JavaScript には isNaN() 関数があり、この関数は任意の型のパラメーターを受け入れます。この関数は、パラメーターが正しいかどうかを判断するのに役立ちます。 「価値ではない」です。 isNaN() は値を受け取ると、その値を数値に変換しようとします。数値ではない一部の値は、文字列「10」やブール値など、数値に直接変換されます。数値に変換できない値があると、この関数は true を返します。例:
はい、Number()、parseInt()、parseFloat() の 3 つの関数で非数値を数値に変換できます。最初の関数である変換関数 Number() は任意のデータ型に使用できますが、他の 2 つの関数は特に文字列を数値に変換するために使用されます。これら 3 つの関数は、同じ入力に対して異なる結果を返します。
○ If文字列に数字だけが含まれている場合は、10 進数に変換します。 数値、つまり、「1」は 1 になり、「123」は 123 になり、「011」は 11 になります(先頭の 0 は無視されます)
● If Ifこれがオブジェクトである場合は、オブジェクトの valueOf() メソッドを呼び出し、戻り値を前述のルールに従って変換します。変換の結果が NaN の場合、オブジェクトの toString() メソッドが呼び出され、返された文字列値が前述の規則に従って変換されます。
var num1 = Number("Hello World" ); / /NaN
var num2 = Number("") //0
var num3 = Number("000011"); //11
Number() 関数は文字列を変換する場合には複雑で不合理であるため、整数を処理する場合には parseInt() 関数がより一般的に使用されます。 parseInt() 関数が文字列を変換する場合、文字列が数値パターンに準拠しているかどうかに大きく依存します。最初の非スペース文字が見つかるまで、文字列内の先頭のスペースは無視されます。最初の文字列が数字または負符号でない場合、parseInt() は NaN を返します。つまり、parseInt() を使用して空の文字列を変換すると NaN が返されます。最初の文字が数字の場合、praseInt() は、後続の文字がすべて解析されるか、数字以外の文字が検出されるまで、2 番目の文字の解析を続けます。たとえば、小数点は有効な数字ではないため、「1234blue」は 1234 に変換され、「22.5」は 22 に変換されます。
文字列の最初の文字が数字の場合、parseInt() はさまざまな整数形式 (つまり、10 進数、8 進数、16 進数) も認識できます。 parseInt() 関数の変換規則をよりよく理解するために、いくつかの例を以下に示します。
var num1 = parseInt("1234blue"); //1234
var num2 = parseInt(""); //NaN
var num3 = parseInt("0xA"); ); //10 (16 進数)
var num4 = parseInt("22.5"); //22
var num5 = parseInt("070"); //56 (8 進数)
var num6 = parseInt (" 70"); //70
var num7 = parseInt("10",2) //2 (バイナリで解析)
var num8 = parseInt("10",8); (バイナリ 8 進数解析で解析)
var num9 = parseInt("10",10) //10 (10 進形式で解析)
var num10 = parseInt("10",16); 16 進形式で解析されます) 解析中)
var num11 = parseInt("AF") //56 (8 進数)
var num12 = parseInt("AF",16); //175
parseInt() 関数も同様で、parseFloat() も最初の文字 (位置 0) から各文字を解析します。そして、文字列の終わりまで、または無効な浮動小数点数値文字が見つかるまで解析されます。つまり、文字列の最初の小数点は有効ですが、2 番目の小数点は無効であるため、それ以降の文字列は無視されます。たとえば、「22.34.5」は 22.34 に変換されます。
parseFloat() と parseInt() の 2 番目の違いは、先行ゼロを常に無視することです。 parseFloat() の値は 10 進数値を解析するため、第 2 引数で基数を指定する用途はありません。
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
String 型 0 以上の 16 を表すために使用されます。 -bit Unicode 文字で構成される文字シーケンス、つまり文字列。文字列は一重引用符 (') または二重引用符 (") で表すことができます。
var str1 = "Hello";
var str2 = 'Hello';
文字列の長さは、長さ属性
にアクセスすることで取得できます。
alert(str1.length); //出力 5
値を文字列に変換するには 2 つの方法があります。1 つ目は、ほぼすべての値で使用できる toString() メソッドを使用する方法です。
を渡すことができます。
コードをコピーします
コードは次のとおりです:
var num = 10;
alert(num.toString()); "
alert(num.toString(2)); //"1010" alert(num.toString(8)); //"12" alert(num.toString( 10)); //"10" alert(num.toString(16)) //"a" ;
この例から分かるように、toString()メソッドはbaseを指定することで出力値を変更します。値 10 は、出力時に基数に応じてさまざまな数値形式に変換できます。
変換する値が null か未定義かわからない場合は、変換関数 String() を使用することもできます。この関数は、任意の型の値を文字列に変換できます。 String() 関数は、次の変換規則に従います。
● 値に toString() メソッドがある場合、そのメソッドを (パラメーターなしで) 呼び出し、対応する結果を返します
● 値が null の場合、「null」を返します"
●値が未定義の場合は、「未定義」を返す
var value1 = 10;
var value3 = null;
alert(String(value1)); 🎜>alert(String( value2)); //"true"
alert(String(value3)); //"null"
alert(string(value4));
オブジェクト型
オブジェクトは、実際にはデータと関数のコレクションです。オブジェクトは、作成するオブジェクトのタイプの名前を続けて new 演算子を実行することによって作成できます。カスタム オブジェクトを作成するには、オブジェクト型のインスタンスを作成し、それにプロパティやメソッドを追加します。
コードをコピー
Object の各インスタンスには、次のプロパティとメソッドがあります。
● コンストラクター - 現在のオブジェクトの作成に使用される関数を保持します。
● hasOwnProperty(propertyName) - 指定されたプロパティかどうかを確認するために使用されます。存在する は、(インスタンスのプロトタイプではなく) 現在のオブジェクト インスタンスに存在します。このうち、パラメータとしてのプロパティ名 (propertyName) は文字列形式で指定する必要があります (例: o.hasOwnProperty("name"))
● isPrototypeOf(object) - 受信したオブジェクトがオブジェクトであるかどうかを確認するために使用されます別のオブジェクト
のプロトタイプ● propertyIsEnumerable(propertyName) - for-in ステートメントを使用して指定されたプロパティを列挙できるかどうかを確認するために使用されます
● toString() - オブジェクトの文字列表現を返します
● valueOf ( ) - オブジェクトの文字列、数値、またはブール表現を返します。通常、toString() メソッドの戻り値と同じです。