| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/DataView | [Back] [Original] |
Get to know MDN better
const littleEndian = (() => {
const buffer = new ArrayBuffer(2);
new DataView(buffer).setInt16(0, 256, true /* */);
// Int16Array
return new Int16Array(buffer)[0] === 256;
})();
console.log(littleEndian); // true false
DataView.prototype.setBigInt64() DataView.prototype.setBigUint64() 64 getUint64() Number.MAX_SAFE_INTEGER
function getUint64(dataview, byteOffset, littleEndian) {
// 64 32 4
const left = dataview.getUint32(byteOffset, littleEndian);
const right = dataview.getUint32(byteOffset + 4, littleEndian);
// 32
const combined = littleEndian
? left + 2 ** 32 * right
: 2 ** 32 * left + right;
if (!Number.isSafeInteger(combined))
console.warn(combined, " MAX_SAFE_INTEGER");
return combined;
}
64 BigInt BigInt BigInt JavaScript 32
const BigInt = window.BigInt,
bigThirtyTwo = BigInt(32),
bigZero = BigInt(0);
function getUint64BigInt(dataview, byteOffset, littleEndian) {
// 64 32 4
const left = BigInt(dataview.getUint32(byteOffset | 0, !!littleEndian) >>> 0);
const right = BigInt(
dataview.getUint32(((byteOffset | 0) + 4) | 0, !!littleEndian) >>> 0,
);
// 32
return littleEndian
? (right << bigThirtyTwo) | left
: (left << bigThirtyTwo) | right;
}
DataView() DataView
DataView.prototype[Symbol.toStringTag][Symbol.toStringTag] "DataView" Object.prototype.toString()
DataView.prototype.bufferDataView.prototype.byteLength
DataView.prototype.byteOffsetDataView.prototype.getBigInt64() DataView 8 64
DataView.prototype.getBigUint64() DataView 8 64
DataView.prototype.getFloat16() DataView 2 16
DataView.prototype.getFloat32() DataView 4 32
DataView.prototype.getFloat64() DataView 8 64
DataView.prototype.getInt16() DataView 2 16
DataView.prototype.getInt32() DataView 4 32
DataView.prototype.getInt8() DataView 1 8
DataView.prototype.getUint16() DataView 2 16
DataView.prototype.getUint32() DataView 4 32
DataView.prototype.getUint8() DataView 1 8
DataView.prototype.setBigInt64() 64 DataView 8
DataView.prototype.setBigUint64() 64 DataView 8
DataView.prototype.setFloat16() 16 DataView 2
DataView.prototype.setFloat32() 32 DataView 4
DataView.prototype.setFloat64() 64 DataView 8
DataView.prototype.setInt16() 16 DataView 2
DataView.prototype.setInt32() 32 DataView 4
DataView.prototype.setInt8() 8 DataView 1
DataView.prototype.setUint16() 16 DataView 2
DataView.prototype.setUint32() 32 DataView 4
DataView.prototype.setUint8() 8 DataView 1
const buffer = new ArrayBuffer(16);
const view = new DataView(buffer, 0);
view.setInt16(1, 42);
view.getInt16(1); // 42
| ECMAScript 2027 LanguageSpecification # sec-dataview-objects |
DataView core-js polyfillDataView API ArrayBufferSharedArrayBufferDataViewgetBigInt64()DataView.prototype.getBigUint64()DataView.prototype.getFloat16()getFloat32()DataView.prototype.getFloat64()DataView.prototype.getInt8()getInt16()DataView.prototype.getInt32()DataView.prototype.getUint8()DataView.prototype.getUint16()DataView.prototype.getUint32()DataView.prototype.setBigInt64()DataView.prototype.setBigUint64()DataView.prototype.setFloat16()DataView.prototype.setFloat32()DataView.prototype.setFloat64()DataView.prototype.setInt8()DataView.prototype.setInt16()DataView.prototype.setInt32()DataView.prototype.setUint8()DataView.prototype.setUint16()DataView.prototype.setUint32()Object/FunctionObject.prototype.__defineGetter__()Object.prototype.__defineSetter__()Object.prototype.__lookupGetter__()Object.prototype.__lookupSetter__()Object.prototype.hasOwnProperty()Object.prototype.isPrototypeOf()Object.prototype.propertyIsEnumerable()Object.prototype.toLocaleString()Object.prototype.toString()Object.prototype.valueOf()| Web Proxy Viewer | New URL | Original Page |