JavaScriptの型変換LOGIN

JavaScriptの型変換

JavaScript 変数は緩やかに型付けされており、JavaScript でサポートされているあらゆるデータ型を格納でき、その変数の型は実行時に動的に変更できます。例を参照してください:


var n = 10;

n = "hello CSSer!";

n = {};

上記の例では、変数 nが最初に宣言され、その値が 10 (整数型) に初期化され、次に文字列「hello CSSer!」が n に割り当てられ、次にそれにオブジェクトが割り当てられます。最後に、n の型がオブジェクト型になります。変数 n の型は動的であることがわかります。実際のプログラミングでは、デバッグには良くないため、変数の型を頻繁に変更しないことをお勧めします。


JavaScriptのデータ型

JavaScriptには5つの異なるデータ型があります:

string

number

boolean

object

function

3つのオブジェクトタイプ:

Object

日付

配列

値を含まない 2 つのデータ型:

null

未定義

typeof 演算子

typeof 演算子を使用して、JavaScript 変数のデータ型を確認できます。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = 
    typeof "tom" + "<br>" +
    typeof 3.14 + "<br>" +
    typeof NaN + "<br>" +
    typeof false + "<br>" +
    typeof [1,2,3,4] + "<br>" +
    typeof {name:'john', age:34} + "<br>" +
    typeof new Date() + "<br>" +
    typeof function () {} + "<br>" +
    typeof myCar + "<br>" +
    typeof null;
</script>
</body>
</html>

ご注意ください:

NaN のデータ型は数値です

配列 (Array) のデータ型はオブジェクトです

日付 (Date) のデータ型はオブジェクトです

null データ型はオブジェクトです

未定義変数 データ型は未定義です

constructor プロパティ

constructor プロパティは、すべての JavaScript 変数のコンストラクターを返します。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = 
    "john".constructor + "<br>" +
    (3.14).constructor + "<br>" +
    false.constructor + "<br>" +
    [1,2,3,4].constructor + "<br>" +
    {name:'john', age:34}.constructor + "<br>" +
    new Date().constructor + "<br>" +
    function () {}.constructor;
</script>
</body>
</html>



明示的な変換

手動で型変換を実行することにより、JavaScript は次の変換関数を提供します:

数値型への変換: Number(mix)、parseInt(string,radix)、parseFloat( string )
文字列型に変換: toString(radix)、String(mix)
ブール型に変換: Boolean(mix)

1. Number(mix)関数は、任意のタイプのパラメータミックスを数値タイプに変換できます

ルールは次のとおりです:

ブール値の場合、trueとfalseはそれぞれ1と0に変換されます

が数値の場合は、それ自体を返します。

nullの場合は0を返します。

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

それが文字列の場合は、次の規則に従います:

1) 文字列に数字のみが含まれている場合は、それを 10 進数に変換します (先頭の 0 を無視します)

2) 文字列に有効な浮動小数点形式が含まれている場合は、変換します浮動小数点値に変換します(先頭の0は無視されます)

3) 空文字列の場合は0に変換します

4) 文字列に上記以外の形式が含まれる場合はNaNに変換します

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

Number("3.14") // 3.14を返します
Number(" ") // 0を返します
Number("") // 0
Number("99 88") を返します // NaN


を返します

2. parseInt(string, radix) 関数は、文字列を整数型の値に変換します。また、特定のルールもあります:


空でない最初の文字が見つかるまで、文字列の前のスペースを無視します

最初の文字が数字記号または負符号でない場合は、NaNを返します

If最初の文字が数値の場合は、文字列の解析が完了するか、数値以外の記号が見つかるまで解析を続けます

前の解析の結果が 0 で始まる場合、0x で始まる場合は 8 進数として解析されます。 , 16進数として解析されます

radixパラメータを指定した場合は、radix

3に基づいて解析されます

3. parseFloat(string)関数は、文字列を浮動小数点型の値に変換します

ルール 基本的に parseInt と同じですが、いくつかの違いがあります。文字列内の最初の小数点記号が有効で、parseFloat は先頭の 0 をすべて無視します。文字列に整数として解析できる数値が含まれている場合、整数値は次のようになります。浮動小数点数の代わりに返されます。

4. toString(radix) メソッド。 unknown と null を除くすべてのタイプの値には、オブジェクトの文字列表現を返す toString() メソッドがあります。結果の文字列はカンマで区切られ、連結されます。 ブール値 ブール値が true の場合、「true」を返します。それ以外の場合は、「false」を返します。

Date 日付のテキスト表現を返します。

Error 関連するエラー情報を含む文字列を返します。

Function 次の形式で文字列を返します。 functionname は、呼び出された toString メソッド関数の名前です。

function functionname() { [ネイティブ コード] }

Number 数値のテキスト表現を返します。

String String オブジェクトの値を返します。

デフォルトは「[object objectname]」を返します。objectname はオブジェクト タイプの名前です。

5. String(mix) 関数、任意のタイプの値を文字列に変換します。 ルールは次のとおりです。

toString() メソッドがある場合は、このメソッドを呼び出します (基数を渡さず)。パラメータ)を返し、結果を返します

nullの場合は「null」を返します

未定義の場合は「未定義」を返します

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<p id="demo"></p>
<script>
var x = 55;
document.getElementById("demo").innerHTML =
    String(x) + "<br>" +
    String(13.3) + "<br>" +
    String(100.99 + 23);
</script>
</body>
</html>

6. ブール(混合)関数、任意の型の値を変換します。ブール値に変換します。

次の値は false に変換されます: false、""、0、NaN、null、未定義、およびその他の値は true に変換されます。


例:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>php中文网(php.cn)</title> 
    <script type="text/javascript">
var i="123abc";
    i=parseInt(i);//字符串转整形
    alert(i+","+typeof(i));//输出:123,number
    i="12.3abc";
    i=parseFloat(i);//字符串转浮点型
    alert(i+","+typeof(i));//输出:12.3,number(可见不管是int还是float都是number类型)
    i="a123abc";
    i=parseInt(i);//字符串转整形
    alert(i+","+typeof(i));//输出:NaN,number (由于转换失败,所以提示“不是一个数字,Not a Number”)
    var num=document.getElementById("num").value;
    function showMsg(num)
    {
        for(var i=0;i<num;i++)
        {
            document.write("你好,JavaScript!<br/>");
        }
    }
</script>
</head>
<body>
</body>
</html>




単項演算子 +

演算子 + は変数を数値に変換するために使用できます:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<button onclick="myFunction()">点击</button>
<p id="demo"></p>
<script>
function myFunction() {
    var y = "5";
    var x = + y;
    document.getElementById("demo").innerHTML =
typeof y + "<br>" + typeof x;
}
</script>
</body>
</html>


次のセクション

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <p id="demo"></p> <script> var x = 55; document.getElementById("demo").innerHTML = String(x) + "<br>" + String(13.3) + "<br>" + String(100.99 + 23); </script> </body> </html>
コースウェア