JavaScript Deep Dive — මොළය
JavaScript (JS) තමයි pages interactive සහ dynamic කරන්නේ.
- HTML = structure
- CSS = appearance
- JS = behavior
JS නැතුව: Static pages content display කරනවා විතරයි
JS එක්ක: Dynamic apps users ට respond කරනවා
Variables: Data Store කරන්න
Variables කියන්නේ information store කරන named containers.
JavaScript
const name = "Alex"; // CONSTANT - change කරන්න බෑlet age = 25; // VARIABLE - change කරන්න පුළුවන්var old = "legacy"; // OLD WAY - use කරන්න එපාKeyword
Change වෙනවද?
const
නෑ
let
ඔව්
var
ඔව්
සරල නීතිය
Default එකට const use කරන්න, value change කරන්නම ඕනේ නම් විතරක් let use කරන්න.
Data Types
String (Text/අකුරු)
JavaScript
const greeting = "Hello, World!";const name = 'Alex'; // Single quotes ත් හරිconst template = `Hello, ${name}`; // Template literal (backticks)Number (ඉලක්කම්)
JavaScript
const count = 42;const price = 19.99;const negative = -10;Boolean (True/False)
JavaScript
const isLoggedIn = true; // Log වෙලා ඉන්නවාconst hasError = false; // Error නෑArray (List)
JavaScript
const fruits = ["apple", "banana", "orange"]; // Index එකෙන් access කරනවා (0 ඉඳන් පටන් ගන්නවා)fruits[0]; // "apple"fruits[1]; // "banana"fruits.length; // 3Object (Properties Collection)
JavaScript
const person = { name: "Alex", age: 25, isStudent: true}; // Properties access කරන්නperson.name; // "Alex"person["age"]; // 25Null සහ Undefined
JavaScript
let nothing = null; // Intentionally emptylet notDefined; // undefined (value assign කරලා නෑ)Functions: Reusable Actions
Functions කියන්නේ tasks perform කරන code blocks.
Function Declaration
JavaScript
function greet(name) { return "Hello, " + name + "!";} // Function එක use කරන්නgreet("Alex"); // Returns: "Hello, Alex!"Arrow Function (Modern Way)
JavaScript
const greet = (name) => { return "Hello, " + name + "!";}; // Short version (simple returns වලට)const greet = (name) => "Hello, " + name + "!";Multiple Parameters
JavaScript
function add(a, b) { return a + b;} add(5, 3); // Returns: 8Conditionals: තීරණ ගැනීම
If/Else Statement
JavaScript
const age = 18; if (age >= 18) { console.log("Adult");} else { console.log("Minor");}If/Else If/Else
JavaScript
const score = 85; if (score >= 90) { console.log("A grade");} else if (score >= 80) { console.log("B grade");} else { console.log("Need improvement");}Comparison Operators
Operator
තේරුම
===
Equal to (strict)
!==
Not equal to
>
Greater than
<
Less than
>=
Greater or equal
<=
Less or equal
Logical Operators
JavaScript
// AND - දෙකම true වෙන්න ඕනේif (age >= 18 && hasID) { console.log("Can enter");} // OR - එකක් හරි true නම් ඇතිif (isAdmin || isModerator) { console.log("Has permissions");} // NOT - boolean එක reverse කරනවාif (!isLoggedIn) { console.log("Please log in");}Loops: ආයේ ආයේ කරන ඒවා
For Loop
JavaScript
for (let i = 0; i < 5; i++) { console.log(i);}// Output: 0, 1, 2, 3, 4Breakdown:
let i = 0— 0 ඉඳන් පටන් ගන්නවාi < 5— i 5 ට වඩා අඩු නම් continue කරනවාi++— හැම වෙලාවකම i ට 1 add කරනවා
For...of Loop (Arrays වලට)
JavaScript
const fruits = ["apple", "banana", "orange"]; for (const fruit of fruits) { console.log(fruit);}// Output: apple, banana, orangeforEach Method
JavaScript
const numbers = [1, 2, 3]; numbers.forEach(num => console.log(num * 2));// Output: 2, 4, 6DOM Manipulation: Page එක වෙනස් කරන්න
DOM (Document Object Model) කියන්නේ JavaScript එකට HTML පේන සහ manipulate කරන විදිහ.
Elements Select කරන්න
JavaScript
// ID එකෙන් (element එකක් return කරනවා)const header = document.getElementById("main-header"); // Modern way - querySelectorconst firstCard = document.querySelector(".card"); // First matchconst allCards = document.querySelectorAll(".card"); // All matchesContent Change කරන්න
JavaScript
const title = document.querySelector("h1"); // Text change කරන්නtitle.textContent = "New Title"; // HTML change කරන්නtitle.innerHTML = "<span>New</span> Title";Styles Change කරන්න
JavaScript
const box = document.querySelector(".box"); box.style.color = "blue";box.style.backgroundColor = "white";box.style.fontSize = "20px";Classes Change කරන්න
JavaScript
const element = document.querySelector(".card"); element.classList.add("active"); // Class එකක් add කරන්නelement.classList.remove("active"); // Class එක remove කරන්නelement.classList.toggle("active"); // Toggle on/offEvent Handling: Users ට Respond කරන්න
Events කියන්නේ users ගන්න actions (clicks, typing, scrolling).
addEventListener Method
JavaScript
const button = document.querySelector("button"); button.addEventListener("click", () => { alert("Button click කළා!");});Common Events
Event
Trigger වෙන්නේ
click
Element click කළාම
submit
Form submit කළාම
input
Input value change වෙනකොට
keydown
Key එකක් press කළාම
mouseover
Mouse element එකට ගියාම
load
Page finish loading වුනාම
Example: Form Handling
JavaScript
const form = document.querySelector("form");const input = document.querySelector("input"); form.addEventListener("submit", function(event) { event.preventDefault(); // Page refresh එක stop කරනවා console.log("Input value:", input.value);});හැම එකම එකතු කරලා
JavaScript
// Counter App Logic // Elements ගන්නවාconst countDisplay = document.getElementById("count");const plusBtn = document.getElementById("plus");const minusBtn = document.getElementById("minus"); // Counter initialize කරනවාlet count = 0; // Display update කරන function එකfunction updateDisplay() { countDisplay.textContent = count; // Value එක අනුව color change කරනවා if (count > 0) { countDisplay.style.color = "green"; } else if (count < 0) { countDisplay.style.color = "red"; } else { countDisplay.style.color = "black"; }} // Event listenersplusBtn.addEventListener("click", () => { count++; updateDisplay();}); minusBtn.addEventListener("click", () => { count--; updateDisplay();});Lesson Summary
Variables
constconstants වලට,letchangeable values වලට
Data Types
- String, Number, Boolean, Array, Object, null, undefined
Functions
JavaScript
function name(params) { return value; }const name = (params) => value;Conditionals
JavaScript
if (condition) { } else if (condition) { } else { }Loops
JavaScript
for (let i = 0; i < n; i++) { }for (const item of array) { }array.forEach(item => { });DOM
- Select:
document.querySelector() - Modify:
.textContent,.innerHTML,.style - Classes:
.classList.add/remove/toggle()
Events
JavaScript
element.addEventListener("event", () => { });📝 Quiz
1/4'const' vs 'let' use කරන්නේ කවදද?
Next Up
Lesson 2.5: Browser DevTools
Most powerful debugging tool එක use කරන්න ඉගෙන ගමු!