hositing 提升
x=10;
var x;
x=10;
let x;
//153:1 Uncaught ReferenceError: Cannot access 'x' before initialization
当使用WebGL时,以下是一些必须记住的API:
- gl.createShader(type):创建一个新的着色器对象。type参数应该是gl.VERTEX_SHADER或gl.FRAGMENT_SHADER之一,表示要创建的着色器的类型。
- gl.shaderSource(shader, source):将着色器源代码分配给着色器对象。
- gl.compileShader(shader):编译着色器对象。
- gl.getShaderParameter(shader, pname):获取着色器对象的参数值。pname参数应该是gl.COMPILE_STATUS,表示编译是否成功。
- gl.getShaderInfoLog(shader):获取着色器对象的信息日志。
- gl.createProgram():创建一个新的着色器程序对象。
- gl.attachShader(program, shader):将着色器对象附加到着色器程序对象上。
- gl.linkProgram(program):链接着色器程序对象。
- gl.getProgramParameter(program, pname):获取着色器程序对象的参数值。pname参数应该是gl.LINK_STATUS,表示链接是否成功。
- gl.getProgramInfoLog(program):获取着色器程序对象的信息日志。
- gl.useProgram(program):指定要使用的着色器程序对象。
- gl.bindBuffer(target, buffer):将缓冲区对象绑定到指定的目标上。
- gl.bufferData(target, data, usage):将数据存储在缓冲区对象中。
- gl.vertexAttribPointer(index, size, type, normalized, stride, offset):指定顶点属性数组的布局。
- gl.enableVertexAttribArray(index):启用顶点属性数组。
- gl.drawArrays(mode, first, count):绘制图形。
这些API是WebGL中最常用的API之一,但还有许多其他API可用于更高级的图形编程。如果您需要更多信息,请告诉我。