相关疑难解决方法(0)

应该在JavaScript比较中使用哪个等于运算符(== vs ===)?

我正在使用JSLint来完成JavaScript,并且在执行诸如比较语句内部之类的事情时,它会返回许多建议来替换==(两个等号)===(三个等号).idSele_UNVEHtype.value.length == 0if

有没有性能优势,以代替=====

任何性能改进都会受到欢迎,因为存在许多比较运算符

如果没有进行类型转换,是否会有性能提升==

javascript equality operators equality-operator identity-operator

5666
推荐指数
41
解决办法
171万
查看次数

为什么JavaScript中有2 == [2]?

我最近2 == [2]在JavaScript中发现了.事实证明,这个怪癖有几个有趣的后果:

var a = [0, 1, 2, 3];
a[[2]] === a[2]; // this is true
Run Code Online (Sandbox Code Playgroud)

同样,以下工作:

var a = { "abc" : 1 };
a[["abc"]] === a["abc"]; // this is also true
Run Code Online (Sandbox Code Playgroud)

更奇怪的是,这也有效:

[[[[[[[2]]]]]]] == 2; // this is true too! WTF?
Run Code Online (Sandbox Code Playgroud)

这些行为在所有浏览器中都是一致的

知道为什么这是一个语言功能吗?

以下是这个"功能"的更为疯狂的后果:

[0] == false // true
if ([0]) { /* executes */ } // [0] is both true and false!

var a = [0];
a == a // true
a == !a …
Run Code Online (Sandbox Code Playgroud)

javascript arrays properties

163
推荐指数
6
解决办法
1万
查看次数

为什么!{} [true]在JavaScript中评估为true?

{}[true][true]![true]应该的false.

那么为什么 !{}[true]评价true呢?

javascript

131
推荐指数
8
解决办法
6360
查看次数

为什么JavaScript中的0 ==""为真

为什么0 == ""在JavaScript中是真的?我在这里找到了类似的帖子,但为什么数字0类似于空字符串?当然0 === ""是假的.

javascript

31
推荐指数
1
解决办法
9178
查看次数

为什么在javascript中[] == false时验证([])?

if([] == false) alert('empty array is false');
alert(+[]) // alert 0
if([]) alert('empty array is true');
Run Code Online (Sandbox Code Playgroud)

他们都将运行警报

演示

javascript boolean

14
推荐指数
2
解决办法
677
查看次数