Home  >  Article  >  Web Front-end  >  How to force conversion of numerical values ​​in javascript? (Method summary)

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

不言
不言Original
2018-09-20 17:45:473117browse

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

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
  • 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

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

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进制

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!

Statement:
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

Related articles

See more