1

2つの値を持つ2D配列があり、小さなメッセージで違いを出力したいと思います。

var array = [[0,2],[3,4]];
console.log(array[0][1]-array[0][0]) //prints '2'
console.log(array[0][1]-array[0][0] + ' is the number') //prints '2 is the number'
console.log('The number is' + array[0][1]-array[0][0]) //prints 'NaN'
console.log('The number is ' + parseInt(array[0][1]-array[0][0], 10)) //prints 'The number is 2'

結果の前parseInt()にメッセージを印刷するためにここにいる必要があるのに、結果のにテキストを印刷する、または結果だけを印刷するのはなぜA-OKですか?

4

2 に答える 2

7

実際には、parseInt違いはありません。重要なのは、減算を括弧で囲んでいることです。

あなたのコードが基本的に言っていることは:

"The number is" + array[0][1]-array[0][0]
// becomes...
"The number is 2"-array[0][0]
// is cast to...
parseInt("The number is 2")-array[0][0];
// which is...
NaN-0
// or just...
NaN

それはすべて操作の順序に関するものです。

于 2012-11-26T06:44:05.857 に答える
0

これは、JavaScriptが左から右への数学の順序に従うために発生します。文字列から始めたので、文字列を連結していると想定しています。

于 2012-11-26T06:45:32.347 に答える