美文网首页
if和==到底是怎么判断的?

if和==到底是怎么判断的?

作者: 夜舞暗澜_3ea2 | 来源:发表于2018-05-15 11:38 被阅读0次

    if作为最基本的条件判断语句经常的、广泛的被使用,配合使用的还有==运算符。但是这两个符号究竟是如何计算真值的?

    简单判断:直接查表

    原文翻墙:-> oh my dear js
    国内转载:-> JavaScript 真值表
    (这个页面不算难,可以写个丑版娱乐一下~)

    ⚠️ 在if判断中不通过的值不一定等同于false!!!

    ⚠️ 真正的number中只有1 == true;0 == false;其他的值既不为true也不为false!!

    提示:如果希望严格判断真值,可以加"!!"做强制类型转换!

    然后有些好玩的东西:

    • 这个表里有个很好玩的地方,就是既有“>= && <=”又有“==”,因为这两种情况真的不相等。比例如[[]] >= [] && [[]] <= []为true,但是[[]] > [] && [[]] < []为false,且[[]] == []为false。原因可能是,在做大小比较时,JS将数组转化为String类型,此时[[]]和[]就相等了。可是做==时,两边都是Array所以做全等比较,的确又不相等了(555555……好复杂……)
    • 两个字符串比较大小时,JS只会比较其首字的编码值(str.charCodeAt()),其他都不看了……和数组比大小意思一样。比如"a" > "Abjdfkhafjkhkdbch&*(*&*&*^";
    • 数组比大小时:
      1. 不会给你排序的,[3,2,1] > [1,2,3] ==> true
      2. 对于内容为字母和数字的,数组依次按顺序比较同样位置上的元素,直到有结论为止。同样,后面的不看了……['a'] > ['Z','b','c','d','e'] ==> true

    相关文章

      网友评论

          本文标题:if和==到底是怎么判断的?

          本文链接:https://www.haomeiwen.com/subject/zgoldftx.html