我一直试图解决这个问题很长一段时间,并希望得到任何帮助。
代码如下,可在此处查看http://incoming.comule.com/isnan.html
<script>
var price = new Array();
function add(price) {
//alert("function add: is price not a number? = "+isNaN(price));
price[0] = price;
}
function addman() {
price[0] = 0.87;
}
function status() {
alert(price[0]);
}
function num() {
alert("function Number: is price not a number? = "+isNaN(Number(price[0])));
}
function pInt() {
alert("function parseInt: is price not a number? = "+isNaN(parseInt(price[0])));
}
function pFloat() {
alert("function parseFloat: is price not a number? = "+isNaN(parseFloat(price[0])));
}
</script>
<a href="javascript:add('0.45');">Add price 0.45</a> then click ... <a href="javascript:status();">status</a> ,
<a href="javascript:num();">number</a> , <a href="javascript:pInt();">parseInt</a> , <a href="javascript:pFloat();">parseFloat</a>
<p>
<a href="javascript:addman();">set manually</a>
当我点击添加价格,然后是状态时,它显示为未定义,但是当我点击手动设置然后状态时,状态显示该值。唯一的区别是它是如何设置的,有谁知道如何通过函数变量添加它?
答案 0 :(得分:1)
问题是你的数组和函数参数共享相同的名称。后者在函数范围内取代前者,因此您实际上无法访问外部数组。
更改参数名称,你会没事的。
答案 1 :(得分:1)
您只需将Array
重命名为price
以外的其他内容即可。 add
函数price
内部是指函数参数,而不是数组。