JavaScriptの型変換LOGIN

JavaScriptの型変換

Number() は数値に変換され、String() は文字列に変換され、Boolean() はブール値に変換されます。


JavaScriptのデータ型

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

  • string

  • number

  • boolean

  • オブジェクト

  • 関数

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

  • Object

  • Date

  • Array

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

  • null

  • 未定義


typeof演算子

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

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>PHP中文网(php.cn)</title>
</head>
<body>
<p> typeof 操作符返回变量、对象、函数、表达式的类型。</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = 
    typeof "john" + "<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) は object

  • null のデータ型は object

  • 未定義変数のデータ型は unfine

オブジェクトが JavaScript Array または JavaScript Date の場合、typeof では型を判断できません。どちらも Object を返します。


constructor プロパティ

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

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>PHP中文网(php.cn)</title>
</head>
<body>
<p> constructor 属性返回变量或对象的构造函数。</p>
<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>

プログラムを実行して試してください


コンストラクタープロパティを使用して、オブジェクトが配列(文字列「Array」を含む)かどうかを確認できます:

Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>PHP中文网(php.cn)</title>
</head>
<body>
<p>判断是否为数组。</p>
<p id="demo"></p>
<script>
var fruits = ["Banana", "Orange", "Apple", "Mango"];
document.getElementById("demo").innerHTML = isArray(fruits);
function isArray(myArray) {
    return myArray.constructor.toString().indexOf("Array") > -1;
}
</script>
</body>
</html>

プログラムを実行して試してくださいコンストラクター プロパティを使用して、オブジェクトが日付 (文字列 "Date" を含む) かどうかを確認できます:


Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>PHP中文网(php.cn)</title>
</head>
<body>
<p>判断是否为日期。</p>
<p id="demo"></p>
<script>
var myDate = new Date();
document.getElementById("demo").innerHTML = isDate(myDate);
function isDate(myDate) {
    return myDate.constructor.toString().indexOf("Date") > -1;
}
</script>
</body>
</html>
プログラムを実行して試してください


JavaScript タイプ変換

JavaScript 変数は、新しい変数または他のデータ型に変換できます:

JavaScript 自体による自動変換
  • JavaScript 関数を使用する

数値を文字列に変換する グローバル メソッド String() は数値を文字列に変換できます。

このメソッドは、あらゆるタイプの数値、文字、変数、式に使用できます:

インスタンス

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>PHP中文网(php.cn)</title>
</head>
<body>
<p> String() 方法可以将数字转换为字符串。</p>
<p id="demo"></p>
<script>
    var x = 123;
    document.getElementById("demo").innerHTML =
            String(x) + "<br>" +
            String(123) + "<br>" +
            String(100 + 23);
</script>
</body>
</html>

プログラムを実行して試してください


数値メソッド toString() も同じ効果があります。

インスタンス

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>PHP中文网(php.cn)</title>
</head>
<body>
<p>toString() 方法将数字转换为字符串。</p>
<p id="demo"></p>
<script>
    var x = 123;
    document.getElementById("demo").innerHTML =
            x.toString() + "<br>" +
            (123).toString() + "<br>" +
            (100 + 23).toString();
</script>
</body>
</html>

プログラムを実行して試してください


数値を文字列に変換するメソッド:

toExpone ntial()toFixed()toPrecision()

ブール値を文字列に変換する

グローバルメソッド String() はブール値を文字列に変換できます。

String(false) // Return "false"
String(true) // Return "true"

BooleanメソッドtoString()も同様の効果があります。

false.toString() // Return "false"
true.toString() // Return "true"


日付を文字列に変換

グローバルメソッドString()は日付を文字列に変換できます。

String(Date()) // Return Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)

Date メソッド toString() も同じ効果があります。

Date().toString() // Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)を返します

日付を文字列に変換する関数:

メソッド
の値を変換しますオブジェクトを指数カウントメソッドに変換します。
数値を文字列に変換し、結果の小数点以下の桁数が指定されたものになります。
数値を指定された長さにフォーマットします。
method 説明
getDate()Date オブジェクトから日付 (1 ~ 31) を返します。
getDay()Dateオブジェクトから曜日(0~6)を返します。
getFull Year() Date オブジェクトから年を 4 桁の数値として返します。
getHours()Date オブジェクトの時間 (0 ~ 23) を返します。
getMilliseconds()Date オブジェクトのミリ秒 (0 ~ 999) を返します。
getMinutes()Date オブジェクトの分 (0 ~ 59) を返します。
getMonth()Date オブジェクトから月 (0 ~ 11) を返します。
getSeconds()Date オブジェクトの秒数 (0 ~ 59) を返します。
getTime() 1970 年 1 月 1 日からのミリ秒数を返します。

文字列を数値に変換

グローバルメソッド Number() は文字列を数値に変換できます。

数値を含む文字列 (「3.14」など) は数値 (3.14 など) に変換されます。

空の文字列は 0 に変換されます。

その他の文字列は NaN (数値ではない) に変換されます。

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

文字列を返します メソッド数値に変換するには:

メソッド 説明
parseFloat() 文字列を解析し、浮動小数点数を返します。
parseInt()文字列を解析し、整数を返します。

単項演算子 +

Operator + は、変数を数値に変換するために使用できます:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>PHP中文网(php.cn)</title>
</head>
<body>
<p> typeof 操作符返回变量或表达式的类型。</p>
<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>

プログラムを実行して試してください


変数を変換できない場合、数値のままですが、値は NaN (数値ではありません) です:

インスタンス

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>PHP中文网(php.cn)</title>
</head>
<body>
<p> typeof 操作符返回变量或表达式的类型。</p>
<button onclick="myFunction()">点我</button>
<p id="demo"></p>
<script>
function myFunction() {
    var y = "John";
    var x = + y;
    document.getElementById("demo").innerHTML =
typeof x + "<br>" + x;
}
</script>
</body>
</html>

プログラムを実行して試してください


ブール値を数値に変換します

グローバルNumber() メソッドはブール値を数値に変換できます。メソッド Number() は、日付 Convert を数値に変換できます。

d = new Date();
Number(d) // Return 1404568027739

date メソッド getTime() にも同じ効果があります。

d = new Date();
d.getTime() // Return 1404568027739


自動変換タイプ


JavaScriptの場合「間違った」データを操作しようとします型を選択すると、自動的に「正しい」データ型に変換されます。

次の出力結果は期待したものではありません:


5 + null // 5 null を返す 0

"5" + null に変換する // "5null" null を返す "null"
"5" + 1 に変換する// "51" 1 を "1" に変換して返します

"5" - 1 // 4 "5" を 5 に変換して返します



文字列に自動的に変換

オブジェクトまたは変数を出力しようとすると、JavaScript は変数の toString() メソッドを自動的に呼び出します:

document.getElementById("demo") .innerHTML = myVar;

// if myVar = {name:"Fjohn"} // toString は "[object Object]" に変換されます
// if myVar = [1,2,3,4] // toString は"1 ,2,3,4" に変換されます
// if myVar = new Date() // toString は "Fri Jul 18 2014 09:08:55 GMT+0200" に変換されます

数値とブール値相互に変換されることもよくあります:

// if myVar = 123 // toString は "123" に変換されます
// if myVar = true // toString は "true" に変換されます
// if myVar = false // toString は "false" に変換されます


次のセクション
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文网(php.cn)</title> </head> <body> <p> typeof 操作符返回变量、对象、函数、表达式的类型。</p> <p id="demo"></p> <script> document.getElementById("demo").innerHTML = typeof "john" + "<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>
コースウェア