quiz Informatique · 11 questions

Fundamentals of JavaScript and Web Development

help_outline 11 questions
timer ~6 min
auto_awesome AI-generated
0 / 11
Score : 0%
1

Which of the following statements correctly describes the difference between a compiled language and an interpreted language?

2

In a client‑server web architecture, which component is responsible for translating a domain name into an IP address?

3

What will be the result of the following JavaScript expression? ```js let x = 5; let y = "5"; let result = x == y; ```

4

Which method would you use to add a new element as the last child of an existing DOM node?

5

A developer wants to prevent a form from being submitted when a required field is empty. Which JavaScript technique should be used?

6

Consider the following code snippet: ```js let arr = ["A", "B", "C"]; arr.unshift("Z"); ```What will be the content of `arr` after execution?

7

Which of the following regular‑expression patterns matches a three‑digit number followed by a dash and another three‑digit number (e.g., "123-456")?

8

When using jQuery, which method is appropriate to attach a click handler to all paragraphs that hides the clicked paragraph?

9

What is the purpose of the `ready` event in jQuery?

10

Which HTTP status code indicates that the requested resource was not found on the server?

11

In JavaScript, what is the effect of using the unary plus operator (`+`) on a string variable that does not represent a numeric value?

menu_book

Fundamentals of JavaScript and Web Development

Review key concepts before taking the quiz

Fundamentals of JavaScript and Web Development

Welcome to this comprehensive guide that covers the core concepts tested in a typical introductory quiz for web developers. Whether you are a beginner learning the difference between compiled and interpreted languages, or an intermediate coder mastering DOM manipulation and regular expressions, this course provides clear explanations, practical examples, and SEO‑friendly terminology to help you retain the material and improve your search visibility.

Compiled vs. Interpreted Languages

What is a compiled language?

A compiled language is transformed into native machine code by a compiler before it is executed. The resulting binary runs directly on the operating system without the need for an additional translation step at runtime. This process typically yields faster performance because the heavy lifting of syntax analysis and optimization occurs ahead of time.

What is an interpreted language?

An interpreted language is read and executed line‑by‑line by an interpreter during runtime. The interpreter translates each statement into executable actions on the fly, which can simplify development and debugging but may introduce a performance overhead compared to compiled code.

  • Key difference: compilation produces a standalone executable; interpretation relies on a runtime engine.
  • Typical examples: C, C++ (compiled) vs. JavaScript, Python (interpreted).
  • Impact on web development: JavaScript is interpreted by browsers, allowing rapid iteration without a build step.

Client‑Server Architecture and DNS

The role of DNS in web communication

When a user types example.com into a browser, the Domain Name System (DNS) server translates that human‑readable domain into an IP address that computers use to locate the web server. This translation is essential for establishing the TCP/IP connection that underpins every HTTP request.

  • 1. The browser queries the local DNS cache.
  • 2. If not cached, it contacts the configured DNS resolver (often provided by the ISP).
  • 3. The resolver walks the DNS hierarchy (root → TLD → authoritative server) to retrieve the A or AAAA record.
  • 4. The resolved IP address is returned to the browser, which then opens a socket to the server.

JavaScript Equality Operators

Loose equality (==) vs. strict equality (===)

JavaScript provides two equality operators. The == operator performs type coercion, converting operands to a common type before comparison. In contrast, === checks both value and type, offering a more predictable result.

Consider the following snippet:

let x = 5;
let y = "5";
let result = x == y; // true because "5" is coerced to number 5

Using === would return false because the types (number vs. string) differ. Understanding this distinction prevents subtle bugs in conditional logic.

Manipulating the DOM

Adding elements with appendChild

The most common way to insert a new node at the end of an existing element is parentNode.appendChild(newElement). This method preserves the existing child order and updates the live DOM tree instantly.

const list = document.querySelector('ul');
const item = document.createElement('li');
item.textContent = 'New item';
list.appendChild(item); // adds as the last 
  • in the list
  • Other DOM manipulation methods

    • insertBefore(newNode, referenceNode) – inserts before a specific child.
    • replaceChild(newNode, oldNode) – swaps an existing node.
    • removeChild(oldNode) – deletes a child from its parent.

    Choosing the right method improves code readability and performance, especially in large, dynamic interfaces.

    Form Validation with JavaScript

    Preventing default form submission

    To stop a form from submitting when required fields are empty, attach a submit event listener and call event.preventDefault(). This halts the browser’s default navigation while allowing custom validation logic.

    document.querySelector('form').addEventListener('submit', function(event) {
      const name = this.elements['name'].value.trim();
      if (!name) {
        alert('Name is required');
        event.preventDefault(); // stops the form submission
      }
    });

    Using preventDefault is preferred over disabling the submit button because it preserves accessibility and works with progressive enhancement.

    Working with Arrays

    The unshift method

    The Array.prototype.unshift() method adds one or more elements to the beginning of an array, shifting existing elements to higher indexes. For example:

    let arr = ["A", "B", "C"];
    arr.unshift("Z");
    // arr is now ["Z", "A", "B", "C"]

    This operation returns the new length of the array and is useful when you need to maintain a reverse chronological order, such as a stack of recent actions.

    Regular Expressions for Pattern Matching

    Matching a three‑digit dash three‑digit format

    A regular expression that validates strings like 123-456 is /^\d{3}-\d{3}$/. Breakdown:

    • ^ – start of the string.
    • \d{3} – exactly three digits.
    • - – a literal dash.
    • \d{3} – another three digits.
    • $ – end of the string.

    Using this pattern in JavaScript:

    const pattern = /^\d{3}-\d{3}$/;
    console.log(pattern.test('123-456')); // true
    console.log(pattern.test('12-3456')); // false

    jQuery Event Handling

    Attaching a click handler to hide paragraphs

    jQuery simplifies event binding. To hide a paragraph when it is clicked, use the .click() shortcut:

    $('p').click(function() {
      $(this).hide();
    });

    This code selects all <p> elements, registers a click listener, and calls $(this).hide() to remove the element from view. For larger applications, consider .on('click', 'p', handler) to leverage event delegation.

    Conclusion

    By mastering the distinctions between compiled and interpreted languages, understanding DNS resolution, using JavaScript equality wisely, manipulating the DOM, validating forms, working with array methods, crafting precise regular expressions, and handling events with jQuery, you build a solid foundation for modern web development. Apply these concepts in real projects, and you will notice improved code quality, better performance, and a smoother user experience.

    Stop highlighting.
    Start learning.

    Join students who have already generated over 50,000 quizzes on Quizly. It's free to get started.