JavaScript中的ArrayBuffer.byteLength属性
在JavaScriptArrayBuffer对象表示一个固定长度的二进制数据buffer.ThebyteLength的属性ArrayBuffer返回一个无符号的32位整数,指定ArrayBuffer的大小/长度。
语法
其语法如下
array.byteLength
示例
请尝试以下示例。
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var arrayBuffer = new ArrayBuffer(8);
var result = arrayBuffer.byteLength;
document.write("length of the array buffer is: " + result);
</script>
</body>
</html>输出结果
length of the array buffer is: 8
示例
您还可以通过传递字符串值并获取其长度来创建数组缓冲区对象,如以下示例所示。由于这里我们没有传递任何大小值,它返回0-
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var obj = new ArrayBuffer("Hi welcome to Nhooo");
var byteLength = obj.byteLength;
document.write(byteLength);
</script>
</body>
</html>输出结果
0
失误
创建ArrayBuffer时,不能使用负值,复数,并且大小不能超过253,否则此函数会产生错误。
大小大于253
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var obj = new ArrayBuffer(9007199254740995);
var byteLength = obj.byteLength;
document.write(byteLength);
</script>
</body>
</html>输出结果
Error: Array buffer allocation failed
大小和复数
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var obj = new ArrayBuffer(2+3i);
var byteLength = obj.byteLength;
console.log(byteLength);
</script>
</body>
</html>输出结果
Error: Invalid or unexpected token
大小为负值
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var obj = new ArrayBuffer(-72);
var byteLength = obj.byteLength;
console.log(byteLength);
</script>
</body>
</html>输出结果
Error: Invalid array buffer length