1

    console.log(parseInt('01abbb')) // 1
    console.log(parseInt('31xyz'))  // 31
    console.log(parseInt('zyz31'))  // NaN
    console.log(parseInt('31xyz1')) // 31

Does parseInt() ignore the suffix from the index where the character happens not to be an integer?

0

4 Answers 4

3

You only get number till where it is meaningful when converting from string to number.

console.log(parseInt('01abbb')) // 1 -> it is started by 01 before chars
console.log(parseInt('31xyz'))  // 31 -> it is started by 31 before chars
console.log(parseInt('zyz31'))  // NaN -> it is not started by numbers
console.log(parseInt('31xyz1')) // 31 -> it is started by 31 before chars
Sign up to request clarification or add additional context in comments.

Comments

1

ParseInt reads until it stops seeing a number. Since xyz is not a number, it returns NaN (Not a Number).

Comments

1

From Microsoft's docs:

If no prefix of numString can be successfully parsed into an integer, NaN(not a number) is returned.

So yes, only parsable prefixes are returned.

Comments

1

For more information please refer to documentation

Note: Only the first number in the string is returned!

Note: Leading and trailing spaces are allowed.

Note: If the first character cannot be converted to a number, parseInt() returns NaN.

Note: Older browsers will result parseInt("010") as 8, because older versions of ECMAScript, (older than ECMAScript 5, uses the octal radix (8) as default when the string begins with "0". As of ECMAScript 5, the default is the decimal radix (10).

1 Comment

Kudos for this information "If the first character cannot be converted to a number, parseInt() returns NaN"

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.