Programming Tutorials

Using ! and !! in Javascript

By: Syed Fazal in Javascript Tutorials on 2008-08-15  

The logical NOT operator in JavaScript is the same as in C and Java, indicated by an exclamation point ( ! ). Unlike logical OR and logical AND operators, the logical NOT always returns a Boolean value.

The logical NOT operator behaves in the following way:

  • If the operand is an object, false is returned.
  • If the operand is the number 0, true is returned.
  • If the operand is any number other than 0, false is returned.
  • If the operand is null , true is returned.
  • If the operand is NaN , true is returned.
  • If the operand is undefined , an error occurs.
  • This operator is typically used in control loops 
var bFound = false;
var i = 0;
while (!bFound) {
if (aValues[i] == vSearchValue) {
bFound = true;
} else {
i++;
} }

In this example, a Boolean variable ( found ) keeps track of the success of a search. When the item in question is located, found is set to true , which causes !found to equal false , meaning that execution will escape the while loop.

The logical NOT operator is also useful in determining the Boolean equivalent of an JavaScript variable. In order to do this, you use two logical NOT operators in a row. The first NOT returns a Boolean value no matter what operand it is given. The second NOT negates that Boolean value and so gives the true Boolean value of a variable.

var bFalse = false;
var sBlue = "blue";
var iZero = 0;
var iThreeFourFive = 345;
var oObject = new Object;
document.write("The Boolean value of bFalse is " + (!!bFalse));
document.write("<br />The Boolean value of sBlue is " + (!!sBlue));
document.write("<br />The Boolean value of iZero is " + (!!iZero));
document.write("<br />The Boolean value of iThreeFourFive is " + (!!iThreeFourFive));
document.write("<br />The Boolean value of oObject is " + (!!oObject));

Running this example yields the following output:

The Boolean value of bFalse is false
The Boolean value of sBlue is true
The Boolean value of iZero is false
The Boolean value of iThreeFourFive is true
The Boolean value of oObject is true





Add Comment

* Required information
1000

Comments

No comments yet. Be the first!

Most Viewed Articles (in Javascript )

Latest Articles (in Javascript)