我想知道一些关于胁迫的事情。
当你这样做时:
1 == true // true哪一个被强迫进入哪一个?是左边的还是右边的?
当你做的时候
undefined == null // true它到底是怎么工作的?它试着转换它的顺序是什么?例如:
1) String(undefined) == String(null) // false
2) Number(undefined) == Number(null) // false
3) Boolean(undefined) == Boolean(null) // true它是否首先试图胁迫左边的操作数?那右边呢?那两者都是?
编辑:正如注释中所解释的:“不是重复。虽然这两个问题都是关于类型强制的,但这个问题是问哪些操作数被胁迫到另一个操作数中。另一个问题是在评估胁迫类型时,真相的来源。”
发布于 2019-02-07 06:35:35
该过程在7.2.12抽象平等比较中描述。
比较x == y,其中x和y是值,产生真或假。这样的比较如下所示:
因此,与其强迫一方,然后是另一方,或者诸如此类的事情,更重要的是,解释器遍历上面的列表,直到找到匹配的条件,并执行结果命令,这可能只包括胁迫左侧,或者只包括右侧(而且,很少情况下,在达到递归命令的情况下,例如使用true == '1',它将满足条件8,转换为1 == '1',满足条件6,转化为1 == 1,满足条件3并解决为true)。
https://stackoverflow.com/questions/54567524
复制相似问题