I am confused in understanding this "9">"099" returns true and "9">"99" returns false(9 is just an example, it is happening like "x">"xabc" returns false and "x">"abc" returns true, where a is smaller than x but abc is greater tha x and a,b,c,x are numbers). Thanks in advance.
Java String compareTo() Method The method returns 0 if the string is equal to the other string. A value less than 0 is returned if the string is less than the other string (less characters) and a value greater than 0 if the string is greater than the other string (more characters).
JavaScript Greater-than or Equal-to (<=) Comparison Operator is used to check if the first operand is greater than or equal to the second operand. Greater-than or Equal-to operator returns a boolean value.
In JavaScript, strings can be compared based on their “value”, “characters case”, “length”, or “alphabetically” order: To compare strings based on their values and characters case, use the “Strict Equality Operator (===)”.
it is happening like "x">"xabc" returns true and "x">"abc" returns false, where a is smaller than x but abc is greater tha x and a,b,c,x are numbers)
Yes (except that "abc" is not greater than "x", and those are characters, not numbers). It's a textual comparison, the numbers in the strings are not converted to numbers before comparing them. So the comparison works character by character, stopping the first time it finds a difference. In your "99" > "099" case, since the "9" in the left-hand string is greater than the "0" in the right-hand string, the result is determined by just the first character. (The same thing happens in "x" > "abc", because the "x" is greater than the "a".)
Note that there's a very big difference between:
console.log("99" > "099"); // "true"
and
console.log(99 > "099"); // "false"
In the latter case, because one of the operands is a number, the JavaScript engine will try to convert the other operand into a number and then compare the numbers. In the former case, because both operands are strings, it won't, it'll do a textual comparison.
Side note: Be careful of numeric strings starting with 0 (like "099"). If they end up being implicitly converted to a number, they may get treated as octal (base 8) depending on the JavaScript engine being used.
x>abc  is returns true because x has ascii value more than a
but x>xbc is false though x has ascii value equal to x, but for the second character in both the string, the first string x has only one character, while the second string xbc has b as second character..
in x>abc
x is compared with a, when in first character position x is greater than a, hence it returns true
in second example x>xbc, first x is compared with x, which returns 0, since both have same ascii value..
but then b is compared with "" since "x" has only "x" while "xbc" has "b" as second charatcer.. being in existence hence xb is greater than x
so it returns false
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With