Home > Web Front-end > JS Tutorial > body text

How to force conversion of numerical values ​​in javascript? (Method summary)

不言
Release: 2018-09-20 17:45:47
Original
3121 people have browsed it

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
Copy after login
  • When the parameter is Boolean type: true->1;fasle->0;

console.log(Number(true));  //1
console.log(Number(false)); //0
Copy after login
  • When the parameter is undefined: its value is NaN

console.log(Number(undefined)); //NaN
Copy after login
  • When the parameter is null:

console.log(Number(null));    //0
Copy after login
  • 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
Copy after login
//数字+字符或全字符字符串
console.log(Number('a123'));  //NaN
console.log(Number("false")); //NaN
console.log(Number("a123"));  //NaN
Copy after login
//空串或者空格字符串
console.log(Number("\t\n"));   //0
console.log(Number("  "));     //0
console.log(Number(""));       //0
Copy after login
  • 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
Copy after login

parseInt(x,y): 2 parameters,

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 there is no parameter y:

  • 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
Copy after login
  • 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
Copy after login
  • 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
Copy after login
  • 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
Copy after login
  • 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
Copy after login

parseFloat(x): A parameter that can correctly represent floating point numbers and scientific notation, but cannot correctly represent string base numbers. The rest is the same as parseInt(x, 10) Same as

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
Copy after login

String(), .toString()

  • 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进制
Copy after login

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!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template