Using ! and !! in Javascript
By: Syed Fazal
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 (discussed later):
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
Comment on this tutorial
- Data Science
- Android
- AJAX
- ASP.net
- C
- C++
- C#
- Cocoa
- Cloud Computing
- HTML5
- Java
- Javascript
- JSF
- JSP
- J2ME
- Java Beans
- EJB
- JDBC
- Linux
- Mac OS X
- iPhone
- MySQL
- Office 365
- Perl
- PHP
- Python
- Ruby
- VB.net
- Hibernate
- Struts
- SAP
- Trends
- Tech Reviews
- WebServices
- XML
- Certification
- Interview
categories
Subscribe to Tutorials
Related Tutorials
Use WinSCP to transfer log files remotely using Javascript
Verifying user input in JavaScript
Javascript to display client date and time on webpage
Getting Browser's height and width using Javascript
Highlighting text on a page using CSS
Scrolling message on the status bar using Javascript
Diabling Right Click option in a browser using Javascript
Password protect a web page using Javascript
Using revealTrans to do page transitions in Javascript
Form validation using Javascript
window.frames[i] in Javascript
Math object and Math functions in Javascript