034_等性运算符

1. 判断两个变量是否相等是程序设计中非常重要的运算。在处理原始值时, 这种运算相当简单, 但涉及对象, 任务就稍有点复杂。

2. JavaScript提供了两套等性运算符: 等号和非等号用于处理原始值, 全等号和非全等号用于处理对象。

3. 等号和非等号

3.1. 在JavaScript中, 等号由双等号(==)表示, 当且仅当两个运算数相等时, 它返回true。

3.2. 非等号由感叹号加等号(!=)表示, 当且仅当两个运算数不相等时, 它返回true。

3.3. 等号和非等号为确定两个运算数是否相等, 这两个运算符都会进行类型转换(两个运算数不是相同类型)。执行类型转换的规则如下:

  • true、new Boolean(true)在等性运算中会尝试转为数字1; false、new Boolean(false)在等性运算中会尝试转为数字0。
  • new Number()这一类的数字对象在等性运算中会尝试转为原始数字。
  • 空字符串字面量和数字类型或布尔类型检查等性, 它会转为0; new String()和数字字面量布尔字面量检查等性, 它会转为0。
  • 字符串字面量和数字类型布尔类型检查等性, 会尝试把整个字符串字面量转为数字; 字符串对象和数字字面量布尔字面量检查等性, 会尝试把字符串对象转为数字。
  • []和new Array()和数字字面量布尔字面量检查等性, 它会转为0。
  • 如果一个运算数是对象, 另一个是字符串字面量, 在检查相等性之前, 要尝试把对象转换成字符串(调用对象的toString()方法转成字符串类型)。
  • 不能把 null 和 undefined 转换成其他值。

3.4. 在比较时, 该运算符还遵守下列规则:

  • 值null和undefined相等。
  • 如果某个运算数是NaN, 等号将返回false, 非等号将返回true。
  • 即使两个数都是NaN, 等号仍然返回false, 因为根据规则, NaN不等于NaN。
  • 两个字符串变量的内容相等, 这两个变量相等(字符串'NaN'等于'NaN')
  • 空字符串字面量等于空字符串对象。
  • 空字符串字面量等于空数组字面量和空数组对象。
  • 空字符串对象不等于空数组字面量和空数组对象。
  • 空数组字面量不等于空数组对象。
  • 如果两个运算数都是对象, 那么比较的是它们的引用值。如果两个运算数指向同一对象, 那么等号返回true, 否则两个运算数不等。

3.5. 例

3.5.1 代码

<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="utf-8" />
		<title>等号和非等号</title>

		<style type="text/css">
			.span1 {
				position: absolute;
				left: 440px;
			}
			.span2 {
				position: absolute;
				left: 1400px;
			}
		</style>
	</head>
	<body>
		<script type="text/javascript">
			var ua = undefined;
			var la = null;
			var ba = true, bb = false, bc = new Boolean(true), bd = new Boolean(false);
			var na = 0, nb = 1, nc = NaN, nd = Infinity, ne = -Infinity, nf = new Number(), ng = new Number(1);
			var sa = '', sb = '0', sc ='1', sd = '1abc', se = 'NaN', sf = 'Infinity', sg = '-Infinity', sh = '高性能JavaScript', si = '[object Object]', sj = new String(), sk = new String('1');
			var aa = [], ab = ['高性能JavaScript'], ac = new Array();
			var oa = {}, ob = {id: 1001, name: 'zhangsan'}, oc = new Object();

			document.write('值null和undefined相等:<br />');
			document.write('<span>(' + ua + ' == ' + ua + ') = ' + (ua == ua) + '</span><span class="span1">(' + ua + ' != ' + ua + ') = ' + (ua != ua) + '</span><br />');
			document.write('<span>(' + ua + ' == ' + la + ') = ' + (ua == la) + '</span><span class="span1">(' + ua + ' != ' + la + ') = ' + (ua != la) + '</span><br />');
			document.write('<span>(' + la + ' == ' + la + ') = ' + (la == la) + '</span><span class="span1">(' + la + ' != ' + la + ') = ' + (la != la) + '</span><hr />');

			document.write('NaN不等于任何值, 也不等于NaN:<br />');
			document.write('<span>(' + si + ' == ' + ua + ') = ' + (nc == ua) + '</span><span class="span1">(' + nc + ' != ' + ua + ') = ' + (nc != ua) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + la + ') = ' + (nc == la) + '</span><span class="span1">(' + nc + ' != ' + la + ') = ' + (nc != la) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + ba + ') = ' + (nc == ba) + '</span><span class="span1">(' + nc + ' != ' + ba + ') = ' + (nc != ba) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + bb + ') = ' + (nc == bb) + '</span><span class="span1">(' + nc + ' != ' + bb + ') = ' + (nc != bb) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + bc + ') = ' + (nc == bc) + '</span><span class="span1">(' + nc + ' != ' + bc + ') = ' + (nc != bc) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + bd + ') = ' + (nc == bd) + '</span><span class="span1">(' + nc + ' != ' + bd + ') = ' + (nc != bd) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + na + ') = ' + (nc == na) + '</span><span class="span1">(' + nc + ' != ' + na + ') = ' + (nc != na) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + nb + ') = ' + (nc == nb) + '</span><span class="span1">(' + nc + ' != ' + nb + ') = ' + (nc != nb) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + nc + ') = ' + (nc == nc) + '</span><span class="span1">(' + nc + ' != ' + nc + ') = ' + (nc != nc) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + nd + ') = ' + (nc == nd) + '</span><span class="span1">(' + nc + ' != ' + nd + ') = ' + (nc != nd) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + ne + ') = ' + (nc == ne) + '</span><span class="span1">(' + nc + ' != ' + ne + ') = ' + (nc != ne) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + nf + ') = ' + (nc == nf) + '</span><span class="span1">(' + nc + ' != ' + nf + ') = ' + (nc != nf) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + ng + ') = ' + (nc == ng) + '</span><span class="span1">(' + nc + ' != ' + ng + ') = ' + (nc != ng) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + sa + ') = ' + (nc == sa) + '</span><span class="span1">(' + nc + ' != ' + sa + ') = ' + (nc != sa) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + sb + ') = ' + (nc == sb) + '</span><span class="span1">(' + nc + ' != ' + sb + ') = ' + (nc != sb) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + sc + ') = ' + (nc == sc) + '</span><span class="span1">(' + nc + ' != ' + sc + ') = ' + (nc != sc) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + sd + ') = ' + (nc == sd) + '</span><span class="span1">(' + nc + ' != ' + sd + ') = ' + (nc != sd) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + se + ') = ' + (nc == se) + '</span><span class="span1">(' + nc + ' != ' + se + ') = ' + (nc != se) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + sf + ') = ' + (nc == sf) + '</span><span class="span1">(' + nc + ' != ' + sf + ') = ' + (nc != sf) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + sg + ') = ' + (nc == sg) + '</span><span class="span1">(' + nc + ' != ' + sg + ') = ' + (nc != sg) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + si + ') = ' + (nc == si) + '</span><span class="span1">(' + nc + ' != ' + si + ') = ' + (nc != si) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + sj + ') = ' + (nc == sj) + '</span><span class="span1">(' + nc + ' != ' + sj + ') = ' + (nc != sj) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + aa + ') = ' + (nc == aa) + '</span><span class="span1">(' + nc + ' != ' + aa + ') = ' + (nc != aa) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + ab + ') = ' + (nc == ab) + '</span><span class="span1">(' + nc + ' != ' + ab + ') = ' + (nc != ab) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + ac + ') = ' + (nc == ac) + '</span><span class="span1">(' + nc + ' != ' + ac + ') = ' + (nc != ac) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + oa + ') = ' + (nc == oa) + '</span><span class="span1">(' + nc + ' != ' + oa + ') = ' + (nc != oa) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + ob + ') = ' + (nc == ob) + '</span><span class="span1">(' + nc + ' != ' + ob + ') = ' + (nc != ob) + '</span><br />');
			document.write('<span>(' + nc + ' == ' + oc + ') = ' + (nc == oc) + '</span><span class="span1">(' + nc + ' != ' + oc + ') = ' + (nc != oc) + '</span><hr />');

			document.write('空字符串字面量和数字类型或布尔类型检查等性, 它会转为0; new String()和数字字面量或布尔字面量检查等性, 它会转为0:<br />');
			document.write('<div style="float: left;"');
			document.write('<span>(' + sa + ' == ' + ba + ') = ' + (sa == ba) + '</span><span class="span1">(' + sa + ' != ' + ba + ') = ' + (sa != ba) + '</span><br />');
			document.write('<span>(' + sa + ' == ' + bb + ') = ' + (sa == bb) + '</span><span class="span1">(' + sa + ' != ' + bb + ') = ' + (sa != bb) + '</span><br />');
			document.write('<span>(' + sa + ' == ' + bc + ') = ' + (sa == bc) + '</span><span class="span1">(' + sa + ' != ' + bc + ') = ' + (sa != bc) + '</span><br />');
			document.write('<span>(' + sa + ' == ' + bd + ') = ' + (sa == bd) + '</span><span class="span1">(' + sa + ' != ' + bd + ') = ' + (sa != bd) + '</span><br />');
			document.write('<span>(' + sa + ' == ' + na + ') = ' + (sa == na) + '</span><span class="span1">(' + sa + ' != ' + na + ') = ' + (sa != na) + '</span><br />');
			document.write('<span>(' + sa + ' == ' + nb + ') = ' + (sa == nb) + '</span><span class="span1">(' + sa + ' != ' + nb + ') = ' + (sa != nb) + '</span><br />');
			document.write('<span>(' + sa + ' == ' + nc + ') = ' + (sa == nc) + '</span><span class="span1">(' + sa + ' != ' + nc + ') = ' + (sa != nc) + '</span><br />');
			document.write('<span>(' + sa + ' == ' + nd + ') = ' + (sa == nd) + '</span><span class="span1">(' + sa + ' != ' + nd + ') = ' + (sa != nd) + '</span><br />');
			document.write('<span>(' + sa + ' == ' + ne + ') = ' + (sa == ne) + '</span><span class="span1">(' + sa + ' != ' + ne + ') = ' + (sa != ne) + '</span><br />');
			document.write('<span>(' + sa + ' == ' + nf + ') = ' + (sa == nf) + '</span><span class="span1">(' + sa + ' != ' + nf + ') = ' + (sa != nf) + '</span><br />');
			document.write('<span>(' + sa + ' == ' + ng + ') = ' + (sa == ng) + '</span><span class="span1">(' + sa + ' != ' + ng + ') = ' + (sa != ng) + '</span></div>');

			document.write('<div style="float: left; margin-left: 560px;"');
			document.write('<span>(' + sj + ' == ' + ba + ') = ' + (sj == ba) + '</span><span class="span2">(' + sj + ' != ' + ba + ') = ' + (sj != ba) + '</span><br />');
			document.write('<span>(' + sj + ' == ' + bb + ') = ' + (sj == bb) + '</span><span class="span2">(' + sj + ' != ' + bb + ') = ' + (sj != bb) + '</span><br />');
			document.write('<span>(' + sj + ' == ' + bc + ') = ' + (sj == bc) + '</span><span class="span2">(' + sj + ' != ' + bc + ') = ' + (sj != bc) + '</span><br />');
			document.write('<span>(' + sj + ' == ' + bd + ') = ' + (sj == bd) + '</span><span class="span2">(' + sj + ' != ' + bd + ') = ' + (sj != bd) + '</span><br />');
			document.write('<span>(' + sj + ' == ' + na + ') = ' + (sj == na) + '</span><span class="span2">(' + sj + ' != ' + na + ') = ' + (sj != na) + '</span><br />');
			document.write('<span>(' + sj + ' == ' + nb + ') = ' + (sj == nb) + '</span><span class="span2">(' + sj + ' != ' + nb + ') = ' + (sj != nb) + '</span><br />');
			document.write('<span>(' + sj + ' == ' + nc + ') = ' + (sj == nc) + '</span><span class="span2">(' + sj + ' != ' + nc + ') = ' + (sj != nc) + '</span><br />');
			document.write('<span>(' + sj + ' == ' + nd + ') = ' + (sj == nd) + '</span><span class="span2">(' + sj + ' != ' + nd + ') = ' + (sj != nd) + '</span><br />');
			document.write('<span>(' + sj + ' == ' + ne + ') = ' + (sj == ne) + '</span><span class="span2">(' + sj + ' != ' + ne + ') = ' + (sj != ne) + '</span><br />');
			document.write('<span>(' + sj + ' == ' + nf + ') = ' + (sj == nf) + '</span><span class="span2">(' + sj + ' != ' + nf + ') = ' + (sj != nf) + '</span><br />');
			document.write('<span>(' + sj + ' == ' + ng + ') = ' + (sj == ng) + '</span><span class="span2">(' + sj + ' != ' + ng + ') = ' + (sj != ng) + '</span></div>');
			document.write('<hr style="clear: left;" />');

			document.write('字符串字面量和数字类型或布尔类型检查等性, 会尝试把整个字符串字面量转为数字; 字符串对象和数字字面量或布尔字面量检查等性, 会尝试把字符串对象转为数字:<br />');
			document.write('<div style="float: left;"');
			document.write('<span>(' + sb + ' == ' + ba + ') = ' + (sb == ba) + '</span><span class="span1">(' + sb + ' != ' + ba + ') = ' + (sb != ba) + '</span><br />');
			document.write('<span>(' + sb + ' == ' + bb + ') = ' + (sb == bb) + '</span><span class="span1">(' + sb + ' != ' + bb + ') = ' + (sb != bb) + '</span><br />');
			document.write('<span>(' + sb + ' == ' + bc + ') = ' + (sb == bc) + '</span><span class="span1">(' + sb + ' != ' + bc + ') = ' + (sb != bc) + '</span><br />');
			document.write('<span>(' + sb + ' == ' + bd + ') = ' + (sb == bd) + '</span><span class="span1">(' + sb + ' != ' + bd + ') = ' + (sb != bd) + '</span><br />');
			document.write('<span>(' + sb + ' == ' + na + ') = ' + (sb == na) + '</span><span class="span1">(' + sb + ' != ' + na + ') = ' + (sb != na) + '</span><br />');
			document.write('<span>(' + sb + ' == ' + nb + ') = ' + (sb == nb) + '</span><span class="span1">(' + sb + ' != ' + nb + ') = ' + (sb != nb) + '</span><br />');
			document.write('<span>(' + sb + ' == ' + nc + ') = ' + (sb == nc) + '</span><span class="span1">(' + sb + ' != ' + nc + ') = ' + (sb != nc) + '</span><br />');
			document.write('<span>(' + sb + ' == ' + nd + ') = ' + (sb == nd) + '</span><span class="span1">(' + sb + ' != ' + nd + ') = ' + (sb != nd) + '</span><br />');
			document.write('<span>(' + sb + ' == ' + ne + ') = ' + (sb == ne) + '</span><span class="span1">(' + sb + ' != ' + ne + ') = ' + (sb != ne) + '</span><br />');
			document.write('<span>(' + sb + ' == ' + nf + ') = ' + (sb == nf) + '</span><span class="span1">(' + sb + ' != ' + nf + ') = ' + (sb != nf) + '</span><br />');
			document.write('<span>(' + sb + ' == ' + ng + ') = ' + (sb == ng) + '</span><span class="span1">(' + sb + ' != ' + ng + ') = ' + (sb != ng) + '</span></div>');
		
			document.write('<div style="float: left; margin-left: 560px;"');
			document.write('<span>(' + sc + ' == ' + ba + ') = ' + (sc == ba) + '</span><span class="span2">(' + sc + ' != ' + ba + ') = ' + (sc != ba) + '</span><br />');
			document.write('<span>(' + sc + ' == ' + bb + ') = ' + (sc == bb) + '</span><span class="span2">(' + sc + ' != ' + bb + ') = ' + (sc != bb) + '</span><br />');
			document.write('<span>(' + sc + ' == ' + bc + ') = ' + (sc == bc) + '</span><span class="span2">(' + sc + ' != ' + bc + ') = ' + (sc != bc) + '</span><br />');
			document.write('<span>(' + sc + ' == ' + bd + ') = ' + (sc == bd) + '</span><span class="span2">(' + sc + ' != ' + bd + ') = ' + (sc != bd) + '</span><br />');
			document.write('<span>(' + sc + ' == ' + na + ') = ' + (sc == na) + '</span><span class="span2">(' + sc + ' != ' + na + ') = ' + (sc != na) + '</span><br />');
			document.write('<span>(' + sc + ' == ' + nb + ') = ' + (sc == nb) + '</span><span class="span2">(' + sc + ' != ' + nb + ') = ' + (sc != nb) + '</span><br />');
			document.write('<span>(' + sc + ' == ' + nc + ') = ' + (sc == nc) + '</span><span class="span2">(' + sc + ' != ' + nc + ') = ' + (sc != nc) + '</span><br />');
			document.write('<span>(' + sc + ' == ' + nd + ') = ' + (sc == nd) + '</span><span class="span2">(' + sc + ' != ' + nd + ') = ' + (sc != nd) + '</span><br />');
			document.write('<span>(' + sc + ' == ' + ne + ') = ' + (sc == ne) + '</span><span class="span2">(' + sc + ' != ' + ne + ') = ' + (sc != ne) + '</span><br />');
			document.write('<span>(' + sc + ' == ' + nf + ') = ' + (sc == nf) + '</span><span class="span2">(' + sc + ' != ' + nf + ') = ' + (sc != nf) + '</span><br />');
			document.write('<span>(' + sc + ' == ' + ng + ') = ' + (sc == ng) + '</span><span class="span2">(' + sc + ' != ' + ng + ') = ' + (sc != ng) + '</span></div>');
			document.write('<br style="clear: left;" /><br />');

			document.write('<div style="float: left;"');
			document.write('<span>(' + se + ' == ' + ba + ') = ' + (se == ba) + '</span><span class="span1">(' + se + ' != ' + ba + ') = ' + (se != ba) + '</span><br />');
			document.write('<span>(' + se + ' == ' + bb + ') = ' + (se == bb) + '</span><span class="span1">(' + se + ' != ' + bb + ') = ' + (se != bb) + '</span><br />');
			document.write('<span>(' + se + ' == ' + bc + ') = ' + (se == bc) + '</span><span class="span1">(' + se + ' != ' + bc + ') = ' + (se != bc) + '</span><br />');
			document.write('<span>(' + se + ' == ' + bd + ') = ' + (se == bd) + '</span><span class="span1">(' + se + ' != ' + bd + ') = ' + (se != bd) + '</span><br />');
			document.write('<span>(' + se + ' == ' + na + ') = ' + (se == na) + '</span><span class="span1">(' + se + ' != ' + na + ') = ' + (se != na) + '</span><br />');
			document.write('<span>(' + se + ' == ' + nb + ') = ' + (se == nb) + '</span><span class="span1">(' + se + ' != ' + nb + ') = ' + (se != nb) + '</span><br />');
			document.write('<span>(' + se + ' == ' + nc + ') = ' + (se == nc) + '</span><span class="span1">(' + se + ' != ' + nc + ') = ' + (se != nc) + '</span><br />');
			document.write('<span>(' + se + ' == ' + nd + ') = ' + (se == nd) + '</span><span class="span1">(' + se + ' != ' + nd + ') = ' + (se != nd) + '</span><br />');
			document.write('<span>(' + se + ' == ' + ne + ') = ' + (se == ne) + '</span><span class="span1">(' + se + ' != ' + ne + ') = ' + (se != ne) + '</span><br />');
			document.write('<span>(' + se + ' == ' + nf + ') = ' + (se == nf) + '</span><span class="span1">(' + se + ' != ' + nf + ') = ' + (se != nf) + '</span><br />');
			document.write('<span>(' + se + ' == ' + ng + ') = ' + (se == ng) + '</span><span class="span1">(' + se + ' != ' + ng + ') = ' + (se != ng) + '</span></div>');

			document.write('<div style="float: left; margin-left: 560px;"');
			document.write('<span>(' + sf + ' == ' + ba + ') = ' + (sf == ba) + '</span><span class="span2">(' + sf + ' != ' + ba + ') = ' + (sf != ba) + '</span><br />');
			document.write('<span>(' + sf + ' == ' + bb + ') = ' + (sf == bb) + '</span><span class="span2">(' + sf + ' != ' + bb + ') = ' + (sf != bb) + '</span><br />');
			document.write('<span>(' + sf + ' == ' + bc + ') = ' + (sf == bc) + '</span><span class="span2">(' + sf + ' != ' + bc + ') = ' + (sf != bc) + '</span><br />');
			document.write('<span>(' + sf + ' == ' + bd + ') = ' + (sf == bd) + '</span><span class="span2">(' + sf + ' != ' + bd + ') = ' + (sf != bd) + '</span><br />');
			document.write('<span>(' + sf + ' == ' + na + ') = ' + (sf == na) + '</span><span class="span2">(' + sf + ' != ' + na + ') = ' + (sf != na) + '</span><br />');
			document.write('<span>(' + sf + ' == ' + nb + ') = ' + (sf == nb) + '</span><span class="span2">(' + sf + ' != ' + nb + ') = ' + (sf != nb) + '</span><br />');
			document.write('<span>(' + sf + ' == ' + nc + ') = ' + (sf == nc) + '</span><span class="span2">(' + sf + ' != ' + nc + ') = ' + (sf != nc) + '</span><br />');
			document.write('<span>(' + sf + ' == ' + nd + ') = ' + (sf == nd) + '</span><span class="span2">(' + sf + ' != ' + nd + ') = ' + (sf != nd) + '</span><br />');
			document.write('<span>(' + sf + ' == ' + ne + ') = ' + (sf == ne) + '</span><span class="span2">(' + sf + ' != ' + ne + ') = ' + (sf != ne) + '</span><br />');
			document.write('<span>(' + sf + ' == ' + nf + ') = ' + (sf == nf) + '</span><span class="span2">(' + sf + ' != ' + nf + ') = ' + (sf != nf) + '</span><br />');
			document.write('<span>(' + sf + ' == ' + ng + ') = ' + (sf == ng) + '</span><span class="span2">(' + sf + ' != ' + ng + ') = ' + (sf != ng) + '</span></div>');
			document.write('<br style="clear: left;" /><br />');

			document.write('<div style="float: left;"');
			document.write('<span>(' + sg + ' == ' + ba + ') = ' + (sg == ba) + '</span><span class="span1">(' + sg + ' != ' + ba + ') = ' + (sg != ba) + '</span><br />');
			document.write('<span>(' + sg + ' == ' + bb + ') = ' + (sg == bb) + '</span><span class="span1">(' + sg + ' != ' + bb + ') = ' + (sg != bb) + '</span><br />');
			document.write('<span>(' + sg + ' == ' + bc + ') = ' + (sg == bc) + '</span><span class="span1">(' + sg + ' != ' + bc + ') = ' + (sg != bc) + '</span><br />');
			document.write('<span>(' + sg + ' == ' + bd + ') = ' + (sg == bd) + '</span><span class="span1">(' + sg + ' != ' + bd + ') = ' + (sg != bd) + '</span><br />');
			document.write('<span>(' + sg + ' == ' + na + ') = ' + (sg == na) + '</span><span class="span1">(' + sg + ' != ' + na + ') = ' + (sg != na) + '</span><br />');
			document.write('<span>(' + sg + ' == ' + nb + ') = ' + (sg == nb) + '</span><span class="span1">(' + sg + ' != ' + nb + ') = ' + (sg != nb) + '</span><br />');
			document.write('<span>(' + sg + ' == ' + nc + ') = ' + (sg == nc) + '</span><span class="span1">(' + sg + ' != ' + nc + ') = ' + (sg != nc) + '</span><br />');
			document.write('<span>(' + sg + ' == ' + nd + ') = ' + (sg == nd) + '</span><span class="span1">(' + sg + ' != ' + nd + ') = ' + (sg != nd) + '</span><br />');
			document.write('<span>(' + sg + ' == ' + ne + ') = ' + (sg == ne) + '</span><span class="span1">(' + sg + ' != ' + ne + ') = ' + (sg != ne) + '</span><br />');
			document.write('<span>(' + sg + ' == ' + nf + ') = ' + (sg == nf) + '</span><span class="span1">(' + sg + ' != ' + nf + ') = ' + (sg != nf) + '</span><br />');
			document.write('<span>(' + sg + ' == ' + ng + ') = ' + (sg == ng) + '</span><span class="span1">(' + sg + ' != ' + ng + ') = ' + (sg != ng) + '</span></div>');

			document.write('<div style="float: left; margin-left: 560px;"');
			document.write('<span>(' + sk + ' == ' + ba + ') = ' + (sk == ba) + '</span><span class="span2">(' + sk + ' != ' + ba + ') = ' + (sk != ba) + '</span><br />');
			document.write('<span>(' + sk + ' == ' + bb + ') = ' + (sk == bb) + '</span><span class="span2">(' + sk + ' != ' + bb + ') = ' + (sk != bb) + '</span><br />');
			document.write('<span>(' + sk + ' == ' + bc + ') = ' + (sk == bc) + '</span><span class="span2">(' + sk + ' != ' + bc + ') = ' + (sk != bc) + '</span><br />');
			document.write('<span>(' + sk + ' == ' + bd + ') = ' + (sk == bd) + '</span><span class="span2">(' + sk + ' != ' + bd + ') = ' + (sk != bd) + '</span><br />');
			document.write('<span>(' + sk + ' == ' + na + ') = ' + (sk == na) + '</span><span class="span2">(' + sk + ' != ' + na + ') = ' + (sk != na) + '</span><br />');
			document.write('<span>(' + sk + ' == ' + nb + ') = ' + (sk == nb) + '</span><span class="span2">(' + sk + ' != ' + nb + ') = ' + (sk != nb) + '</span><br />');
			document.write('<span>(' + sk + ' == ' + nc + ') = ' + (sk == nc) + '</span><span class="span2">(' + sk + ' != ' + nc + ') = ' + (sk != nc) + '</span><br />');
			document.write('<span>(' + sk + ' == ' + nd + ') = ' + (sk == nd) + '</span><span class="span2">(' + sk + ' != ' + nd + ') = ' + (sk != nd) + '</span><br />');
			document.write('<span>(' + sk + ' == ' + ne + ') = ' + (sk == ne) + '</span><span class="span2">(' + sk + ' != ' + ne + ') = ' + (sk != ne) + '</span><br />');
			document.write('<span>(' + sk + ' == ' + nf + ') = ' + (sk == nf) + '</span><span class="span2">(' + sk + ' != ' + nf + ') = ' + (sk != nf) + '</span><br />');
			document.write('<span>(' + sk + ' == ' + ng + ') = ' + (sk == ng) + '</span><span class="span2">(' + sk + ' != ' + ng + ') = ' + (sk != ng) + '</span></div>');
			document.write('<hr style="clear: left;" />');
		
			document.write('[]和new Array()和数字字面量或布尔字面量检查等性, 它会转为0:<br />');
			document.write('<div style="float: left;"');
			document.write('<span>(' + aa + ' == ' + ba + ') = ' + (aa == ba) + '</span><span class="span1">(' + aa + ' != ' + ba + ') = ' + (aa != ba) + '</span><br />');
			document.write('<span>(' + aa + ' == ' + bb + ') = ' + (aa == bb) + '</span><span class="span1">(' + aa + ' != ' + bb + ') = ' + (aa != bb) + '</span><br />');
			document.write('<span>(' + aa + ' == ' + bc + ') = ' + (aa == bc) + '</span><span class="span1">(' + aa + ' != ' + bc + ') = ' + (aa != bc) + '</span><br />');
			document.write('<span>(' + aa + ' == ' + bd + ') = ' + (aa == bd) + '</span><span class="span1">(' + aa + ' != ' + bd + ') = ' + (aa != bd) + '</span><br />');
			document.write('<span>(' + aa + ' == ' + na + ') = ' + (aa == na) + '</span><span class="span1">(' + aa + ' != ' + na + ') = ' + (aa != na) + '</span><br />');
			document.write('<span>(' + aa + ' == ' + nb + ') = ' + (aa == nb) + '</span><span class="span1">(' + aa + ' != ' + nb + ') = ' + (aa != nb) + '</span><br />');
			document.write('<span>(' + aa + ' == ' + nc + ') = ' + (aa == nc) + '</span><span class="span1">(' + aa + ' != ' + nc + ') = ' + (aa != nc) + '</span><br />');
			document.write('<span>(' + aa + ' == ' + nd + ') = ' + (aa == nd) + '</span><span class="span1">(' + aa + ' != ' + nd + ') = ' + (aa != nd) + '</span><br />');
			document.write('<span>(' + aa + ' == ' + ne + ') = ' + (aa == ne) + '</span><span class="span1">(' + aa + ' != ' + ne + ') = ' + (aa != ne) + '</span><br />');
			document.write('<span>(' + aa + ' == ' + nf + ') = ' + (aa == nf) + '</span><span class="span1">(' + aa + ' != ' + nf + ') = ' + (aa != nf) + '</span><br />');
			document.write('<span>(' + aa + ' == ' + ng + ') = ' + (aa == ng) + '</span><span class="span1">(' + aa + ' != ' + ng + ') = ' + (aa != ng) + '</span></div>');

			document.write('<div style="float: left; margin-left: 560px;"');
			document.write('<span>(' + ac + ' == ' + ba + ') = ' + (ac == ba) + '</span><span class="span2">(' + ac + ' != ' + ba + ') = ' + (ac != ba) + '</span><br />');
			document.write('<span>(' + ac + ' == ' + bb + ') = ' + (ac == bb) + '</span><span class="span2">(' + ac + ' != ' + bb + ') = ' + (ac != bb) + '</span><br />');
			document.write('<span>(' + ac + ' == ' + bc + ') = ' + (ac == bc) + '</span><span class="span2">(' + ac + ' != ' + bc + ') = ' + (ac != bc) + '</span><br />');
			document.write('<span>(' + ac + ' == ' + bd + ') = ' + (ac == bd) + '</span><span class="span2">(' + ac + ' != ' + bd + ') = ' + (ac != bd) + '</span><br />');
			document.write('<span>(' + ac + ' == ' + na + ') = ' + (ac == na) + '</span><span class="span2">(' + ac + ' != ' + na + ') = ' + (ac != na) + '</span><br />');
			document.write('<span>(' + ac + ' == ' + nb + ') = ' + (ac == nb) + '</span><span class="span2">(' + ac + ' != ' + nb + ') = ' + (ac != nb) + '</span><br />');
			document.write('<span>(' + ac + ' == ' + nc + ') = ' + (ac == nc) + '</span><span class="span2">(' + ac + ' != ' + nc + ') = ' + (ac != nc) + '</span><br />');
			document.write('<span>(' + ac + ' == ' + nd + ') = ' + (ac == nd) + '</span><span class="span2">(' + ac + ' != ' + nd + ') = ' + (ac != nd) + '</span><br />');
			document.write('<span>(' + ac + ' == ' + ne + ') = ' + (ac == ne) + '</span><span class="span2">(' + ac + ' != ' + ne + ') = ' + (ac != ne) + '</span><br />');
			document.write('<span>(' + ac + ' == ' + nf + ') = ' + (ac == nf) + '</span><span class="span2">(' + ac + ' != ' + nf + ') = ' + (ac != nf) + '</span><br />');
			document.write('<span>(' + ac + ' == ' + ng + ') = ' + (ac == ng) + '</span><span class="span2">(' + ac + ' != ' + ng + ') = ' + (ac != ng) + '</span></div>');
			document.write('<hr style="clear: left;" />');

			document.write('两个字符串变量的内容相等, 这两个变量相等(字符串"NaN"等于"NaN"):<br />');
			document.write('<span>(' + sa + ' == ' + sa + ') = ' + (sa == sa) + '</span><span class="span1">(' + sa + ' != ' + sa + ') = ' + (sa != sa) + '</span><br />');
			document.write('<span>(' + sa + ' == ' + sb + ') = ' + (sa == sb) + '</span><span class="span1">(' + sa + ' != ' + sb + ') = ' + (sa != sb) + '</span><br />');
			document.write('<span>(' + sa + ' == ' + sc + ') = ' + (sa == sc) + '</span><span class="span1">(' + sa + ' != ' + sc + ') = ' + (sa != sc) + '</span><br />');
			document.write('<span>(' + sa + ' == ' + sj + ') = ' + (sa == sj) + '</span><span class="span1">(' + sa + ' != ' + sj + ') = ' + (sa != sj) + '</span><br />');
			document.write('<span>(' + sa + ' == ' + sk + ') = ' + (sa == sk) + '</span><span class="span1">(' + sa + ' != ' + sk + ') = ' + (sa != sk) + '</span><br />');
			document.write('<span>(' + se + ' == ' + se + ') = ' + (se == se) + '</span><span class="span1">(' + se + ' != ' + se + ') = ' + (se != se) + '</span><hr />');
			
			document.write('字符串和对象等性:<br />');
			document.write('<span>(' + sh + ' == ' + ab + ') = ' + (sh == ab) + '</span><span class="span1">(' + sh + ' != ' + ab + ') = ' + (sh != ab) + '</span><br /><br />');
			document.write('<span>(' + si + ' == ' + aa + ') = ' + (si == aa) + '</span><span class="span1">(' + si + ' != ' + aa + ') = ' + (si != aa) + '</span><br />');
			document.write('<span>(' + si + ' == ' + ab + ') = ' + (si == ab) + '</span><span class="span1">(' + si + ' != ' + ab + ') = ' + (si != ab) + '</span><br />');
			document.write('<span>(' + si + ' == ' + ac + ') = ' + (si == ac) + '</span><span class="span1">(' + si + ' != ' + ac + ') = ' + (si != ac) + '</span><br />');
			document.write('<span>(' + si + ' == ' + oa + ') = ' + (si == oa) + '</span><span class="span1">(' + si + ' != ' + oa + ') = ' + (si != oa) + '</span><br />');
			document.write('<span>(' + si + ' == ' + ob + ') = ' + (si == ob) + '</span><span class="span1">(' + si + ' != ' + ob + ') = ' + (si != ob) + '</span><br />');
			document.write('<span>(' + si + ' == ' + oc + ') = ' + (si == oc) + '</span><span class="span1">(' + si + ' != ' + oc + ') = ' + (si != oc) + '</span><hr />');

			document.write('空字符串字面量等性:<br />');
			document.write('<span>(' + sa + ' == ' + sa + ') = ' + (sa == sa) + '</span><span class="span1">(' + sa + ' != ' + sa + ') = ' + (sa != sa) + '</span><br />');
			document.write('<span>(' + sa + ' == ' + aa + ') = ' + (sa == aa) + '</span><span class="span1">(' + sa + ' != ' + aa + ') = ' + (sa != aa) + '</span><br />');
			document.write('<span>(' + sa + ' == ' + ac + ') = ' + (sa == ac) + '</span><span class="span1">(' + sa + ' != ' + ac + ') = ' + (sa != ac) + '</span><hr />');

			document.write('空字符串对象等性:<br />');
			document.write('<span>(' + sj + ' == ' + aa + ') = ' + (sj == aa) + '</span><span class="span1">(' + sj + ' != ' + aa + ') = ' + (sj != aa) + '</span><br />');
			document.write('<span>(' + sj + ' == ' + ac + ') = ' + (sj == ac) + '</span><span class="span1">(' + sj + ' != ' + ac + ') = ' + (sj != ac) + '</span><hr />');

			document.write('空数组字面量不等于空数组对象:<br />');
			document.write('<span>(' + aa + ' == ' + ac + ') = ' + (aa == ac) + '</span><span class="span1">(' + aa + ' != ' + ac + ') = ' + (aa != ac) + '</span><hr />');
			
			document.write('Infinity和-Infinity等性:<br />');
			document.write('<span>(' + nd + ' == ' + nd + ') = ' + (nd == nd) + '</span><span class="span1">(' + nd + ' != ' + nd + ') = ' + (nd != nd) + '</span><br />');
			document.write('<span>(' + ne + ' == ' + ne + ') = ' + (ne == ne) + '</span><span class="span1">(' + ne + ' != ' + ne + ') = ' + (ne != ne) + '</span><br />');
		</script>
	</body>
</html>

3.5.2. 效果图

4. 全等号和非全等号

4.1. 全等号由三个等号表示(===), 比较两个值是否相等, 只是它们在检查相等性前不执行类型转换。

4.2. 非全等号由感叹号加两个等号(!==)表示, 比较两个值是否不等, 也不执行类型转换。

4.3. 值null和undefined不全等。

4.4. 例

4.4.1. 代码

<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="utf-8" />
		<title>全等号和非全等号</title>
	</head>
	<body>
		<script type="text/javascript">
			var ua = undefined;
			var la = null;
			var ba = true, bb = false, bc = new Boolean(true), bd = new Boolean(false);
			var na = 0, nb = 1, nc = NaN, nd = Infinity, ne = -Infinity, nf = new Number(), ng = new Number(1);
			var sa = '', sb = '0', sc ='1', sd = '1abc', se = 'NaN', sf = 'Infinity', sg = '-Infinity', sh = '高性能JavaScript', si = '[object Object]', sj = new String();
			var aa = [], ab = ['高性能JavaScript'], ac = new Array();
			var oa = {}, ob = {id: 1001, name: 'zhangsan'}, oc = new Object();

			document.write('(' + ua + ' == ' + la + ') = ' + (ua == la) + ', (' + ua + ' != ' + la + ') = ' + (ua != la) + '<br />');
			document.write('(' + ua + ' === ' + la + ') = ' + (ua === la) + ', (' + ua + ' !== ' + la + ') = ' + (ua !== la) + '<br /><br />');

			document.write('(' + ba + ' == ' + bc + ') = ' + (ba == bc) + ', (' + ba + ' != ' + bc + ') = ' + (ba != bc) + '<br />');
			document.write('(' + ba + ' === ' + bc + ') = ' + (ba === bc) + ', (' + ba + ' !== ' + bc + ') = ' + (ba !== bc) + '<br /><br />');

			document.write('(' + bb + ' == ' + bd + ') = ' + (bb == bd) + ', (' + bb + ' != ' + bd + ') = ' + (bb != bd) + '<br />');
			document.write('(' + bb + ' === ' + bd + ') = ' + (bb === bd) + ', (' + bb + ' !== ' + bd + ') = ' + (bb !== bd) + '<br /><br />');

			document.write('(' + bb + ' == ' + na + ') = ' + (bb == na) + ', (' + bb + ' != ' + na + ') = ' + (bb != na) + '<br />');
			document.write('(' + bb + ' === ' + na + ') = ' + (bb === na) + ', (' + bb + ' !== ' + na + ') = ' + (bb !== na) + '<br /><br />');

			document.write('(' + bb + ' == ' + nf + ') = ' + (bb == nf) + ', (' + bb + ' != ' + nf + ') = ' + (bb != nf) + '<br />');
			document.write('(' + bb + ' === ' + nf + ') = ' + (bb === nf) + ', (' + bb + ' !== ' + nf + ') = ' + (bb !== nf) + '<br /><br />');

			document.write('(' + bb + ' == ' + sa + ') = ' + (bb == sa) + ', (' + bb + ' != ' + sa + ') = ' + (bb != sa) + '<br />');
			document.write('(' + bb + ' === ' + sa + ') = ' + (bb === sa) + ', (' + bb + ' !== ' + sa + ') = ' + (bb !== sa) + '<br /><br />');

			document.write('(' + bb + ' == ' + sb + ') = ' + (bb == sb) + ', (' + bb + ' != ' + sb + ') = ' + (bb != sb) + '<br />');
			document.write('(' + bb + ' === ' + sb + ') = ' + (bb === sb) + ', (' + bb + ' !== ' + sb + ') = ' + (bb !== sb) + '<br /><br />');

			document.write('(' + bb + ' == ' + sj + ') = ' + (bb == sj) + ', (' + bb + ' != ' + sj + ') = ' + (bb != sj) + '<br />');
			document.write('(' + bb + ' === ' + sj + ') = ' + (bb === sj) + ', (' + bb + ' !== ' + sj + ') = ' + (bb !== sj) + '<br /><br />');

			document.write('(' + bb + ' == ' + aa + ') = ' + (bb == aa) + ', (' + bb + ' != ' + aa + ') = ' + (bb != aa) + '<br />');
			document.write('(' + bb + ' === ' + aa + ') = ' + (bb === aa) + ', (' + bb + ' !== ' + aa + ') = ' + (bb !== aa) + '<br /><br />');

			document.write('(' + bb + ' == ' + ac + ') = ' + (bb == ac) + ', (' + bb + ' != ' + ac + ') = ' + (bb != ac) + '<br />');
			document.write('(' + bb + ' === ' + ac + ') = ' + (bb === ac) + ', (' + bb + ' !== ' + ac + ') = ' + (bb !== ac) + '<br /><br />');

			document.write('(' + nc + ' == ' + nc + ') = ' + (nc == nc) + ', (' + nc + ' != ' + nc + ') = ' + (nc != nc) + '<br />');
			document.write('(' + nc + ' === ' + nc + ') = ' + (nc === nc) + ', (' + nc + ' !== ' + nc + ') = ' + (nc !== nc) + '<br /><br />');

			document.write('(' + nd + ' == ' + nd + ') = ' + (nd == nd) + ', (' + nd + ' != ' + nd + ') = ' + (nd != nd) + '<br />');
			document.write('(' + nd + ' === ' + nd + ') = ' + (nd === nd) + ', (' + nd + ' !== ' + nd + ') = ' + (nd !== nd) + '<br />');
			document.write('(' + nd + ' == ' + sf + ') = ' + (nd == sf) + ', (' + nd + ' != ' + sf + ') = ' + (nd != sf) + '<br />');
			document.write('(' + nd + ' === ' + sf + ') = ' + (nd === sf) + ', (' + nd + ' !== ' + sf + ') = ' + (nd !== sf) + '<br /><br />');

			document.write('(' + ne + ' == ' + ne + ') = ' + (ne == ne) + ', (' + ne + ' != ' + ne + ') = ' + (ne != ne) + '<br />');
			document.write('(' + ne + ' === ' + ne + ') = ' + (ne === ne) + ', (' + ne + ' !== ' + ne + ') = ' + (ne !== ne) + '<br />');
			document.write('(' + ne + ' == ' + sg + ') = ' + (ne == sg) + ', (' + ne + ' != ' + sg + ') = ' + (ne != sg) + '<br />');
			document.write('(' + ne + ' === ' + sg + ') = ' + (ne === sg) + ', (' + ne + ' !== ' + sg + ') = ' + (ne !== sg) + '<br /><br />');

			document.write('(' + sh + ' == ' + ab + ') = ' + (sh == ab) + ', (' + sh + ' != ' + ab + ') = ' + (sh != ab) + '<br />');
			document.write('(' + sh + ' === ' + ab + ') = ' + (sh === ab) + ', (' + sh + ' !== ' + ab + ') = ' + (sh !== ab) + '<br /><br />');

			document.write('(' + si + ' == ' + ob + ') = ' + (si == ob) + ', (' + si + ' != ' + ob + ') = ' + (si != ob) + '<br />');
			document.write('(' + si + ' === ' + ob + ') = ' + (si === ob) + ', (' + si + ' !== ' + ob + ') = ' + (si !== ob) + '<br /><br />');
		</script>
	</body>
</html>

4.4.2. 效果图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值