ホームページ >ウェブフロントエンド >フロントエンドQ&A >JavaScriptでデータ型を変換する方法

JavaScriptでデータ型を変換する方法

青灯夜游
青灯夜游オリジナル
2021-09-16 18:04:035204ブラウズ

データ型を変換する Javascript メソッド: 1. コンピューティングのニーズを満たすために、コンピューティング環境に従って値のデータ型を自動的に変換します; 2. toString()、String( などの JavaScript 組み込み関数を使用します) )、parseInt() を使用してデータ型を強制的に変換します。

JavaScriptでデータ型を変換する方法

このチュートリアルの動作環境: 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. 他のデータ型を String に変換する

方法 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) プリミティブ型の値

①文字列を数値に変換します

    純粋な数値文字列の場合は、数値に直接変換します
  • ##文字列に数値以外の内容が含まれる場合は、NaN
  • に変換します
  • 文字列が空の文字列またはスペースでいっぱいの文字列の場合、0
  • 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"));    //NaN

parseInt() は、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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。