2016-11-18 16 views
1

以下の機能を実行すると、エラーメッセージUncaught ReferenceError: Invalid left-hand side in assignmentが表示される理由を誰にでも説明することができます。電卓エラーのjs番号関数

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; 
} 
+1

'stream'は' undefined'です –

+0

'var stream'あなたのjavascriptに追加します – prasanth

+0

' stream'は非常によくグローバルになるかもしれません。それはここでは問題ではありません。 – Cerbrus

答えて

5

エラーは、この行である:

stream.charAt(stream.length-1) = last*10 + a; 

あなたがstream.charAt()に何かを割り当てることはできません。その関数は文字を返します。

私が収集できるものから、streamの最後の文字を取得しています。整数の場合は、10を掛けてからaをストリームに追加します。 、あなたが戻って配列に値を追加しているので、あなたが10と一桁の整数を掛けた場合、それは本当に問題ではありません

stream += '0' + a; 

:その代わりに

することは、これは同じ結果が得られますまたはそれの後に"0"を追加するだけの場合

+0

エクスペリエンスは – Dherya

+1

さんにありがとうございます@Cerbrus、それは今働いています、感謝します。 –

-1

問題は、あなたがあなたの問題は、あなたのストリームで

stream.charAt(stream.length-1) = last*10 + a; 

のcharAtは、文字列を返すこのcodepart、およびない位置にあると思われるこの

stream.charAt(stream.length-1) = last*10 + a; 
+0

1正解で十分です。それを複製する必要はありません。 :) –

+0

はい、それは私がすでに答えたものです。 – Cerbrus

+0

は、サー – Akhil

0

(私のように割り当てることができないということですストリームが文字列であると仮定します)、上書きすることはできません。

stream = stream.substring(0,stream.length-1)+last*10+a 

イムコメントすることを許されたがCerbrusが最後=のために文句を言わない仕事に答える「0」と、この場合には、追加の0を追加します、これは

を動作するはずない:あなたのような何かを行うことができ、これを解決するために