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

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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,749评论 0 13
  • 前言 最先接触编程的知识是在大学里面,大学里面学了一些基础的知识,c语言,java语言,单片机的汇编语言等;大学毕...
    oceanfive阅读 8,496评论 0 7
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,259评论 19 139
  • FreeCodeCamp - Basic JavaScript 写在前面: 我曾经在进谷前刷过这一套题,不过当时只...
    付林恒阅读 16,566评论 5 28
  • 有一种等待叫晚点未定 有一种约定叫下次有空 有一种熟悉叫近似陌生 有一种相聚叫草草收场 有一种怀念叫儿时懵懂 有一...
    月圆天心阅读 2,454评论 0 1

友情链接更多精彩内容