用中文说:
5 不等于 "5" (5 !== "5")
我们在验证它们是否【不等于】对方。如果不等,成立,返回 true;如果相等,不成立,返回 false;
结果是它们【不等】,和我们要验证的【不等于】是【对应】的,所以返回 true。
5 等于 "5"(5 === "5")
我们在验证它们是否【等于】对方。如果相等,成立,返回 true;如果不等,不成立,返回 false;
结果是它们【不等】,和我们要验证的【等于】是【对立】的,所以返回 false。
运算符是完成操作的一系列符号,在javascript中有赋值去运算符,算术运算符,字符串去处符,逻辑运算符,比较运算符,条件运算符及位运算符,(其中位去处符几乎很少用到,也已超出我们介绍的内容).1.赋值运算符
赋值运算符通常被用于在一个表达式中进行赋值,如example="this
is
a
book"其中"="就是一个赋值运算符.
2.算术运算符
javascript中的算术运算符有双目运算符和单目运算符.
标准的双目运算符有五种:+(加),-(减),*(乘),/(除),%(取模)
3.比较运算符
比较运算符的基本操作过程是,首先对它的操作数进行比较,然后再返回一个true或false值.
4.逻辑运算符
主要将布尔值作为操作数,而且同比较去处符一样,也返回布尔值.
5.字符串运算符
字符串运算符为+,主要用于两个字符串的组合,例如"this
is
"+"book"
//结果为"this
is
book"
6.条件运算符
条件运算符与前面介绍过的运算符有所不同,因为条件表达式会根据条件计算出一个或两个不同的值,其结构为(条件)?结果1:结果2。望采纳。
常规比较方式关系运算符小于、大于、小于等于和大于等于执行的是两个数的比较运算,比较方式与算术比较运算相同。
每个关系运算符都返回一个布尔值:
var bResult1 = 2 >1 //true
var bResult2 = 2 <1 //false
不过,对两个字符串应用关系运算符,它们的行为则不同。许多人认为小于表示“在字母顺序上靠前”,大于表示“在字母顺序上靠后”,但事实并非如此。对于字符串,第一个字符串中每个字符的代码都与会第二个字符串中对应位置的字符的代码进行数值比较。完成这种比较操作后,返回一个 Boolean 值。问题在于大写字母的代码都小于小写字母的代码,这意味这着可能会遇到下列情况:
var bResult = "Blue" <"alpha"
alert(bResult) //输出 true
在上面的例子中,字符串 "Blue" 小于 "alpha",因为字母 B 的字符代码是 66,字母 a 的字符代码是 97。要强制性得到按照真正的字母顺序比较的结果,必须把两个数转换成相同的大小写形式(全大写或全小写的),然后再进行比较:
var bResult = "Blue".toLowerCase() <"alpha".toLowerCase()
alert(bResult) //输出 false
把两个运算数都转换成小写,确保了正确识别出 "alpha" 在字母顺序上位于 "Blue" 之前。
比较数字和字符串
另一种棘手的状况发生在比较两个字符串形式的数字时,比如:
var bResult = "25" <"3"
alert(bResult) //输出 "true"
上面这段代码比较的是字符串 "25" 和 "3"。两个运算数都是字符串,所以比较的是它们的字符代码("2" 的字符代码是 50,"3" 的字符代码是 51)。
不过,如果把某个运算数该为数字,那么结果就有趣了:
var bResult = "25" <3
alert(bResult) //输出 "false"
这里,字符串 "25" 将被转换成数字 25,然后与数字 3 进行比较,结果不出所料。
无论何时比较一个数字和一个字符串,ECMAScript 都会把字符串转换成数字,然后按照数字顺序比较它们。
不过,如果字符串不能转换成数字又该如何呢?考虑下面的例子:
var bResult = "a" <3
alert(bResult)
你能预料到这段代码输出什么吗?字母 "a" 不能转换成有意义的数字。不过,如果对它调用 parseInt() 方法,返回的是 NaN。根据规则,任何包含 NaN 的关系运算符都要返回 false,因此这段代码也输出 false:
var bResult = "a" >= 3
alert(bResult)
通常,如果小于运算的两个值返回 false,那么大于等于运算必须返回 true,不过如果某个数字是 NaN,情况则非如此。