我一直在努力理解Javascript的平等性.你能告诉我为什么以下一行返回false?
alert((function a(){}) == (function a(){})) // false
Run Code Online (Sandbox Code Playgroud)
但是你可以从下面的例子中看到<返回false但是<=返回true,这意味着==应该返回,true但它是false.你知道吗,为什么?
alert((function a(){}) < (function a(){})) // false
alert((function a(){}) > (function a(){})) // false
alert((function a(){}) <= (function a(){})) // true
alert((function a(){}) >= (function a(){})) // true
Run Code Online (Sandbox Code Playgroud)
您正在使用<,, 比较两个对象<=,并且它们实际上与它们可能转换为的字符串进行比较.
"function a(){}" < "function a(){}" 是假的.
"function a(){}" <= "function a(){}" 是真的.
编辑:
为什么(function a(){}) == (function a(){})返回false是因为你比较相同类型==,所以他们不需要转换为字符串或数字进行比较,它们是两个不同的对象.