不论是哪种编程语言,比较运算符都必不可少,无论是JavaScript还是C,亦或是Java,他们的表现形式几乎没有太大的差别:
大于号 >
小于号 <
等于号 ==
大于等于 >=
小于等于 <=
不等于 !=
如果学习过其他语言的小伙伴肯定见怪不怪了,在这里,
双等号==用于相等性检测,使用双等号的目的主要是避免和赋值运算符=冲突;
>=等价于数学中的≥;
<=等价于数学中的≤;
!=等价于数学中的≠。
比较的结果
所有的运算符都会返回一个结果,比较运算符同样如此,所有比较运算符都会返回Boolean类型的值:
true——表示正确、是的、真的等积极意义;
false——表示错误、不是、假的等消极意义;
举例为证:
let a = 1 > 2;
alert(typeof a); // boolean
alert(a); // false
数值之间的比较非常简单,这里不过多赘述。
字符串比较
和数学运算不同,JavaScript中的字符串也能参与比较。在字符串比大小时,需要参照“字典”顺序进行判定。
如果了解计算机的组成原理,就应该知道,所有的数据都是以二进制编码的形式存在于计算机中的,这些编码遵循一个标准,叫做ASCII:
ASCII编码规定了每个符号的编码(‘数字编号’),计算机通过记录这些数字编号描述每个字符,也就是说,在计算机的眼中并不存在字符,它们统一都是数字。
例如字符'A'对应数字65,字符'a'对应数字97,如果我们比较二者的大小:
let r = 'A' > 'a';
alert(r); //false
本质上比较的是数字65和97,显然65小于97,所以 'A' > 'a'返回false。
如果理解了单个字符的比较规则,字符串的比较就更容易理解了。
字符串的比较本质上是对组成字符串的字符逐个单独的比较,直到分出大小。
举个栗子:
alert('Abc'>'ABC'); //true
alert('Trump' >= 'LaLA'); //true
alert('aaa'=='aaa'); //true
字符串比较算法描述
比较首字符大小;
如果一方较大(较小),则字符串大于(小于)另一个字符串,结束;
否则,比较