变量创建,str的长度以及使用length属性

时间:2019-03-31 01:08:08

标签: javascript

function exerciseThree (str) {

 // In this exercise, you will be given a variable, it will be called: str

 // On the next line create a variable called 'length'
 // and using the length property assign the new variable to the length of str    

  // Please write your answer in the line above.
  return length;
}

这是我对JavaScript分配的介绍中的一个问题。我不明白练习对我的要求。

length属性返回字符串的长度(字符数)。 练习告诉我,给了一个名为str

的变量

因此:

var str = "";

str.length; //? I'm so lost.

所以我知道我肯定是错误地看待这种情况。如果有人可以解释该练习及其目的(例如,他们是否确实在寻找str.length;?),我将不胜感激。

1 个答案:

答案 0 :(得分:0)

为您提供了变量(它作为参数传递到函数中),因此您不必做一个-只需将#include <glad/glad.h> #define GLFW_INCLUDE_NONE #include <GLFW/glfw3.h> #include <iostream> #define STB_IMAGE_IMPLEMENTATION #include "stb_image.h" void CheckStatus( GLuint obj, bool isShader ) { GLint status = GL_FALSE, log[ 1 << 11 ] = { 0 }; ( isShader ? glGetShaderiv : glGetProgramiv )( obj, isShader ? GL_COMPILE_STATUS : GL_LINK_STATUS, &status ); if( status == GL_TRUE ) return; ( isShader ? glGetShaderInfoLog : glGetProgramInfoLog )( obj, sizeof( log ), NULL, (GLchar*)log ); std::cerr << (GLchar*)log << "\n"; std::exit( EXIT_FAILURE ); } void AttachShader( GLuint program, GLenum type, const char* src ) { GLuint shader = glCreateShader( type ); glShaderSource( shader, 1, &src, NULL ); glCompileShader( shader ); CheckStatus( shader, true ); glAttachShader( program, shader ); glDeleteShader( shader ); } const char* vert = 1 + R"GLSL( #version 330 core layout(location = 0) in vec3 aPos; layout(location = 1) in vec3 aColor; layout(location = 2) in vec2 aTexCoord; out vec3 ourColor; out vec2 TexCoord; void main() { gl_Position = vec4(aPos, 1.0); ourColor = aColor; TexCoord = aTexCoord; } )GLSL"; const char* frag = 1 + R"GLSL( #version 330 core out vec4 FragColor; in vec3 ourColor; in vec2 TexCoord; uniform sampler2D ourTexture; void main() { FragColor = texture(ourTexture, TexCoord); } )GLSL"; int main( int, char** ) { glfwSetErrorCallback( []( int, const char* desc ) { std::cerr << desc << "\n"; std::exit( EXIT_FAILURE ); } ); glfwInit(); glfwWindowHint( GLFW_CONTEXT_VERSION_MAJOR, 3 ); glfwWindowHint( GLFW_CONTEXT_VERSION_MINOR, 3 ); glfwWindowHint( GLFW_OPENGL_FORWARD_COMPAT, GLFW_TRUE ); glfwWindowHint( GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE ); GLFWwindow* window = glfwCreateWindow( 640, 480, "GLFW", NULL, NULL ); glfwMakeContextCurrent( window ); gladLoadGLLoader( (GLADloadproc)glfwGetProcAddress ); GLuint prog = glCreateProgram(); AttachShader( prog, GL_VERTEX_SHADER, vert ); AttachShader( prog, GL_FRAGMENT_SHADER, frag ); glLinkProgram( prog ); CheckStatus( prog, false ); float vertices[] = { -0.5f, -0.5f, 0.0f, 1.0f,1.0f,0.0f, 0.0f,0.0f, 0.5f, -0.5f, 0.0f, 0.0f,1.0f,0.0f, 1.0f,0.0f, 0.5f, 0.5f, 0.0f, 1.0f,0.0f,0.0f, 1.0f,1.0f, -0.5f, 0.5f, 0.0f, 1.0f,1.0f,0.0f, 0.0f,1.0f }; unsigned int indices[] = { 0,1,2, 2,3,0 }; unsigned int VBO, VAO, EBO; glGenVertexArrays(1, &VAO); glGenBuffers(1, &VBO); glGenBuffers(1, &EBO); glBindVertexArray(VAO); glBindBuffer(GL_ARRAY_BUFFER, VBO); glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO); glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)0); glEnableVertexAttribArray(0); glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)(3 * sizeof(float))); glEnableVertexAttribArray(1); glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)(6 * sizeof(float))); glEnableVertexAttribArray(2); unsigned int texture; glGenTextures(1, &texture); glBindTexture(GL_TEXTURE_2D, texture); // Set texture wrap parameters glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); // Set texture filtering paremeters glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); // Load image, create texture and generate mipmaps int w, h; stbi_set_flip_vertically_on_load( 1 ); // https://upload.wikimedia.org/wikipedia/commons/thumb/d/d1/Brick_wall_close-up_view.jpg/800px-Brick_wall_close-up_view.jpg unsigned char *data = stbi_load("wall.jpg", &w, &h, NULL, 3); if (data) { std::cout << "LOADING TEXTURE: " << w << "x" << h << std::endl; glPixelStorei( GL_UNPACK_ALIGNMENT, 1 ); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, w, h, 0, GL_RGB, GL_UNSIGNED_BYTE, data); glGenerateMipmap(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, 0); } else { std::cout << "FAILED TO LOAD TEXTURE\n" << std::endl; } stbi_image_free(data); while (!glfwWindowShouldClose(window)) { glClearColor(0.2f, 0.3f, 0.3f, 1.0f); glClear(GL_COLOR_BUFFER_BIT); // Render stuff glUseProgram( prog ); unsigned int texture_unit = 0; glActiveTexture( GL_TEXTURE0 + texture_unit ); glUniform1i( glGetUniformLocation( prog, "ourTexture" ), texture_unit ); glBindTexture(GL_TEXTURE_2D, texture); glBindVertexArray(VAO); glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0); glBindVertexArray(0); glfwSwapBuffers(window); glfwPollEvents(); } } 设置为length

str.length