When you want to store multiple values in a single variable, you should use a(n) _________.

  • "array"
  • "object"
  • "string"
  • "function"
To store multiple values in a single variable in JavaScript, you should use an array. An array is a data structure that can hold multiple values of different data types. It is created using square brackets, like this: var myArray = [value1, value2, value3];. Arrays are versatile and commonly used for tasks like storing lists of items or organizing data.

Which property allows you to change the HTML content of an element?

  • textContent
  • innerText
  • innerHTML
  • innerTextContent
The innerHTML property allows you to change the HTML content of an element in JavaScript. It is often used to set or modify the content of an element and can include HTML tags. However, be cautious when using innerHTML to avoid potential security issues, such as cross-site scripting (XSS).

If you want to convert a JavaScript object to a string in the Fetch API, you should use the _________ method.

  • parse()
  • serialize()
  • stringify()
  • convert()
In the Fetch API, you should use the JSON.stringify() method to convert a JavaScript object to a string. This method serializes the object into a JSON string, which is a common way to send structured data in HTTP requests and responses. parse() is used for JSON parsing.

The ________ interface provides methods to deal with HTTP responses represented in binary format.

  • a) TextDecoder Interface
  • b) FormData Interface
  • c) Blob Interface
  • d) ArrayBuffer Interface
The Blob interface provides methods to deal with HTTP responses represented in binary format. It allows you to work with binary data such as images, audio, or other binary content in a more efficient way. This is essential when handling binary data in web applications.

You're debugging a piece of code and find an unexpected type coercion in a comparison. Which operator is most likely being used that could cause this issue?

  • == (Equality)
  • === (Strict Equality)
  • > (Greater Than)
  • != (Inequality)
The double equal operator (==) performs type coercion during comparison, which means it converts the operands to the same type before comparing. This can lead to unexpected results when comparing values of different types, potentially causing type coercion issues in your code. You should generally prefer strict equality (===) to avoid type coercion.

How does the temporal dead zone impact function expressions in JavaScript?

  • It prevents the use of arrow functions in function expressions.
  • It enforces a delay in the execution of function expressions.
  • It causes a runtime error if a variable is accessed before its declaration in a function.
  • It makes function expressions execute before other code in the same scope.
The temporal dead zone (TDZ) is a phase during the variable initialization in JavaScript. It occurs between the variable's declaration and its assignment. During this phase, trying to access the variable will result in a ReferenceError. This impacts function expressions as variables declared within them are also subject to the TDZ. If you try to access such a variable before its declaration, it will lead to a runtime error.

What is the main difference between function declaration and function expression in JavaScript?

  • Function declarations are hoisted, while function expressions are not.
  • Function expressions can be named or anonymous, while function declarations must have a name.
  • Function declarations are used for defining methods in objects, while function expressions are used for standalone functions.
  • Function expressions are more efficient than function declarations.
The primary difference between function declaration and function expression in JavaScript is hoisting. Function declarations are hoisted, which means they are moved to the top of their containing scope during compilation. This allows you to call the function before it's declared in your code. Function expressions, on the other hand, are not hoisted, so they can only be used after their declaration in the code. Understanding this difference is crucial for managing the order of function calls in your JavaScript programs.

What issues might arise due to JavaScript's prototype chain, and how might they be mitigated?

  • Issues may include unintentional property overwrites, inefficiency due to long chains, and unexpected inheritance. Mitigation involves using techniques like Object.create(), encapsulation, and avoiding global scope pollution.
  • Issues include limited encapsulation, increased memory usage, and reduced performance. Mitigation is achieved through using classes, constructors, and the ES6 "super" keyword for proper inheritance.
  • Problems include circular references, inability to hide properties, and difficulties with class-based modeling. Mitigation is achieved by avoiding circular references and using ES6 classes.
  • Problems might involve conflicts between prototypes, slow property access, and limited flexibility. Mitigation requires optimizing property access and using mixins.
JavaScript's prototype chain can lead to issues like unintentional property overwrites, inefficiency, and unexpected inheritance. To mitigate these, developers can use techniques like Object.create() to create clean, isolated objects, encapsulation to hide properties, and avoid global scope pollution.

You're debugging a JavaScript application and notice that a function defined within an object method using an arrow function is not behaving as expected. The "this" keyword is not referring to the object. What could be the reason for this?

  • Arrow functions always bind "this" to the object
  • Arrow functions don't have their own "this"
  • Objects cannot contain arrow functions
  • The object's properties are incorrectly defined
Arrow functions in JavaScript do not have their own "this" context. Instead, they inherit the "this" value from their containing function or the global context. If an arrow function is used inside an object method, it will use the "this" from the surrounding scope, which might not be the object itself.

When using querySelectorAll, the returned object is a _______.

  • NodeList
  • HTMLCollection
  • Array
  • Element
When you use querySelectorAll, it returns a NodeList. A NodeList is a collection of DOM elements that match the specified selector. Unlike an HTMLCollection, a NodeList is not live, which means it won't change dynamically as the document does.