Javascript 用于计算器错误的js数字函数
有人能解释一下为什么我在运行下面的函数时会收到错误消息Javascript 用于计算器错误的js数字函数,javascript,Javascript,有人能解释一下为什么我在运行下面的函数时会收到错误消息uncaughtreferenceerror:Invalid left-side in assignment function number(a){ var last = parseInt(stream.charAt(stream.length-1)); if(stream === ''){ stream = a; } else if(isNumber(last)){ console.l
uncaughtreferenceerror:Invalid left-side in assignment
function number(a){
var last = parseInt(stream.charAt(stream.length-1));
if(stream === ''){
stream = a;
}
else if(isNumber(last)){
console.log(last);
stream.charAt(stream.length-1) = last*10 + a;
}
else{
stream += ' '+a;
}
document.getElementById('display').innerHTML = stream;
}
错误在这一行:
stream.charAt(stream.length-1) = last*10 + a;
无法将某些内容分配给stream.charAt()
。该函数只返回一个字符
根据我收集的信息,您将从流
中获取最后一个字符。如果是整数,则将其乘以10
,然后将a
附加到流中
相反,这将得到相同的结果:
stream += '0' + a;
由于要将值添加回数组中,因此将一个单位数整数乘以
10
,或者只在其后面添加一个“0”
,实际上并不重要。错误在这一行:
stream.charAt(stream.length-1) = last*10 + a;
无法将某些内容分配给stream.charAt()
。该函数只返回一个字符
根据我收集的信息,您将从流
中获取最后一个字符。如果是整数,则将其乘以10
,然后将a
附加到流中
相反,这将得到相同的结果:
stream += '0' + a;
由于要将值重新添加到数组中,因此将一个单位数整数乘以
10
,或者只在其后添加一个“0”
,实际上并不重要。问题是不能这样赋值
stream.charAt(stream.length-1) = last*10 + a;
问题是你不能这样分配
stream.charAt(stream.length-1) = last*10 + a;
你的问题似乎是这个代码部分
stream.charAt(stream.length-1) = last*10 + a;
charAt返回一个字符串,而不是流中的位置(我假设流是一个字符串),因此不能覆盖它
要解决此问题,您可以执行以下操作:
stream = stream.substring(0,stream.length-1)+last*10+a
我不允许发表评论,但Cerburs的答案对last='0'不起作用,并且在本例中会添加一个额外的0,这应该起作用您的问题似乎是这个代码部分
stream.charAt(stream.length-1) = last*10 + a;
charAt返回一个字符串,而不是流中的位置(我假设流是一个字符串),因此不能覆盖它
要解决此问题,您可以执行以下操作:
stream = stream.substring(0,stream.length-1)+last*10+a
我不允许发表评论,但Cerburs的答案对last='0'不起作用,并且在本例中会添加一个额外的0,这应该可以工作,因为它是
未定义的
添加到您的javascriptstream
很可能是一个全局的,伙计们。这不是这里的问题。Alice,stream.charAt(stream.length-1)
应该做什么?“stream”确实是一个全局变量。我试图调试一些JavaScript计算器代码,但这些代码不起作用。代码是一个更大的函数的一部分:函数号(a){var last=parseInt(stream.charAt(stream.length-1));if(stream==='''{stream=a;}else if(isNumber(last)){console.log(last);stream+='0'+a;}else{stream+='='+a;}
stream
是未定义的var-stream
添加到您的javascriptstream
很可能是全局的,伙计们。这不是问题所在。Alice,stream.charAt(stream.length-1)到底是什么
应该做什么?'stream'确实是一个全局变量。我正在尝试调试一些不起作用的JavaScript计算器代码。该代码是更大函数的一部分:函数号(a){var last=parseInt(stream.charAt(stream.length-1));if(stream==''{stream=a;}else if(isNumber(last)){console.log(last);stream+='0'+a;}其他{stream+=''+a;}
Experience speaksthank you@Cerbrus,它现在起作用了,非常感谢。Experience speaksthank you@Cerbrus,它现在起作用了,非常感谢。1个正确答案就足够了。无需重复。:)我只是想帮助sir 1个正确答案就足够了。无需重复。:)我只是想帮助sir