JavaScript Tutorial/Operators/Relational Operators

Материал из Web эксперт
Версия от 08:24, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

A Comparison Operator returns boolean variable

<html>
<head>
<title>A Comparison Operator Demo</title>
<script language="javascript" type="text/javascript">
<!--
var myVar = 2.5;
alert(myVar < 3);
//-->
</script>
</head>
<body>
<h1>A Comparison Operator Demo</h1>
</body>
</html>


Equal and Not Equal

<html>
<head>
<title>A Simple Page</title>
<script language="JavaScript">
<!--
var x = 0;
while (x < 10)
{
    x++;
    if (x % 2 != 0)
    {
    continue;
    }
    document.write(x);
}
//  -->
</script>
</head>
<body>
</body>
</html>


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

<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("<BR>The == operator with type- ");
    document.write("conversion turned off returns: ");
    document.write(3=="3");
</SCRIPT>
</HTML>


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

<html>
    <script language="JavaScript">
    <!--
    str = new String("112");
    if(str > 68)
      document.write("112 is greater than 23");
    else
      document.write("Returned FALSE!");
    -->
    </script>
</html>


>= (Greater Than or Equal)

<html>
    <script language="JavaScript">
    <!--
    str = new String("95");
    if(str >= 44)
      document.write("95 is greater than or equal to 44");
    else
      document.write("Returned FALSE!");
    -->
    </script>
</html>


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.



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


===(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.



<html>
    <script language="JavaScript">
    <!--
    if("326"===326){
      document.write("The string 326 is NOT equal to the number 326");
    }
    else
    {
      document.write("The string 326 is EQUAL to the number 326");
    }
    -->
    </script>
</html>


<html>
    <script language="JavaScript">
    <!--
    str = new String("45");
    if(str < 68)
      document.write("45 is less than 68");
    else
      document.write("Returned FALSE!");
    -->
    </script>
</html>


!== (Non-Identity)

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



<html>
    <script language="JavaScript">
    <!--
    if("87" !== 87)
    {
      document.write("The string 87 is NOT equal to the number 87");
    }
    else
    {
      document.write("The string 87 is EQUAL to the number 87");
    }
    -->
    </script>
</html>


!= (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.



<html>
    <script language="JavaScript">
    <!--
    if("523" != 523) {
      document.write("The string 523 is NOT equal to the number 523");
    } else {
      document.write("The string 523 is EQUAL to the number 523");
    }
    -->
    </script>
</html>


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.



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