JavaScriptのDataView.setInt32()メソッドとは?使い方とサンプルコードを解説
DataViewオブジェクトのsetInt32()メソッドは、ArrayBuffer内の指定したバイトオフセット位置に、符号付き32ビット整数(-2147483648〜2147483647)を格納するための関数です。バイナリデータを直接操作したい場合に活用できます。
構文
構文は以下のとおりです。
dataView.setInt32(byteOffset, value[, littleEndian]);
各引数の意味は次のとおりです。
- byteOffset:値を格納する位置をバイト単位で指定します。
- value:格納する32ビット整数値を指定します。
- littleEndian(省略可能):falseまたは省略した場合はビッグエンディアン、trueを指定した場合はリトルエンディアン形式で書き込まれます。
基本的な使用例
次の例では、20バイトのArrayBufferを作成し、1バイト目の位置に整数値「36274722」を書き込んだ後、getInt32()メソッドで読み出して表示しています。
<html> <head> <title>JavaScript Example</title> </head> <body> <script type="text/javascript"> var arrayBuffer = new ArrayBuffer(20); var dataView = new DataView(arrayBuffer); dataView.setInt32(1, 36274722); document.write(dataView.getInt32(1)); </script> </body> </html>
実行結果
36274722
小数値を渡した場合の動作
このメソッドには小数値を渡せません。小数値を指定した場合、整数部分のみが切り捨てられ、整数値として扱われます。
<html> <head> <title>JavaScript Example</title> </head> <body> <script type="text/javascript"> var arrayBuffer = new ArrayBuffer(20); var dataView = new DataView(arrayBuffer); dataView.setInt32(1, 554.36); document.write(dataView.getInt32(1)); </script> </body> </html>
実行結果
554
値を指定しなかった場合の動作
valueを省略してsetInt32()を呼び出した場合、何も値が格納されないため、その後にgetInt32()でデータを読み出そうとしても「0」が返されます。
<html> <head> <title>JavaScript Example</title> </head> <body> <script type="text/javascript"> var arrayBuffer = new ArrayBuffer(20); var dataView = new DataView(arrayBuffer); dataView.setInt32(1); document.write(dataView.getInt32(1)); </script> </body> </html>
実行結果
0
まとめ
setInt32()は、DataViewを通じてバイナリデータに符号付き32ビット整数を書き込むためのメソッドです。小数値は切り捨てられ、値を省略した場合は0として読み出される点に注意しましょう。エンディアンの指定もできるため、ネットワークプロトコルやファイルフォーマットの処理などでも柔軟に利用できます。
-
JavaScriptの関数パラメーターとは?使い方をサンプルコードで解説
JavaScriptでは、関数を呼び出すときにさまざまなパラメーター(引数)を渡すことができます。関数側では、渡されたパラメーターを受け取り、それに対して任意の処理を実行することが可能です。また、1つの関数は複数のパラメーターを受け取ることができ、それぞれのパラメーターはカンマ(,)で区切って指定します。さらに、JavaScriptには arguments オブジェクトが用意されており、仮引数として宣言した変数とは別に、実際に関数へ渡されたすべての引数へアクセスできます。以下のサンプルコードでは、Array.from(arguments) を使って受け取った引数を配列化し、順番に画面へ出力して
-
JavaScript DataView()とは?ArrayBufferのバイナリデータを読み書きする方法
JavaScript の DataView は、ArrayBuffer(バイナリデータ)に対して、さまざまな数値型の読み書きを行うための低レベルインターフェースを提供するオブジェクトです。DataView を使うことで、1バイト単位で細かく制御しながら、Int16、Int32、Float64 など複数の数値型として同じバッファにアクセスできます。なお、ArrayBuffer はそのままでは直接操作できないため、DataView や TypedArray を介してアクセスする必要があります。DataView の主なメソッドsetInt16(offset, value):指定したオフセット位置に