Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么parseInt无法在Javascript中正确测试数组?_Javascript_Parseint - Fatal编程技术网

为什么parseInt无法在Javascript中正确测试数组?

为什么parseInt无法在Javascript中正确测试数组?,javascript,parseint,Javascript,Parseint,鉴于: 及 为什么parseInt(obj)返回NaN,而parseInt(arr)返回21 我有一个函数,我要么传递一个int,要么传递一个散列类型对象,要么传递一个普通的数组。我希望parseInt为对象和数组返回NaN,从而简化参数检查。给出了什么?这是因为parseInt试图在解析为整数之前将第一个参数强制为字符串字符串(obj)返回“[对象对象]”且无法解析,但字符串([21,23])返回“21,23”,该字符串将解析为不可解析字符 见: 让inputStringbe?ToString

鉴于:

为什么
parseInt(obj)
返回
NaN
,而
parseInt(arr)
返回
21


我有一个函数,我要么传递一个
int
,要么传递一个散列类型
对象
,要么传递一个普通的
数组
。我希望
parseInt
对象
数组
返回
NaN
,从而简化参数检查。给出了什么?

这是因为
parseInt
试图在解析为整数之前将第一个参数强制为字符串<代码>字符串(obj)返回
“[对象对象]”
且无法解析,但
字符串([21,23])
返回
“21,23”
,该字符串将
解析为不可解析字符

见:

inputString
be?ToString(
string

(将输入强制为字符串)

如果S包含的代码单元不是基数R数字,则Z是S的子串,由第一个这样的代码单元之前的所有代码单元组成;否则,设Z为S


(删除以非数字字符开头的字符串的任何部分,以便
“21,23”
->
“21”
)。

这是正确的。数组的字符串表示是连接数组元素的结果。“这是因为parseInt试图将参数强制为字符串”?文档中的推断不是这样的:就是这样。编程中微妙的细微差别之多令人惊讶languages@AlMamun为什么你认为医生会说相反的话?非字符串参数转换为字符串,是吗?对我来说,文档说parseInt试图将值从字符串强制转换为数字。为什么要使用
parseInt()
?我只会使用它进行两件事:(a)非基数10输入,和(b)以CSS
“10px”
等已知格式解析输入字符串,其中我只需要
10
部分。我相信
Number([21,22])
返回
NaN
,一元加运算符
+[21,23]
@nnnnnn-为什么不呢<代码>如果isNaN(parseInt(argument1))…
。又快又容易。有什么害处?我不是在胡闹。我真的很好奇。如果
argument1
是字符串
“123abc”
,那不是一个有效的数字,但是
parseInt(“123abc”)
返回
123
。如果这是您真正想要的结果,那么当然可以使用
parseInt()
,但根据我的经验,这是非常少有意义的(我已经给出了一个例子,说明它是有意义的)。如果要测试函数参数是否已经是一个数字(而不是一个对象或数组),可以使用
typeof
运算符。@nnnnnn-我明白你的意思。
var obj={0:21,1:22}
var arr=[21,22]