Home > Article > Web Front-end > How to force conversion of numerical values in javascript? (Method summary)
The content of this article is about how to force conversion of numerical values in javascript? (Method summary) has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.
Javascript data types are divided into basic data types and reference data types
Basic data: Number, Boolean, Undefined, Null, String;
Reference data: Object;
When 0.000...01, when the decimal point is greater than or equal to 7 digits, it will be automatically converted to scientific notation
When 20000...00, when the integer part is greater than or equal to 22 digits, it will be automatically converted into Scientific notation.
Number(x): one parameter;
When the parameter is Number type: it can be output correctly;
console.log(Number(1)); //1 console.log(Number(1e-7)); //1e-7 console.log(Number(0b111)); //7 console.log(Number(NaN)); //NaN
When the parameter is Boolean type: true->1;fasle->0;
console.log(Number(true)); //1 console.log(Number(false)); //0
When the parameter is undefined: its value is NaN
console.log(Number(undefined)); //NaN
When the parameter is null:
console.log(Number(null)); //0
When the parameter is String type:
//数字字符串 console.log(Number("123")); //123 console.log(Number("-123")); //-123 console.log(Number("12.3")); //12.3 console.log(Number("1e-7")); //1e-7 console.log(Number("0xff")); //255 console.log(Number("00123")); //123 console.log(Number(" 123")); //123 console.log(Number("\t\n123")); //123
//数字+字符或全字符字符串 console.log(Number('a123')); //NaN console.log(Number("false")); //NaN console.log(Number("a123")); //NaN
//空串或者空格字符串 console.log(Number("\t\n")); //0 console.log(Number(" ")); //0 console.log(Number("")); //0
When the parameter type is an object: perform .valueOf() first, and if the object is obtained, perform toString() until the basic data type is obtained. For example {}.valueOf().toString() = "[object Object]" The final number result is NaN
console.log(Number({})); //NaN console.log(Number([1])); //1 console.log(Number([1,2])); //NaN cosole.log(Number([])); //0
The process is: first convert String(x) into a string, and then convert the value into a decimal number using the y base as the base. If not filled in, it will be 10. The range of y: [2,36]
When the x parameter is number: It is worth noting that values of type 0.001, 1e-7 will be rounded off after the decimal point (e) The value of , returns the previous one.
console.log(parseInt(123)); //123 console.log(parseInt(1e-7)); //1 console.log(parseInt(0xff)); //255 console.log(parseInt(NaN)); //NaN console.log(parseInt(0.00001)); //0
x parameter is boolean, undefined, null:
console.log(parseInt(true)); //NaN console.log(parseInt(false)); //NaN console.log(parseInt(undefined)); //NaN console.log(parseInt(null)); //NaN
x parameter When it is a String type: You need to pay attention to the space-time string, space string, and numeric characters
console.log(parseInt("")); //NaN console.log(parseInt("-123")); //-123 console.log(parseInt(" ")); //NaN console.log(parseInt("\t\n")); //NaN console.log(parseInt("a123")); //NaN console.log(parseInt("123a")); //123
When the parameter x is an object: The same applies to .valueOf(), If the object is obtained, then perform toString() until the basic data type is obtained, and then output according to the above rules
console.log(parseInt({1:2})); //"[object Object]"->NaN console.log(parseInt([])); //""->NaN console.log(parseInt([1,2])); //"1,2"->//1
with parameters x, y, when When y is 0, null, undefined, or NaN, y will be ignored and defaulted to 10. If it exceeds the range of [2, 36], it will return NaN. When the x value can be expressed in y base, it will return NaN. The rest can be represented by as many numbers as possible. Several
console.log(parseInt("f",2)); //NaN console.log(parseInt("11f",2); //3 console.log(parseInt("123",37)); //NaN console.log(parseInt("0xff",0)); //255 console.log(parseInt("0xff",NaN)); //255 console.log(parseInt("ff",[])); //NaN
console.log(parseFloat(0xff)); //255 console.log(parseFloat("0xff")); //0 console.log(parseInt("0xff")); //255 个人猜测parseInt(x,y)有y的存在所以能正确输出 console.log(parseFloat(1e22)); //1e22 console.log(parseFloat(1e-7)); //1e-7 console.log(parseFloat("00123")); //123 console.log(parseFloat(" ")); //NaN
First: undefined, null has no toString() attribute and can only pass String(undefiend)
Second: y.toString(x), which means to convert the target value y into an x-based value
console.log(String(null)); //"null" console.log(0xff.toString(2)); //"11111111" console.log(oxff.toString()); //"255" 不填默认10进制
The above is the detailed content of How to force conversion of numerical values in javascript? (Method summary). For more information, please follow other related articles on the PHP Chinese website!