类型化视图

类型化视图一般也被认为是一种类型化数组.

因为其元素必须是某种特定的数据类型,类型化视图都继承自 Dataview

  • Int8Array: 表示8位二补整数(即二进制补数)
  • Uint8Array: 8位无符号整数
  • Int16Array: 16位二补数
  • Uint16Array: 16位无符号整数
  • Float32Array: 32位IEEE浮点值
  • Float64Array: 64位IEEE浮点值

与上面同名的构造函数都支持三个参数:

  1. ArrayBuffer
  2. 字节偏移量
  3. 字节长度

返回一个类型化视图实例

此外上面的每个构造函数都有一个 BYTES_PER_ELEMENT属性,用于表示类型化数组的每一个元素需要多少字节.

如 Int8Array 的 BYTES_PER_ELEMENT 则为1

而且如果传入的第一个参数的为一个数值 那么构造函数会返回一个能够保存该数值个数元素的类型化数组

传入的如果是一个普通的数组,那么构造函数则会将该普通数组转为一个类型化视图

PS:如果传入的值大于对应的字节数,那么保存的值将是该值与当前大小最大值的模

例如想在16位无符号整数中保存 65537(最大能保存65535),那么实际保存的值将是1

使用类型化数组时可以通过和普通数组类似的中括号的方式来迭代数组;

类型化数组还拥有一个方法 subarray()

该方法接收两个参数

  1. 开始元素的索引
  2. 结束元素的索引

会返回一个基于当前类型视图的子视图

为什么这一篇文章和上一篇文章看起来和WebGl没有什么关系但是却要仔细介绍呢?

因为WebGL中的着色器编写语言是 GLSL

这种语言是一种类C语言,所以当我们使用WebGL时需要将JavaScript中的"万物皆可放"的数组转为某种单纯的数组格式才能传入着色器进行相应操作

所以类型化数组\视图是WebGL中的基础操作

Javascript高级编程学习笔记(96)—— WebGL(2) 类型化视图的更多相关文章

  1. Javascript高级编程学习笔记(98)—— WebGL(4) WebGL上下文(2)

    错误 Javascript与WebGL之间的一个最大区别在于,WebGL的操作一般不会抛出错误 如果希望获取WebGL的错误信息,那么就需要手动调用  gl.getError() 方法 该方法会返回以 ...

  2. Javascript高级编程学习笔记(97)—— WebGL(3) WebGL上下文(1)

    WebGL上下文 在支持WebGL的浏览器中,WebGL的名字为 "experimental-webgl",这是由于 webgl 的规范仍未制定完成 制定完成后名字就会改为简单的 ...

  3. Javascript高级编程学习笔记(99)—— WebGL(5) 绘图

    绘图 WebGL只能绘制三种形状: 点 线 三角 其它的形状都是由上面的三种形状合成之后绘制到三维空间中的 执行绘图操作 WebGL 提供了两种方法: gl.drawElements() gl.dra ...

  4. Javascript高级编程学习笔记(95)—— WebGL(1) 类型化数组

    WebGL webgl 是针对 canvas 的 3D上下文,与其它Web技术不同,WebGL并非是W3C制定的标准,而是由 Khronos Group 制定的. 类型化数组 WebGL所涉及的复杂运 ...

  5. Javascript高级编程学习笔记(3)—— JS中的数据类型(1)

    前一段时间由于事情比较多,所以笔记耽搁了一段时间,从这一篇开始我会尽快写完这个系列. 文章中有什么不足之处,还望各位大佬指出. JS中的数据类型 上一篇中我写了有关JS引入的Script标签相关的东西 ...

  6. JavaScript高级编程学习笔记(第三章之一)

    继续记笔记,JavaScript越来越有意思了. 继续... 第三章:JavaScript基础 ECMAScript语法在很大程度上借鉴了C和其它类似于C的语言,比如Java和Perl. 大小写敏感: ...

  7. Javascript高级编程学习笔记(1)—— JS简介

    此系列文章,用于记录所学,如有错误欢迎指出. Javascript组成 1.核心(ECMAScript) 2.文档对象模型(DOM) 3.浏览器对象模型(BOM) 1.核心(ECMAScript) E ...

  8. Javascript高级编程学习笔记(57)—— 事件(1)事件流

    事件 JS与HTML的交互是通过事件实现的 而事件指的就是:文档或浏览器窗口特定的交互瞬间 可以通过侦听器来预定事件,以便在事件发生时执行相应的代码 这种模式也是设计模式中的观察者模式 事件流 有了事 ...

  9. Javascript高级编程学习笔记(84)—— Canvas(1)基本用法

    Canvas绘图 Canvas自HTML5引入后,由于其炫酷的效果成为HTML5新增功能中最受欢迎的部分 Canvas元素通过在页面中设定一个区域,然后就可以使用JS在其中绘制图形 <canva ...

随机推荐

  1. spring-security doc logout

    18.5.3 Logging Out Adding CSRF will update the LogoutFilter to only use HTTP POST. This ensures that ...

  2. 让Virtualbox复制出的虚拟机联网

    http://www.williamsang.com/archives/215.html vi /etc/udev/rules.d/70-persistent-net.rules 注释掉eth0的相关 ...

  3. Android 不规则图像填充 小玩着色游戏

    转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/45788433: 本文出自:[张鸿洋的博客] 一.概述 近期群里偶然看到一哥们在 ...

  4. Golang Multipart File Upload Example

    http://matt.aimonetti.net/posts/2013/07/01/golang-multipart-file-upload-example/ The Go language is ...

  5. Android FoldingLayout 折叠布局 原理及实现(二)

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/44283093,本文出自:[张鸿洋的博客] 1.概述 在上一篇Android Fo ...

  6. Eclipse中启动tomcat: java.lang.OutOfMemoryError: PermGen space的解决方法

    tomcat启动的时候出现这种错误一般是项目引用了太多的jar包,或者反射生成了太多的类,或者有太多的常量池,导致非堆内存中永久保存区域不够,就有可能会报java.lang.OutOfMemoryEr ...

  7. Java的参数传递是「值传递」还是「引用传递」?

    关于Java传参时是引用传递还是值传递,一直是一个讨论比较多的话题. 有人说Java中只有值传递,也有人说值传递和引用传递都是存在的,比较容易让人产生疑问. 关于值传递和引用传递其实需要分情况看待. ...

  8. 关于top命令的使用

    在服务器运维过程中,我们有时需要知道当前状态下的系统运行性能,该如何获取呢?今天,咱们聊一下关于top这个小命令的一些知识. top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资 ...

  9. monitor.go 源码阅读

    package main import (     "fmt"     "net/http" ) // 查询监控信息的接口 func statsHandler( ...

  10. 一步一步理解 python web 框架,才不会从入门到放弃 -- 简单登录页面

    上一节,我们基本了解了 Django 的一些配置,这一节,我们将通过一个简单的登录页面,进一步学习 Django 的使用. 新建项目 首先,新建一个 Django 项目,记得别弄错了哦. settin ...