JavaScript Language
Version
ES2023
Release Date
1995
Author
Brendan Eich
Last updated: 1/2/2025
Introduction

Luuqadan Javascript waxa la sameeyey sannadku marku ahaa 1995 , waxaana lo sameeyey si logu adeegsado dhisitaanka websites, sababtuna waxay ahayd in websites laga dhigo qaar nool iyado javascript lo adeegsanayo si ula fal gasho HTML iyo CSS . Luuqadan waxyaabo badan ayaad ku dhisi karta oo ay ka mid yihiin: web apps, mobile apps, desktop apps, games(browser-based games) iyo waxyaabo kale oo badan.

Console.log

console.log wuxu inaga caawiya inu na tuso natiijada ka dhalatey ama kaso baxday code-ka (Code-ka aynu qorney), tusaale ahaan:

console.log("Iska waran sxb!");
console.log(2 + 2);
Natiijada:
Terminal
Iska waran sxb!
4

Variables

Variables waxa loo adeegsada in xog lagu kaydiyo.

Qaabka Isticmaalka (Syntax):
<keyword> <variable_name> = <initial_value>;
Tusaale:
var name = "Adam";
let age = 25;
const gender = "male";

console.log(name, age, gender);
Natiijada:
Terminal
Adam 25 male
Note

Si aad u so bandhigto xogta ama qiimaha ku kaydsan variable-ka/doorsamaha, console.log dhex gali magaca variable-ka tusaale ahaan:

let name = "Elmi";
console.log(name);

  • 1 var , let , const (variable declaration)

    wa ereyo bixin luuqada u gaar ah oo loo adeegsado si loo qeexo variables.

  • 2 name , age , gender (variable identifiers)

    waa magaca variable-ku iska leeyahay. Sido kale magaca variable-ka waxa lo yaqaana variable identifier.

  • 3 Adam , 25 , male (values)

    wa qiimayaasha la kaydinayo ama xogta la kaydinayo.

Note

Variable afsomali ahaan waxa lo yaqaana doorsame.

Var

Var waa erey bixin lo adeegsado in variable(doorsame) lagu qeexo.

Astaamaha uu iska leeyahay - Var

  • 1 Reassignment

    Qiimaha ku kaydsan variable-ka waad bedeli karta.

  • 2 Redeclaration

    Variable-ka dib ayaad u qeexi karta.

  • 3 Function scope

    Variables-ka lagu dhex qeexo function-ka dhexdiisa, kaliya waxa laga heli kara function-ka lagu dhex qeexay.

  • 4 Hoisting

    Hadduu jiro variable aan la qeexin ka dibna la qeexo, wax mushkilad ah ma keenayso.

  • 5 Undefined Value

    Marka laga qeexayo variable-ka, khasab maaha in la qeexo qiimaha variable-ka lagu kaydinayo.

Tusaale:

1. Reassignment

// Reassignment
var price = 10;
price = 20;
console.log(price); // natiijada: 20

2. Redeclaration

// Redeclaration
var color = "red";
var color = "blue";
console.log(color); // natiijada: blue

3. Function scope

// Function scope
function add(a, b) {
  var result = a + b;
  console.log(result); // natiijada: 5
}
add(2, 3);
console.log(result); // Error
Error

ReferenceError: result is not defined

Note

Variables-ka lagu dhex qeexo function-ka dhexdiisa, kaliya waxa laga heli kara function-ka lagu dhex qeexay.

4. Hoisting

// Hoisting
id;
var id = 101;
console.log(id); // natiijada: 101

5. Undefined Value

// Undefined Value
var name;
console.log(name); // natiijada: undefined (lama qeexin qiimaha la kaydinayo)

Let

Let waa erey bixin lo adeegsado in variable(doorsame) lagu qeexo.

Astaamaha uu iska leeyahay - Let

  • 1 Reassignment

    Qiimaha ku kaydsan variable-ka waad bedeli karta.

  • 2 Redeclaration

    Variable-ka dib uma qeexi kartid.

  • 3 Block scope

    Variables-ka lagu dhex qeexo '{}', kaliya waxa laga heli kara meesha lagu dhex qeexay.

  • 4 Hoisting

    Mushkilad ba ka dhalanaysa haddii u jiro variable aan la qeexin ka dibna la qeexo.

  • 5 Undefined Value

    Marka laga qeexayo variable-ka, khasab maaha in la qeexo qiimaha variable-ka lagu kaydinayo.

Tusaale:

1. Reassignment

// Reassignment
let price = 10;
price = 20;
console.log(price); // natiijada: 20

2. Redeclaration

// Redeclaration
let color = "red";
let color = "blue";
console.log(color); // natiijada: Error
Error

SyntaxError: Identifier ‘color’ has already been declared

3. Block scope

// Example 1: Block scope
function add(a, b) {
  let result = a + b;
  console.log(result); // natiijada: 5
}
add(2, 3);
console.log(result); // Error
Error

ReferenceError: result is not defined

// Example 2: Block scope
if(true) {
  let user = "Admin"; 
  console.log(user); // natiijada: Admin
}
console.log(user); // Error
Error

ReferenceError: user is not defined

Note

Variables-ka lagu dhex qeexo ’{}’, kaliya waxa laga heli kara meesha lagu dhex qeexay.

4. Hoisting

// Hoisting
id;
let id = 101;
console.log(id); // natiijada: Error
Error

ReferenceError: Cannot access ‘id’ before initialization

5. Undefined Value

// Undefined Value
let name;
console.log(name); // natiijada: undefined (lama qeexin qiimaha la kaydinayo)

Const

Const waa erey bixin lo adeegsado in variable(doorsame) lagu qeexo.

Astaamaha uu iska leeyahay - Const

  • 1 Reassignment

    Ma bedeli kartid qiimaha ku kaydsan variable-ka.

  • 2 Redeclaration

    Variable-ka dib uma qeexi kartid.

  • 3 Block scope

    Variables-ka lagu dhex qeexo '{}', kaliya waxa laga heli kara meesha lagu dhex qeexay.

  • 4 Hoisting

    Mushkilad ba ka dhalanaysa haddii u jiro variable aan la qeexin ka dibna la qeexo.

  • 5 Undefined Value

    Waa khasab in la qeexo qiimaha variable-ka lagu kaydinayo marka laga qeexayo variable-ka.

Tusaale:

1. Reassignment

// Reassignment
const price = 10;
price = 20;
console.log(price); // natiijada: Error
Error

TypeError: invalid assignment to const ‘price’

2. Redeclaration

// Redeclaration
const color = "red";
const color = "blue";
console.log(color); // natiijada: Error
Error

SyntaxError: Identifier ‘color’ has already been declared

3. Block scope

// Example 1: Block scope
function add(a, b) {
  const result = a + b;
  console.log(result); // natiijada: 5
}
add(2, 3);
console.log(result); // Error
Error

ReferenceError: result is not defined

// Example 2: Block scope
if(true) {
  const user = "Admin"; 
  console.log(user); // natiijada: Admin
}
console.log(user); // Error
Error

ReferenceError: user is not defined

Note

Variables-ka lagu dhex qeexo ’{}’, kaliya waxa laga heli kara meesha lagu dhex qeexay.

4. Hoisting

// Hoisting
id;
const id = 101;
console.log(id); // natiijada: Error
Error

ReferenceError: Cannot access ‘id’ before initialization

5. Undefined Value

// Undefined Value
const name;
console.log(name); // natiijada: Error (lama hayo qiimihii la kaydini lahaa)
Error

SyntaxError: Missing initializer in const declaration

Rules for Variable Names

Marka la magacaabayo variable-ka waxa jira sharciyo u gaar ah oo ku saabsan sida lo magacaabo variables-ka. Shuruucdaas waxa ka mid ah:

1. Magaca variable-ku kuma bilaabmi karo tiro

let 1user = "Adam"; // Error
Error

SyntaxError: Invalid or unexpected token

Note

Laakiin magaca waxaad ku bilaabi karta $ ama _ ama xaraf. Tusaale:

let $price = 10;
let _discount = 0.02;
let total =  9.8;

Inta wixii ahayn magaca kuma bilaabi kartid.

2. Ma isticmaali kartid ereyo bixinta u gaar ah luuqada

Marka magacaabaysid ha isticmaalin ereyo bixinta u gaarka ah luuqada (reserved keywords). Tusaale:

let let = 5; // Error
Error

SyntaxError: let is disallowed as a lexically bound name

3. Case-sensitive

Haddii ay jiraan laba variables/doorsame oo isku magac ah laakiin ku kala duwan xarfaha waaweyn iyo kuwa yaryar waxa lo aqoonsanaya inay yihiin laba variables oo kale duwan. Tusaale:

// Example 1
let name = "Adam";
let Name = "Elmi";

console.log(name); // Adam
console.log(Name); // Elmi
// Example 2
let age = 25;
console.log(Age); // Error
Error

ReferenceError: Age is not defined

Hababka kala duwan ee lo qori magaca variable-ka

Camel Case

Habkan waxa weeye in kalmada ugu horeysa laga wada dhigo xuruuf yaryar, kalmadaha kalena xarafkooda ugu horeya waxa laga dhigaya xaraf weyn, xuruufta kalena xuruuf yaryar. Tusaale:

let firstName = "Adam";
let lastTimeVisited = "Yesterday";
Pascal Case

Habkan waxa weeye in kalmad kasta xarafkeeda kowaad laga dhigo xaraf weyn, inta kalena xuruuf yaryar. Tusaale:

let UserId = 101;
Snake Case

Habkan waxa weeye in dhamaan kalmadaha laga wada dhigo xuruuf yaryar sido kalena kalmadahana loo kala dhexeesiyo _(underscore). Tusaale:

let user_name = "Adam";

Data Types

Xogta variable-ka lagu kaydinayo waxa lo kala qaybiya laba nooc oo kale ah Primitive Data Types iyo Reference Data Types(Non-Primitive) .

1. Primitive Data Types

Waa xog hal qiimo ka kooban oo la bedeli karin.

Noocyada xogta Primitive data ah waxa ka mid ah:

a. String

Waa xog kasta oo ku dhex jirta ” ” ama ’ ’ ama ` ` taas lo aqoonsanayo inay xogtaasi tahay string xita haday tahay tirooyin ama ka kooban tahay tirooyin.

let firstName = "Adam";
let middleName = 'Eid';
let lastName = `Elmi`;

let id = "109"
let money = "$300"
let new_user = "user101"

let answer = "true"

b. Number

Waa xogta tirooyinka ah. Waa dhamaan xogta tirooyinka ah: integers (tirooyinka), floats (tirooyinka ah jajab tobanle) iyo xogta gaar ah sida ‘NaN’, ‘Infinity’ kuwaas oo iyana lo aqoonsado inay yihiin xog tirooyin ah.

let items = 15; // integers
let price = 10.5; // floats 

c. Boolean

Boolean waa nooc ka mid ah xogta oo kaliya yeelan karta laba qiimood: run (true) ama been (false).

let isOnline = true;
let is_student = false; 

d. Undefined

Undefined waa nooc ka mid ah xogta u variable-ka u qaadanayo haddii la qeexin qiimaha Variable-ka lagu kaydinayo taas oo micnaheedu u yahay qiimihii ayaa maqan.

let location; // undefined

e. Null

Null waa nooc ka mid ah xogta taas oo micnaheedu u yahay “qiimo madhan” oo aan waxba u taagneyn.

let file = Null;

Primitive Data Types

Astaamaha - Primitive Data Types

  • 1 Holds Single Value

    Waa xog ka kooban hal qiimo (Single Value).

  • 2 Immutable

    Qiimaha ama xogta wax lagama bedeli karo.

Tusaale:

1. Holds Single Value

let name = "Adam";
let age = 25;
let address = null;
let is_student = true;
let id; // undefined

2. Immutable

// Example 1
let name = "Adam";
name = "Elmi";
console.log(name); // natiijada: Elmi 
Note

name = “Elmi” micnaheedu maaha in qiimihi hore (“Adam”) wax laga bedelay laakiin micnaheedu waxa weeye in qiimo kale oo cusub lagu kaydiyey variableka.

// Example 2
let name = "Amal";
name[0] = "U";
console.log(name); // natiijada: Amal 
Note

Tusaalahan wuxu ina tusinaya in xogta ama qiimaha variable-ka lagu kaydiyey waxba laga bedeli karin. Qiimaha variable-ka qiimo kale waan ku bedeli karna laakiin qiimaha laftarkiisa waxba lagama bedeli karo.

Sida loo hubiyo nooca xogta

typeof waa erey bixin ino sheegta nooca xogta.

let name = "Adam";
let age = 25;
let salary = 55.5;
let is_student = true;
let location;
let address = null;

console.log(typeof name); // string  
console.log(typeof age); // number
console.log(typeof salary); // number
console.log(typeof is_student); // boolean
console.log(typeof location); // undefined
console.log(typeof address); // null