- Object-Oriented JavaScript(Second Edition)
- Stoyan Stefanov Kumar Chetan Sharma
- 297字
- 2021-08-13 16:19:28
Comparison
There's another set of operators that all return a Boolean value as a result of the operation. These are the comparison operators. The following table lists them together with example uses:

Note that NaN
is not equal to anything, not even itself:
> NaN == NaN;
false
Undefined and null
If you try to use a non-existing variable, you'll get an error:
> foo;
ReferenceError: foo is not defined
Using the typeof
operator on a non-existing variable is not an error. You get the string "undefined"
back:
> typeof foo;
"undefined"
If you declare a variable without giving it a value, this is, of course, not an error. But, the typeof
still returns "undefined"
:
> var somevar;
> somevar;
> typeof somevar;
"undefined"
This is because when you declare a variable without initializing it, JavaScript automatically initializes it with the value undefined
:
> var somevar;
> somevar === undefined;
true
The null
value, on the other hand, is not assigned by JavaScript behind the scenes; it's assigned by your code:
> var somevar = null; null > somevar; null > typeof somevar; "object"
Although the difference between null
and undefined
is small, it could be critical at times. For example, if you attempt an arithmetic operation, you get different results:
> var i = 1 + undefined; > i; NaN > var i = 1 + null; > i; 1
This is because of the different ways null
and undefined
are converted to the other primitive types. The following examples show the possible conversions:
- Conversion to a number:
> 1 * undefined; NaN > 1 * null; 0
- Conversion to a Boolean:
> !!undefined; false > !!null; false
- Conversion to a string:
> "value: " + null; "value: null" > "value: " + undefined; "value: undefined"
- Mobile Web Performance Optimization
- C語言程序設(shè)計(jì)(第3版)
- Learn to Create WordPress Themes by Building 5 Projects
- 算法訓(xùn)練營:入門篇(全彩版)
- Android 7編程入門經(jīng)典:使用Android Studio 2(第4版)
- 低代碼平臺(tái)開發(fā)實(shí)踐:基于React
- Mobile Device Exploitation Cookbook
- Hacking Android
- Android移動(dòng)應(yīng)用項(xiàng)目化教程
- 高效使用Greenplum:入門、進(jìn)階與數(shù)據(jù)中臺(tái)
- WordPress Search Engine Optimization(Second Edition)
- SQL Server 2012 數(shù)據(jù)庫應(yīng)用教程(第3版)
- Beginning C# 7 Hands-On:The Core Language
- FusionCharts Beginner’s Guide:The Official Guide for FusionCharts Suite
- Pandas 1.x Cookbook