根据MDN documentation - 实际上我到目前为止读过的每个js文档 - <div class='element'>New Class Will Be Added Before 20% Of This Div</div>
方法将对象转换为原始值。这个例子是正确的,它适用于数学运算符。
在我目前的情况下,我需要它与逻辑运算符一起使用,但它永远不会被它们调用。例如:
valueOf
结果:
var o = {valueOf: function (){return false;}};
if (o)
console.log("o -[bool]-> true");
else
console.log("o -[bool]-> false");
if (!o)
console.log("not(o) -> false");
else
console.log("not(o) -> true");
if (o == false)
console.log("eq(o, false) -> true");
else
console.log("eq(o, false) -> false");
为什么这样标准化?为什么没有用于布尔转换的o -[bool]-> true
not(o) -> false
eq(o, false) -> true
方法?