Home>Article>Web Front-end> A brief introduction to the parseInt function in js
This article introduces the parseIntfunctioninJs. Friends in need can refer to
from very popular examples Speaking of parseInt("09")==0.
parseInt(number,type) If this function is not followed by the second parameter to represent the base, the default is decimal.
For example, parseInt("010",10) is the decimal result: 10,
parseInt("010",2) is the binary result: 2,
parseInt("010" ,8) is the result of octal system: 8,
parseInt("010",16) is the result of binary system: 16.
Let me talk about the following: when the base unit is not specified, the default is decimal, but: if the Number inside starts with 0, it is considered to be octal, and if it starts with 0x, it is considered to be octal. I think it's hexadecimal.
parseInt("10")==>parseInt("010",10)===>10parseInt("010")==>parseInt("010",8)==>8parseInt( "0x10")==>parseInt("010",16)==>16.
It went very smoothly here.
Many things are not as smooth as expected, for example, if Number is not us How do you explain the normal numbers given? After checking some information, this is what it says:
parseInt(Number) If the middle Number encounters something that is not a number (0-9), the parsing will be interrupted, and only the value before it is not a number will be used for calculation: such as parseInt ("100x"), which is equivalent to parseInt("100")===》parseInt("100",10)==>100, and parseInt("0100x")===>parseInt("0100 ")===>parseInt("100",8)===>64.
One thing we seem to have ignored here is that there is an x in the hexadecimal system. It is not a number. Is it an encounter? Even x was ignored. After trying it, I found that under this special treatment,
For example, parseInt("0x10")===>parseInt("10",16)===>16 is consistent with the top result, but it is consistent with the top result. What I just said is that if characters are not automatically parsed, it should be understood as parseInt("0"), which is contrary to the rules.
It should be noted here that the Number in parseInt is like this. If the first one is not 0 and is not a character, it is considered to be decimal. Everything will be executed as usual, and it will stop when it encounters a letter. And if the first one is 0, you need to pay attention to the following one. If it is Just follow the rules we mentioned above to stop parsing when encountering non-digits. For example, parseInt("0xt")==>parseInt("0x")==>parseInt("",16) is NaN.
To summarize, the value in parseInt(Number): If the first digit is not 0, it will stop parsing when it encounters a letter, and parse the value in front of the letter as a decimal. If the first one is The value of a letter is empty, and the empty value becomes NaN,
For example: parseInt("a")==>parseInt("",10)==>NaN.parseInt("10a")==>parseInt ("10")==>parseInt("10",10)==>10;
If the first digit is 0 and the second digit is not x, it will stop parsing when it encounters a letter as above. And parse the value in front of the letter as octal, for example: parseInt("0a")==>parseInt("0")==>parseInt("0",10)==>0.PS : This is a bit special, because 0a is parsed into 0, and it does not have the structure to be regarded as an octal system. The following one is obvious.
parseInt("010a")==>parseInt("010")==>parseInt("10",8)==>8;If the first digit is 0 and the second digit is x Then, as above, it stops parsing when it encounters letters, and parses the value in front of the letters as hexadecimal, for example: parseInt("0xt")==>parseInt("",16)==>NaN .parseInt("0x12t")==>parseInt("12",16)==>18.
The above is the detailed content of A brief introduction to the parseInt function in js. For more information, please follow other related articles on the PHP Chinese website!