JavaScript Tutorial/Operators/Relational Operators

Материал из Web эксперт
Перейти к: навигация, поиск

A Comparison Operator returns boolean variable

   <source lang="javascript">

<html> <head> <title>A Comparison Operator Demo</title> <script language="javascript" type="text/javascript">

</script> </head> <body>

A Comparison Operator Demo

</body> </html></source>


Equal and Not Equal

   <source lang="javascript">

<html> <head> <title>A Simple Page</title> <script language="JavaScript">

</script> </head> <body> </body> </html></source>


The equal operator in JavaScript is the double equal sign (==), and it returns true if both operands are equal.

The not equal operator is the exclamation point followed by an equal sign (!=), and it returns true if operands are not equal.

Both operators do conversions in order to determine if two operands are equal.

When performing conversions, follow these basic rules:

  1. If an operand is a Boolean value, convert it into a numeric value before checking for equality. A value of false converts to 0; whereas a value of true converts to 1.
  2. If one operand is a string and the other is a number, attempt to convert the string into a number before checking for equality.
  3. If one operand is an object and the other is a string, attempt to convert the object to a string (using the toString() method) before checking for equality.
  4. If one operand is an object and the other is a number, attempt to convert the object to a number before checking for equality.
  5. Values of null and undefined are equal.
  6. Values of null and undefined cannot be converted into any other values for equality checking.
  7. If either operand is NaN, the equal operator returns false and the not equal operator returns true.
  8. If both operands are NaN, the equal operator returns false because, by rule, NaN is not equal to NaN.
  9. If both operands are objects, then the reference values are compared.
  10. If both operands point to the same object, then the equal operator returns true. Otherwise, the two are not equal.

The following table lists some special cases and their results:

Expression Value null == undefined true "NaN" == NaN false 5 == NaN false NaN == NaN false NaN != NaN true false == 0 true true == 1 true true == 2 false undefined == 0 false null == 0 false "5" == 5 true

Equal Operator

If the values are equal, true is returned from the equal operator (==).

If the values are not equal, false is returned from the operation.

JavaScript attempts to convert the operands to the same data type before comparing the values for all versions of JavaScript except 1.2. JavaScript adheres to the following rules when performing type-conversion:

True is converted to the number 1, and false is converted to zero before being compared.

If either of the operands is NaN, the equality operator returns false.

Null and undefined are equal.

Null and undefined are not equal to 0 (zero), "" , or false.

If a string and a number are compared, attempt to convert the string to a number and then check for equality.

If an object and a string are compared, attempt to convert the object to a string and then check for equality.

If an object and a number are compared, attempt to convert the object to a number and then check for equality.

If both operands of an equality operation are objects, the address of the two objects are check for equality.

By setting the LANGUAGE attribute of the <source lang="javascript"> <HTML> <SCRIPT LANGUAGE="JAVASCRIPT1.3"> // Type-conversion turned on document.write("The == operator with type-conversion turned on returns: "); document.write(3=="3"); </SCRIPT> <SCRIPT LANGUAGE="JAVASCRIPT1.2"> // Type-conversion turned off document.write("
The == operator with type- "); document.write("conversion turned off returns: "); document.write(3=="3"); </SCRIPT> </HTML></source> <p>Quote from:

Pure JavaScript (Paperback)

by R. Allen Wyke (Author), Jason Gilliam (Author), Charlton Ting (Author)

# Paperback: 1448 pages

# Publisher: Sams; 1st edition (August 1999)

# Language: English

# ISBN-10: 0672315475

# ISBN-13: 978-0672315473

> (Greater Than)

   <source lang="javascript">

<html>

   <script language="JavaScript">
   
   </script>

</html></source>


>= (Greater Than or Equal)

   <source lang="javascript">

<html>

   <script language="JavaScript">
   
   </script>

</html></source>


Identically Equal and Not Identically Equal

The identically equal and not identically equal operators do the same thing as equal and not equal,

except that they do not convert operands before testing for equality.

The identically equal operator is represented by three equal signs (===) and only returns true if the operands are equal without conversion.



   <source lang="javascript">

var sNum = "55"; var iNum = 55; alert(sNum == iNum); //outputs "true" alert(sNum ==="iNum); //outputs "false""></source>


===(Identity)

The identity operator compares the first operand to the second operand.

If the value on the left is equal to the value on the right side of the operator, true is returned from operation.

If the values are not equal, false is returned.

No type-conversion is performed on the operands before the comparison is made.



   <source lang="javascript">

<html>

   <script language="JavaScript">
   
   </script>

</html></source>


   <source lang="javascript">

<html>

   <script language="JavaScript">
   
   </script>

</html></source>


!== (Non-Identity)

No type-conversion is performed on the expressions before the comparison is made.



   <source lang="javascript">

<html>

   <script language="JavaScript">
   
   </script>

</html></source>


!= (Not Equal)

JavaScript and Microsoft JScript attempt to convert the expressions to the same data type before evaluating the not equal operation using the following rules:

True is converted to the number 1, and false is converted to zero before being compared.

If either of the operands is NaN, the equality operator returns false.

Null and undefined are equal.

Null and undefined are not equal to 0 (zero), "" , or false.

If a string and a number are compared, attempt to convert the string to a number and then check for equality.

If an object and a string are compared, attempt to convert the object to a string and then check for equality.

If an object and a number are compared, attempt to convert the object to a number and then check for equality.

If both operands of an equality operation are objects, the address of the two objects are checked for equality.



   <source lang="javascript">

<html>

   <script language="JavaScript">
   
   </script>

</html></source>


Quote from:

Pure JavaScript (Paperback)

by R. Allen Wyke (Author), Jason Gilliam (Author), Charlton Ting (Author)

# Paperback: 1448 pages

# Publisher: Sams; 1st edition (August 1999)

# Language: English

# ISBN-10: 0672315475

# ISBN-13: 978-0672315473

not identically equal operator

The not identically equal operator is represented by an exclamation point followed by two equal signs (!==) and returns true only if the operands are not equal without conversion.



   <source lang="javascript">

var sNum = "55"; var iNum = 55; alert(sNum != iNum); //outputs "false" alert(sNum !== iNum); //outputs "true"</source>