-1

始める前に、使用しないように言わないでくださいeval。入力が完全に衛生的であることはわかっているので、安全、迅速、簡単です。

私は JavaScript エンジンを使用して、Java で作成した電卓を動かしています。これを行うには、単純に入力を文字列に連結し、それを JavaScript に渡します。たとえば、ボタン1+、およびをクリックすると5、 String が作成され"1+5"ます。0x文字の前に置くことで、これも16進数で機能するようA+なり8ました"0xA+8。私の問題は、バイナリ モードのプログラミングに起因します。私はそれを渡そうとしました0b1101+0b10(これはJavaがバイナリリテラルを行う方法です)が、エラーがスローされるだけです。JavaScript でバイナリ リテラルを処理するにはどうすればよいですか?

4

1 に答える 1

2

更新: ES2015 の時点で、JavaScript はバイナリNumberリテラルをサポートしています。

console.log(0b1101+0b10) // 15 (in decimal)

または、文字列を使用Number.parseIntして、基数 2 で使用することもできます。

var a = parseInt('1101', 2) // Note base 2!
var b = parseInt('0010', 2) // Note base 2!
console.log(a+b) // 15 (in decimal)

異なる基数で数値を表示するためにNumber#toString、基数も受け入れます:

(15).toString(2) // 1111

注: ユーザー入力を に直接渡す場合eval()は、正規表現を使用して、入力に必要な数字と演算子 ( 、 など) のみが含まれるようにし+ます-

于 2013-09-30T20:19:13.700 に答える