-
Notifications
You must be signed in to change notification settings - Fork 0
Session 4 Javascript Basics
Welcome to Session 4! In this session, you'll learn the fundamentals of JavaScript, a powerful programming language that adds interactivity to websites. JavaScript is essential for modern web development and is used for creating dynamic user experiences.
- Understand what JavaScript is and its role in web development
- Learn JavaScript syntax and basic programming concepts
- Manipulate HTML elements using JavaScript
- Handle user events and create interactive web elements
- Understand how to use JavaScript to solve common web development problems
JavaScript is a high-level, interpreted programming language that conforms to the ECMAScript specification. It's primarily used for enhancing web pages to provide a more interactive experience for users.
- Client-side scripting language (runs in the browser)
- Dynamic typing (variables can change types)
- Object-oriented with prototype-based inheritance
- Event-driven programming
- Single-threaded with asynchronous capabilities
There are three ways to add JavaScript to your HTML:
<button onclick="alert('Hello, World!')">Click Me</button><script>
function sayHello() {
alert('Hello, World!');
}
</script><script src="script.js"></script>// Variables
let name = 'John'; // String
let age = 25; // Number
let isStudent = true; // Boolean
let hobbies = ['reading', 'gaming', 'coding']; // Array
let person = { // Object
name: 'John',
age: 25,
isStudent: true
};
const PI = 3.14159; // Constant
// Modern JavaScript uses let and const instead of var// Arithmetic Operators
let sum = 5 + 3; // Addition
let difference = 5 - 3; // Subtraction
let product = 5 * 3; // Multiplication
let quotient = 5 / 3; // Division
let remainder = 5 % 3; // Modulus
// Comparison Operators
let isEqual = 5 === 3; // Strict equality (value and type)
let isNotEqual = 5 !== 3; // Strict inequality
let isGreater = 5 > 3; // Greater than
let isLess = 5 < 3; // Less than
// Logical Operators
let andOperator = true && false; // Logical AND
let orOperator = true || false; // Logical OR
let notOperator = !true; // Logical NOT// Conditional Statements
if (age >= 18) {
console.log('You are an adult');
} else if (age >= 13) {
console.log('You are a teenager');
} else {
console.log('You are a child');
}
// Switch Statement
switch (day) {
case 'Monday':
console.log('Start of the work week');
break;
case 'Friday':
console.log('End of the work week');
break;
default:
console.log('Another day');
}
// Loops
// For Loop
for (let i = 0; i < 5; i++) {
console.log(i); // Outputs 0, 1, 2, 3, 4
}
// While Loop
let count = 0;
while (count < 5) {
console.log(count); // Outputs 0, 1, 2, 3, 4
count++;
}
// For...of Loop (for arrays)
for (let hobby of hobbies) {
console.log(hobby); // Outputs each hobby
}
// For...in Loop (for objects)
for (let key in person) {
console.log(key + ': ' + person[key]); // Outputs each property
}// Function Declaration
function greet(name) {
return 'Hello, ' + name + '!';
}
// Function Expression
const sayGoodbye = function(name) {
return 'Goodbye, ' + name + '!';
};
// Arrow Function (ES6)
const multiply = (a, b) => a * b;
// Calling Functions
console.log(greet('Alice')); // Hello, Alice!
console.log(sayGoodbye('Bob')); // Goodbye, Bob!
console.log(multiply(4, 5)); // 20The Document Object Model (DOM) is a programming interface for HTML documents. JavaScript can access and change all the elements of an HTML document through the DOM.
// Selecting elements
const heading = document.getElementById('main-heading');
const paragraphs = document.getElementsByTagName('p');
const buttons = document.getElementsByClassName('btn');
const firstLink = document.querySelector('a');
const allLinks = document.querySelectorAll('a');
// Changing content
heading.textContent = 'New Heading'; // Changes text
heading.innerHTML = '<em>New</em> Heading'; // Changes HTML
// Changing styles
heading.style.color = 'blue';
heading.style.fontSize = '24px';
// Adding/removing classes
heading.classList.add('highlight');
heading.classList.remove('old-class');
heading.classList.toggle('active');
// Creating new elements
const newParagraph = document.createElement('p');
newParagraph.textContent = 'This is a new paragraph.';
document.body.appendChild(newParagraph);
// Removing elements
const oldElement = document.getElementById('old-element');
oldElement.parentNode.removeChild(oldElement);
// or in modern browsers:
oldElement.remove();Events are actions or occurrences that happen in the browser which you can respond to using JavaScript.
// Adding an event listener
const button = document.getElementById('myButton');
button.addEventListener('click', function() {
alert('Button was clicked!');
});
// Common events
// click, dblclick, mouseover, mouseout, keydown, keyup, submit, load
// Event object
button.addEventListener('click', function(event) {
console.log('Event type:', event.type);
console.log('Target element:', event.target);
event.preventDefault(); // Prevents the default action
});
// Event delegation
document.getElementById('parent-list').addEventListener('click', function(event) {
if (event.target.tagName === 'LI') {
console.log('List item clicked:', event.target.textContent);
}
});- Create a simple to-do list app where users can add and remove tasks
- Build a form that validates user input (e.g., checking if all required fields are filled)
- Create a simple calculator that performs basic arithmetic operations
- Build an image slider that changes images when clicked
- Create a countdown timer that updates in real-time
- MDN Web Docs - JavaScript
- JavaScript.info
- W3Schools JavaScript Tutorial
- Eloquent JavaScript
- JavaScript 30 - 30 Day Vanilla JS Coding Challenge
Now that you understand the basics of JavaScript, you're ready to move on to Session 5: Ready to build a WebApp? where you'll learn about databases, backend, and frontend development to build a complete web application.