English 中文(简体)
在javascript(与空洞相比)中,什么错误?
原标题:What s wrong with != in javascript (comparing to an empty string)?
  • 时间:2012-01-13 11:00:53
  •  标签:
  • javascript

jsbin首先警告我,x !=不是好的,我将改为x !=

为什么?

最佳回答
var x = false;
console.log(x !==   ); //true
console.log(x !=   ); //false

In other words, false (and other falsy values, like 0) will coerce to an empty string. The !== and === operators (strict equality operators) ensure that the things being compared are of the same type.


To expand upon why this is the case, you need to head to the spec (linked to by T.J. Crowder in the comments). The section on the "Abstract Equality Comparison Algorithm" tells us the following:

If Type(x) is Boolean, return the result of the comparison ToNumber(x) == y.

>>>> 告诉我们:

The result is 1 if the argument is true. The result is +0 if the argument is false.

在上述例子中,论点是false,因此我们现在将+0 !=加以比较。 在将数字与地体进行比较时,遵循以下规则:

If Type(x) is Number and Type(y) is String, return the result of the comparison x == ToNumber(y).

Calling ToNumber on an empty string results in +0, just as it did for false:

A StringNumericLiteral that is empty or contains only white space is converted to +0.

现在我们正在比较<代码>+0 ! = +0,这样我们就进入“x and y are of same”部分,这告诉我们:

如果X是同数值一样的,回报是真实的。

因此,<代码>+0等于+0,而且由于我们正在使用<代码>!,该代码返回<>false<>/code>。

问题回答

暂无回答




相关问题
selected text in iframe

How to get a selected text inside a iframe. I my page i m having a iframe which is editable true. So how can i get the selected text in that iframe.

How to fire event handlers on the link using javascript

I would like to click a link in my page using javascript. I would like to Fire event handlers on the link without navigating. How can this be done? This has to work both in firefox and Internet ...

How to Add script codes before the </body> tag ASP.NET

Heres the problem, In Masterpage, the google analytics code were pasted before the end of body tag. In ASPX page, I need to generate a script (google addItem tracker) using codebehind ClientScript ...

Clipboard access using Javascript - sans Flash?

Is there a reliable way to access the client machine s clipboard using Javascript? I continue to run into permissions issues when attempting to do this. How does Google Docs do this? Do they use ...

javascript debugging question

I have a large javascript which I didn t write but I need to use it and I m slowely going trough it trying to figure out what does it do and how, I m using alert to print out what it does but now I ...

Parsing date like twitter

I ve made a little forum and I want parse the date on newest posts like twitter, you know "posted 40 minutes ago ","posted 1 hour ago"... What s the best way ? Thanx.

热门标签