相关疑难解决方法(0)

在Javascript中进行严格(非类型转换)<,>,<=,> =比较的最佳和/或最短路径

在Javascript中,==比较具有严格(非类型转换)版本:===.同样,!=有严格的形式!==.这些保护您免受以下疯狂:

var s1 = "1",
    i1 = 1,
    i2 = 2;

(s1 == i1)   // true, type conversion
(s1 != i1)   // false, type conversion

(s1 === i1)  // false, no type conversion
(s1 !== i1)  // true, no type conversion
Run Code Online (Sandbox Code Playgroud)

但是,其他比较运算符没有等效的严格模式:

(s1 < i2)   // true, type conversion
(s1 <= i2)  // true, type conversion
([] < i2)   // true, wait ... wat!?
Run Code Online (Sandbox Code Playgroud)

显而易见的解决方案看起来非常冗长:

((typeof s1 === typeof i2) && (s1 …
Run Code Online (Sandbox Code Playgroud)

javascript

27
推荐指数
2
解决办法
740
查看次数

JS中的比较数组编号

我正在使用JS,我不理解数组的某些行为.我搜索了但找不到正确的答案,如果这是欺骗或与其他问题相关,那就很抱歉.

我使用lodash有以下代码.

    return _.difference(self.list1, self.list2) <= 0;
Run Code Online (Sandbox Code Playgroud)

那是返回一个数组,我直接将它与一个数字进行比较,因为我忘记了.length属性.我看到这是"工作",除非它不正确.所以我开始用JS控制台做一些测试,我不明白这里发生了什么.

[Object, Object, Object] <= 0 //returns false

[] <= 0 //returns true

[[]] <= 0 //returns true

[[[]]] <= 0 //returns true

[[2]] <= 0 // returns false

[[],[]] <= 0 //returns false
Run Code Online (Sandbox Code Playgroud)

JS在这做什么?非常感谢你.

javascript arrays

0
推荐指数
1
解决办法
73
查看次数

标签 统计

javascript ×2

arrays ×1