なぜ2 + 10 = 12
と2 + 010 = 10
?私はのGoogle Chrome v 51.0とIE 8のコンソールでこれを試してみましたが、同じ結果が得られました。たぶんこれはJavascriptの機能です。
誰かが私の背後にある論理を理解し、役立つ可能性があることを理解するのを手伝ってください。Wierd Javascriptの追加動作
0
A
答えて
2
いつかJavaScriptの扱い番号正確あなたがそれらを指定すると、それはしようとする他の回数字を解釈する。
この場合、JavaScriptは数字を解釈しています。
先行ゼロ
は数8進数であることを意味する - ベース8 - 桁が0、1、2、3、4、5、6、7だから.. 010(8進数)に行きます== 8(10進数)
2 + 010
2 + 8
10
あなたは外部ソースからの数字を扱っている場合、あなたはparseInt
2 + parseInt("010", 10);
注使用することができます。,10
のように翻訳するその数を強制することも重要であるがベース 10. ES3(そして私は5と信じています)では、ブラウザーによって別の結果が得られるかもしれません。
2
0
前にある数字は、javascriptに数字を8進数として解釈するように指示します。したがって、8進数で10
は小数点で8
を意味し、8 + 2
は10
です。
2
先頭に0が付いている数字は、8進数とみなされます。それで010は8と解釈され、したがって2 + 010の合計として10が得られます。これはPythonでも発生します。
3
そのバイナリではない、開始時に0が進それを行い、オクタル010 == 8
1
10
は8進数で8
に等しく、最初のゼロはjavascriptに8進数として解釈させます。したがって、2 + 010
が実行されると、最初に010
が8
に変換され、2
に追加されて10
となります。
関連する問題
- 1. Wierdのマルチスレッド動作
- 2. シングルトンオブジェクトのWierdの動作
- 3. PARSENAME関数の動作がwierd
- 4. Libgdx:SpriteVatch.draw spriteVertecies wierd UV coordsの動作
- 5. スパークストリーミング参加wierdの結果
- 6. Wierd DockWidgets effect
- 7. Javascript ontouchstart/move/end - wierd結果を取得
- 8. セマンティックUIの使い方「コンテンツを追加する」JavaScriptの動作?
- 9. jqueryとjavascriptを使ったボタンのオンオフ動作の追加
- 10. TComPort wierd
- 11. 設定されていないPHPの動作wierd
- 12. JavaScriptでの動的フォームフィールドの追加
- 13. Wierd asp.netセッションの修正
- 14. 動的に作成し、Javascriptでタブスペースを追加します。
- 15. 自動追加機能が追加で動作しない
- 16. Wierd clear bar
- 17. ダブルwierd出力
- 18. ポイントイテレータ用のWierdインターフェイスメソッド
- 19. jsonで追加された動的コンテンツでJavaScriptイベントが動作しない
- 20. Javascriptの追加アイコン
- 21. は、追加のjavascript
- 22. Javascriptの追加エラーメッセージ
- 23. forループ内のjQueryの追加動作
- 24. 追加テキストJavascript
- 25. uwpのプロパティがwierdの動作を示すのを待っています
- 26. Powershellの追加が動作しない
- 27. メテオでcursor.observe({追加})の動作
- 28. デベロッパの動的追加ユーザーフォームを作成
- 29. WierdクラスES6のプロパティの動作React。小道具は更新されません
- 30. JavaScriptでテーブルの削除と追加を動的に追加する
'' use strict''に最も適していなければ、数値の前に '0'があると8進数になります。 – elclanrs
あなたの答えは次のとおりです:http://stackoverflow.com/questions/6718102/in-javascript-eval010-returns-8 – sohel101091