ホームページ >ウェブフロントエンド >フロントエンドQ&A >JavaScriptでデータ型を変換する方法
データ型を変換する Javascript メソッド: 1. コンピューティングのニーズを満たすために、コンピューティング環境に従って値のデータ型を自動的に変換します; 2. toString()、String( などの JavaScript 組み込み関数を使用します) )、parseInt() を使用してデータ型を強制的に変換します。
このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。
JavaScript は動的言語です。いわゆる動的言語は、言語内のすべてが不確実であることを一時的に意味すると理解できます。たとえば、変数が現時点では整数である場合、次の瞬間には文字列になる可能性があります。変数のデータ型は未定義ですが、さまざまな演算子にはデータ型の要件があります。演算子の型が予期された型と一致しないことが判明した場合、演算子は型を 自動的に変換します。
簡単に言えば、JavaScript はコンピューティングのニーズを満たすために、コンピューティング環境に応じて値の型を自動的に変換できます。 例:プラス演算子を使用して値を文字列に変換します
//把数字转换为字符串 var n = 123; n = n + ""; console.log(typeof n); //返回类型为 string
例: 乗算演算子を使用して文字列を文字列に変換します数値
var n = "123"; n = n * 1; console.log(typeof n); //返回类型为 numberしかし、多くの場合、開発者は操作プロセスを制御するために手動でデータ型を変換する (
強制型変換 ) 必要があります。
方法 1: toString() メソッド
call変換されたデータ型の toString() メソッドは、元の変数には影響しません。変換結果が返されます。ただし、注意: null と unknown の 2 つの値には toString がありません。それらのメソッドが呼び出されると、エラーが発生します。報告されます。
var a = 123 a.toString()//"123" var b = null; b.toString()//"报错" var c = undefined c.toString()//"报错"
Number 型の toString() メソッドの基数モードを使用すると、さまざまな基数を使用して数値を出力できます。たとえば、2 進数の基数は 2、8 進数の基数は 8、16 進数の基数は 16 です。
var iNum = 10; alert(iNum.toString(2)); //输出 "1010" alert(iNum.toString(8)); //输出 "12" alert(iNum.toString(16)); //输出 "A"
方法 2: String() 関数
強制型変換に String() 関数を使用する場合、実際には Number と Boolean に対して toString() メソッドが呼び出されます。
ただし、null および unknown の場合、toString() メソッドは呼び出されません。null は "null" に、未定義は直接 "未定義" に変換されます
var a = null String(a)//"null" var b = undefined String(b)//"undefined"
String メソッドのパラメータがオブジェクトの場合の場合は、Type 文字列を返します。配列の場合は、配列の文字列形式を返します。
String({a: 1}) // "[object Object]" String([1, 2, 3]) // "1,2,3"2. 他のデータ型を Number に変換する
方法 1: Number() 関数を使用する
以下では 2 つの状況に分けて説明します。 、 1 つはパラメータがプリミティブ型の値であること、もう 1 つはパラメータがオブジェクトであることです
(1) プリミティブ型の値
①文字列を数値に変換します
Number('324') // 324 Number('324abc') // NaN Number('') // 0②ブール値を数値に変換します。true は次のように変換されます。 1、false 0
Number(true) // 1 Number(false) // 0に変換します。 ③未定義から数値に変換します。 NaN
Number(undefined) // NaNに変換します。 ④null を数値に変換します。 0
Number(null) // 0に変換します。 ⑤Number() は数値を受け入れます。負の 16 進数と 0 から始まる 8 進数を認識できます。戻り値は常に 10 進数です。
Number(3.15); //3.15 Number(023); //19 Number(0x12); //18 Number(-0x12); //-18(2) オブジェクト簡単なルールは次のとおりです。 Number メソッドのパラメータが Object である場合、単一の数値を含む配列でない限り、NaN が返されます。
Number({a: 1}) // NaN Number([1, 2, 3]) // NaN Number([5]) // 5メソッド 2: parseInt() & parseFloat()このメソッドは、文字列を処理するために特別に使用されます。parseInt() は文字列を整数に変換し、文字列を整数に変換できます。 integer. 有効な整数の内容が取り出され、数値に変換されます。 parseFloat() は文字列を浮動小数点数に変換します。 parseFloat() は、有効な 10 進数を取得できる点を除いて、parseInt() に似ています。
console.log(parseInt('.21')); //NaN console.log(parseInt("10.3")); //10 console.log(parseFloat('.21')); //0.21 console.log(parseFloat('.d1')); //NaN console.log(parseFloat("10.11.33")); //10.11 console.log(parseFloat("4.3years")); //4.3 console.log(parseFloat("He40.3")); //NaNparseInt() は、2 番目のパラメータがない場合、デフォルトで 10 進数に変換します。2 番目のパラメータがある場合、2 番目のパラメータを基数として使用して値を変換します。基数が間違っている場合は、NaN を返します。
console.log(parseInt("13")); //13 console.log(parseInt("11",2)); //3 console.log(parseInt("17",8)); //15 console.log(parseInt("1f",16)); //31この 2 つの違い: Number 関数は文字列を数値に変換し、parseInt 関数よりもはるかに厳密です。基本的に、1 文字が数値に変換できない限り、文字列全体が NaN に変換されます。
parseInt('42 cats') // 42 Number('42 cats') // NaN上記のコードでは、parseInt は文字を 1 つずつ解析し、Number 関数は文字列全体の型を変換します。
さらに、空の文字列の処理も異なります
Number(" "); //0 parseInt(" "); //NaN
3. 他のデータ型をブール値に変換します
它的转换规则相对简单:只有空字符串("")、null、undefined、+0、-0 和 NaN 转为布尔型是 false,其他的都是 true,空数组、空对象转换为布尔类型也是 true,甚至连false对应的布尔对象new Boolean(false)也是true
Boolean(undefined) // false Boolean(null) // false Boolean(0) // false Boolean(NaN) // false Boolean('') // false
Boolean({}) // true Boolean([]) // true Boolean(new Boolean(false)) // true
【推荐学习:javascript高级教程】
以上がJavaScriptでデータ型を変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。