gpt4 book ai didi

javascript - 为什么将整数与长度为 1 的数组进行比较返回 true 而将 false 与长度为 2 或更大的数组进行比较?

转载 作者:可可西里 更新时间:2023-11-01 02:36:07 26 4
gpt4 key购买 nike

为什么将 0 与长度为 1 的数组进行比较返回 true 而对于长度为 2 或更大的数组返回 false?例如,

var a=[]  //undefined
0<a //returns false
a.push(1) // [1]
0<a // returns true
a.push(2) // [1, 2]
0<a // return false
a.push(3) // [1, 2, 3]
0<a // return false

最佳答案

基本上你会得到一个隐式类型转换,首先是toString ,

The Array object overrides the toString method of Object. For Array objects, the toString method joins the array and returns one string containing each array element separated by commas.

JavaScript calls the toString method automatically when an array is to be represented as a text value or when an array is referred to in a string concatenation.

like join 起作用,然后它被转换为数字。

what you do   what you get  result  array        string      number
------------ ------------ ------ --------- -------- ----------
var a = [];
0 < a 0 < 0 false [] -> '' -> 0
a.push(1);
0 < a 0 < 1 true [1] -> '1' -> 1
a.push(2);
0 < a 0 < NaN false [1, 2] -> '1,2' -> NaN
a.push(3);
0 < a 0 < NaN false [1, 2, 3] -> '1,2,3' -> NaN

关于javascript - 为什么将整数与长度为 1 的数组进行比较返回 true 而将 false 与长度为 2 或更大的数组进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44314143/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com