Skip to main content

JavaScript

Introduction

JavaScript is the scripting language of the Web. It can operate on both client-side and server-side environments and brings interactivity, logic, and dynamic content to web applications.


Motivation & History of JavaScript

Why JavaScript? Evolution from Netscape to ECMAScript standards.

JavaScript evolved from Netscape’s scripting language into a standardized language managed by ECMA International. Today, it powers the dynamic behavior of modern web applications.

How does JavaScript compare to Python, Java, and C++?

JavaScript is:

  • Dynamically typed (like Python, unlike Java/C++)
  • Interpreted (not compiled like C++)
  • More permissive and flexible with fewer rules

Static vs. Dynamic Typing

A. Static Typing (e.g., C++)

int a = 0;

int sum(int a, int b){
return a + b;
}

B. Dynamic Typing (e.g., JavaScript)

var a;
a = 5;

function sum(a, b) {
return a + b;
}

In JS, variable types are inferred at runtime. Languages like Python, Perl, and PHP behave similarly.

info

Please make sure you have understood this topic before you proceed.


The Three Pillars of the Web

HTML, CSS, and JavaScript work together to structure, style, and bring interactivity to webpages.

Real World Usage

Websites like YouTube and Amazon rely on JS for:

  • Hover effects
  • Autocomplete dropdowns
  • Interactive forms and content

JavaScript Basics

JavaScript Syntax Overview

alert('Hello World');
let name = 'John';
const PI = 3.14;
  • Blocks: { ... }
  • Statements end with ;
  • Strings use ' or ", variables use camelCase

Arrays

var days = ['Mon', 'Tue', 'Wed'];
alert(days[0]);

Functions & Scope

function greet() {
alert('Hello');
}

DOM Manipulation Basics

  • document.querySelector()
  • document.getElementById()
  • addEventListener()

HTML DOM (Document Object Model)

The DOM represents HTML structure as a tree and allows dynamic interaction via JS.

Example

<p id="demo"></p>
<script>
document.getElementById('demo').innerHTML = 'Hello!';
</script>

JavaScript Events

JS is event-driven. Examples:

  • onclick
  • onmouseover
  • onkeyup

Example

<div onclick="alert('Clicked!')">Click Me</div>

External JavaScript

Linking External JS

<script src="script.js"></script>

Async vs. Defer

<script src="script.js" async></script>
<script src="script.js" defer></script>
  • async: runs ASAP after downloading
  • defer: waits until HTML parsing is done

Functions in Depth

Anonymous Functions

const greet = function () {
alert('Hello');
};

Callback Functions

function process(callback) {
const name = prompt('Name?');
callback(name);
}

JavaScript Event Loop

  • JS is single-threaded.
  • The event loop lets JS handle async tasks without blocking.

Event Loop Explained


Introduction to jQuery

jQuery Syntax

$(document).ready(function () {
$('button').click(function () {
alert('Clicked!');
});
});

Including jQuery

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

Activity – Greet the User

Task

  1. Prompt the user for their name using prompt()
  2. Display Good Morning, <name>! on the page

Level Up

  • Display in random colors
  • Add reset button
  • Dynamic text resizing
  • Add Bootstrap classes via JS

Reflection Questions

  • What happens if input is empty?
  • How does JS update the DOM?
  • How can you enhance this with more styling?

Best Practices

  • Use let and const, avoid var
  • Use external JS files and defer scripts
  • Avoid inline event handlers
  • Separate HTML/CSS/JS
  • Prefer addEventListener

Reflection Questions

  1. What’s the difference between async and defer?
  2. How do you define an anonymous function?
  3. What is a callback function?
  4. Why should scripts load just before </body>?

Summary

  • JavaScript enables dynamic content and interactivity
  • DOM allows real-time page updates
  • Functions and callbacks drive responsive experiences
  • Async handling and the event loop ensure fluid UX

Disclaimer: Generative AI was used in part to generate these lecture notes.