Difference Between == and === : A Simple Comparison
2014-07-05 01:59
405 查看
Beginners in JavaScript may be confused with the two equal operators, === and ==. So what is the difference between them?
Consider the following example:
The first and third statements use the == operator so true is printed to the console. The other two statements give false as the results. So Why?
Actually the two operators behave almost the same. Just that the === operator prohibitstype conversion of operands. So the twooperands of the
=== operator need to be exactly the same (both the value and the type) to give a result of true.
Douglas Crockford gives the following advice in his famous book, JavaScript: The Good Parts: (and I agree with him)
The evil twins do the right thing when the operands are of the same type, but if they are of different
types, they attempt to coerce the values. the rules by which they do that are complicated and unmemorable.
...
The lack of transitivity is alarming. My advice is to never use the evil twins. Instead, always
use
All of the comparisons just shown produce
the
Consider the following example:
console.log( false == "" ); console.log( false === "" ); console.log( 5 == "5" ); console.log( 5 === "5" );
The first and third statements use the == operator so true is printed to the console. The other two statements give false as the results. So Why?
Actually the two operators behave almost the same. Just that the === operator prohibitstype conversion of operands. So the twooperands of the
=== operator need to be exactly the same (both the value and the type) to give a result of true.
Douglas Crockford gives the following advice in his famous book, JavaScript: The Good Parts: (and I agree with him)
The evil twins do the right thing when the operands are of the same type, but if they are of different
types, they attempt to coerce the values. the rules by which they do that are complicated and unmemorable.
...
The lack of transitivity is alarming. My advice is to never use the evil twins. Instead, always
use
===and
!==.
All of the comparisons just shown produce
falsewith
the
===operator.
相关文章推荐
- What is the difference between Simple, Advanced and Parameter data sets?
- Difference between Class.forName() and ClassLoader.loadClass()
- Difference between ref and value
- BigDecimal(-)Difference of BigDecimal toString() method between JDK1.4 and above version
- What is the difference between Implicit SSL and Explicit SSL?
- .NET Basics:difference between new and override in inherite
- What is the difference between WinRT, UWP and WPF?
- The difference between SendMessage and PostMessage
- What is the difference between objectForKey and valueForKey?
- What is the difference between SMOD and CMOD?
- What is the difference between ContentPresenter and ContentControl?
- What is the difference between a URI, a URL and a URN
- Difference between CComPtr and CComQIPtr
- The difference between Bundle and Deploy
- Difference between DOM and SAX Parsers in Java
- What is the difference between “setup” and “install” based on computer programs?
- Java Difference between Private and Protected
- Difference between IE and Firefox when using percent as font-size unit
- Difference between sleep() and wait()?
- The difference between 'typedef' and '#define'