Javascript 不同类型的比较(<;和>;)的规则是什么?
对于Javascript 不同类型的比较(<;和>;)的规则是什么?,javascript,operators,Javascript,Operators,对于
“”//true
10<正确//错误
10
我不知道为什么结果是这样。我找到了,但没有细节
顺便说一句,我对=
和==
的工作方式没有疑问
当我们使用它来比较两个对象时,规则是什么
发件人:
当比较作为对象的变量时,它们被认为是
如果它们的对象不是同一个对象,即使值
它们中的大多数是相同的,因此:
当我们用它来比较两种不同的类型时,规则是什么 你发表的文章对此进行了解释,我引述如下: 如果两个操作数的类型不同,JavaScript将转换 然后应用严格比较。如果任一操作数为 如果是数字或布尔值,则操作数将转换为数字 可能的否则,如果任一操作数为字符串,则字符串操作数为 如果可能,转换为数字。如果两个操作数都是对象,则 JavaScript比较操作数相同时的内部引用 引用内存中的同一对象
那篇文章中有很多详细信息: 如果两个操作数不属于同一类型,JavaScript将转换操作数,然后应用严格比较
false == 0 == ""
true == 1 == "1" != "any other string (including empty)"
当我们使用它来比较两个对象时,规则是什么
对于
(和=
)比较,JavaScript引擎调用对象上的valueOf
或toString
方法(如果可用),以检查大小。在本例中:
var a = {};
var b = {};
console.log(a < b);
var a={};
var b={};
控制台日志(a
JavaScript测试以下条件并返回false:
"[object Object]" < "[object Object]" // false
“[对象]”<“[对象]”//false
当我们用它来比较两种不同的类型时,规则是什么
规则是一样的。在比较之前,对象被转换为字符串。您应该看看Rhino的书,JavaScript:The Definitive Guide()。这对JavaScript中的类型转换和比较有很好的解释。
false == 0 == ""
true == 1 == "1" != "any other string (including empty)"
var a = {};
var b = {};
console.log(a < b);
"[object Object]" < "[object Object]" // false