JavaScript数値変換
4527 ワード
JavaScript数値変換
JavaScript文字列変換デジタル方法は主に4つあります.強制型変換、変換関数、JS変数の弱タイプの特徴を利用して変換し、1元加算オペレータを利用して変換します.
強制タイプ変換-Number
強制型変換を使用すると、他のタイプのものであっても、特定の値にアクセスできます.
ECMAScriptで使用できる3つのタイプの強制変換は以下の通りです. Boolean(value)——与えられた値をBoolean型 に変換する. Number(value)——与えられた値を数値(整数または浮動小数点)に変換する String(value)——与えられた値を文字列 に変換する.
Number()関数の変換規則は以下の通りです.デジタル値であれば、これは単純な着信であり、 に戻る. Boolean値であれば、trueとfalseはそれぞれ1と0 に変換されます. null値であれば、0 を返します. undefinedであれば、NaN に戻る.文字列であれば、以下の規則に従います. 文字列に数字だけが含まれていると、10進数の値に変換されます.すなわち「1」は1になり、「010」は11になります. 文字列に有効な浮動小数点フォーマットが含まれている場合、「1.1」のように対応する浮動小数点値に変換される(同様に、プリアンブルゼロも無視される) 文字列に有効16進数の書式が含まれている場合、「0 xf」のように、10進数の整数値 に変換されます.文字列が空(任意の文字を含まない)である場合、それを0 に変換する.文字列に上記形式以外の文字が含まれている場合、NaN に変換される.オブジェクトであれば、オブジェクトのvalueOf()方法を呼び出し、前の規則に従って戻り値を変換する.変換の結果がNaNであれば、オブジェクトのtoString()メソッドを呼び出し、再び前の規則に従って文字列値 を変換する.
JavaScriptは
JavaScript変数による弱タイプ変換
算術演算子の方式を利用して、文字列を数字に変換することもできます.たとえば:
注意:足し算は使用できません.文字列に対して+はコネクタを表します.
一元加算操作子を用いて変換する.
一円プラスの操作子はプラス記号(+)で表しています.数値の前に置いて、数学書で言っているプラス記号と同じです.数値には何の影響もありません.例:
JavaScript文字列変換デジタル方法は主に4つあります.強制型変換、変換関数、JS変数の弱タイプの特徴を利用して変換し、1元加算オペレータを利用して変換します.
強制タイプ変換-Number
強制型変換を使用すると、他のタイプのものであっても、特定の値にアクセスできます.
ECMAScriptで使用できる3つのタイプの強制変換は以下の通りです.
Number()関数の変換規則は以下の通りです.
var num1 = Number(56); // 56
var num2 = Number(4.5); // 4.5
var num3 = Number(null); // 0
var num4 = Number(undefined); // NaN
var num5 = Number(true) // 1
var num6 = Number(""); // 0
var num7 = Number("00123"); // 123
var num8 = Number(" "); // NaN
var num9 = Number(new Object()); // NaN
変換関数JavaScriptは
parseInt()
とparseFloat()
の2つの変換関数を提供しています.前者は値を整数に変換し、後者は値を浮動小数点に変換します.これらの方法はStringタイプに対してのみ正しく動作することができます.この2つの関数は文字列を変換する時、主に数値モードに合うかどうかを見ます.他の種類に対してはNaN(Not a Number)を返します.parseInt()
は、最初の非スペース記号が見つかるまで、文字列の前のスペースを無視します.最初の文字が数字または負の文字でない場合、parseInt()
はNaNに戻り、つまりparseInt()
は空の列を変換するとNaN
に戻ります.parseInt
で数字の文字が見つかったら、第二の文字を解析し続けます.解析が完了したことを知っています.または、すべての後続文字が発生したことを知っています.一方、parseInt()
は、整数フォーマットを識別してもよく、文字列が「0 x」で始まり、後に数字またはabcdefと続くと、16進数変換として扱われる.var num1 = parseInt("2.5"); // 2
var num2 = parseInt("0xA"); // 10( )
var num3 = parseInt("70"); // 70
var num4 = parseInt("123 "); // 123
var num5 = parseInt("") // NaN
var num6 = parseInt(null); // NaN
var num7 = parseInt(undefined); // NaN
parseInt()
は、使用時に、文字列全体にプリアンブルが存在すると、解析の進数が異なり、ChromeおよびFireFoxでは、プリアンブルのゼロは無視されるが、IEの低バージョンブラウザでは、8進数のフラグと見なされることに留意されたい.たとえば:var num = parseInt("0123");
IEの低バージョンブラウザでは83に戻るが、Chrome、FireFoxでは123に戻る.parseFloat()
はparseInt()
の関数と同様であり、最初の文字から各文字を解析し始め、文字列の最後まで解析したり、無効な浮動小数点数字文字まで解析したりする.つまり、文字列の最初の小数点は有効ですが、2番目の小数点は無効です.parseFloat()
とparseInt()
の第二の違いは、parseFloat()
は、任意のブラウザにおいて、プリアンブルのゼロを無視することである.var num1 = parseFloat("2.5"); // 2.5
var num2 = parseFloat("0xA"); // 10( )
var num3 = parseFloat("70"); // 70
var num4 = parseFloat("3.1314e7"); // 31314000
var num5 = parseFloat("123.5 "); // 123.5
var num6 = parseFloat("") // NaN
var num7 = parseFloat(null); // NaN
var num8 = parseFloat(undefined); // NaN
追加:parseInt()
はparseFloat()
の第3の違いとして、parseInt()
の方法は、バイナリ、8進数、16進数、または他の任意の進数の文字列を整数に変換することもできる.基本はparseInt()
方法の第二のパラメータによって指定されており、例は以下の通りである.var num1 = parseInt("10", 2); // 2
var num2 = parseInt("10", 8); // 8
var num3 = parseInt("10", 10); // 10
var num4 = parseInt("AF", 16); // 175
しかし、パースピードFloat()には進数変換の機能がありません.JavaScript変数による弱タイプ変換
算術演算子の方式を利用して、文字列を数字に変換することもできます.たとえば:
var str = '012.345 ';
var x = str - 0;
var y = str * 1;
var m = str / 1;
上記の例では、jsの弱タイプの特徴を利用して算術演算のみを行い、文字列から数字へのタイプ変換を実現しました.注意:足し算は使用できません.文字列に対して+はコネクタを表します.
一元加算操作子を用いて変換する.
一円プラスの操作子はプラス記号(+)で表しています.数値の前に置いて、数学書で言っているプラス記号と同じです.数値には何の影響もありません.例:
var num = 25;
num = +num; // 25
しかし、非数値に1要素加算演算子を適用すると、この演算子はNumber()
の変換関数のようにこの値を変換します.つまり、ブール値trueとfalseは1と0に変換され、文字列値は一定の特殊な規則に従って解析され、対象は最初にvalueOf()
とtoString()
の方法を呼び出してから変換される値である.例:var str1 = "01";
var str2 = "1.1";
var str3 = "z";
var bool = true;
var num = 1.1
var obj = {
valueOf : function(){
return -1;
}
}
str1 = +str1; // 1
str2 = +str2; // 1.1
str3 = +str3; // NaN
bool = +bool; // 1
num = +num; // 1.1
obj = +obj; // -1
転載は明記してください.尹小芃槈から転載します.