فهرست سرفصل‌های JavaScript
خانه (HOME) معرفی (Introduction) کجا قرار دهیم (Where To) خروجی (Output) ساختار نوشتاری (Syntax) دستورات (Statements) توضیحات (Comments) متغیرها (Variables) Let (Let) Const (Const) انواع داده (Types) عملگرها (Operators) عملگرهای حسابی (Arithmetic) عملگرهای انتسابی (Assignment) مقایسه ها (Comparisons) شرط ها (Conditional) if (If) if else (If Else) شرط سه تایی (Ternary) سوییچ (Switch) بولین ها (Booleans) منطقی (Logical) حلقه ها (Loops) حلقه for (Loop for) حلقه while (Loop while) break (Break) continue (Continue) رشته ها (Strings) رشته های قالبی (String Templates) جستجوی رشته (String Search) مرجع رشته (String Reference) اعداد (Numbers) متدهای عدد (Number Methods) ویژگی های عدد (Number Properties) مرجع عدد (Number Reference) عملگرهای بیتی (Bitwise) BigInt (BigInt) توابع (Functions) اشیا (Objects) ویژگی های شی (Object Properties) متدهای شی (Object Methods) نمایش شی (Object Display) تاریخ ها (Dates) قالب های تاریخ (Date Formats) دریافت تاریخ (Date Get) تنظیم تاریخ (Date Set) مرجع تاریخ (Date Reference) آرایه ها (Arrays) متدهای آرایه (Array Methods) جستجوی آرایه (Array Search) مرتب سازی آرایه (Array Sort) تکرارهای آرایه (Array Iterations) مرجع آرایه (Array Reference) ثابت آرایه (Array Const) آرایه های نوع دار (Typed Arrays) متدهای نوع دار (Typed Methods) مرجع نوع دار (Typed Reference) مجموعه ها (Sets) متدهای مجموعه (Set Methods) منطق مجموعه (Set Logic) WeakSet (WeakSet) مرجع مجموعه (Set Reference) نگاشت ها (Maps) متدهای نگاشت (Map Methods) WeakMap (WeakMap) مرجع نگاشت (Map Reference) ریاضی (Math) مرجع ریاضی (Math Reference) تصادفی (Math Random) عبارات منظم (RegExp) پرچم ها (RegExp Flags) کلاس های کاراکتری (RegExp Classes) متاکاراکترها (RegExp Metachars) گزاره ها (RegExp Assertions) تکرارکننده ها (RegExp Quantifiers) الگوها (RegExp Patterns) اشیای RegExp (RegExp Objects) متدهای RegExp (RegExp Methods) انواع داده (Data Types) typeof (typeof) toString() (toString()) تبدیل نوع (Type Conversion) خطاها: مقدمه (Errors Intro) خطاهای بی صدا (Errors Silent) دستورات خطا (Error Statements) شیء خطا (Error Object) اشکال زدایی (Debugging) رویدادها (Events) دامنه (Scope) بالابردن (Hoisting) حالت سخت گیرانه (Strict Mode) بلوک های کد (Code Blocks) راهنمای نگارش (Style Guide) بهترین شیوه ها (Best Practices) اشتباهات رایج (Mistakes) کارایی (Performance) مرجع کلمات کلیدی (Keywords Reference) کلمات رزرو شده (Keywords Reserved) مرجع عملگرها (Operator Reference) اولویت عملگرها (Operator Precedence) حروف UTF-8 (UTF-8 Letters) نمادهای UTF-8 (UTF-8 Symbols) ایموجی های UTF-8 (UTF-8 Emojis) نسخه ها (Versions) 2025 (2025) 2024 (2024) 2023 (2023) 2022 (2022) 2021 (2021) 2020 (2020) 2019 (2019) 2018 (2018) 2017 (2017) 2016 (2016) 2009 (2009 (ES5)) IE / Edge (IE / Edge) تاریخچه (History) تعریف تابع (Function Definitions) توابع پیکانی (Function Arrows) پارامترهای تابع (Function Parameters) فراخوانی تابع (Function Invocation) this در تابع (Function this) call (Function Call) apply (Function Apply) bind (Function Bind) Closureها (Function Closures) تعریف شی (Object Definitions) سازنده ها (Object Constructors) this شی (Object this) ساختارشکنی (Object Destructuring) پروتوتایپ ها (Object Prototypes) تکرار روی شی (Object Iterations) مدیریت ویژگی ها (Object Management) گیرنده/گذارنده (Get / Set) محافظت از شی (Object Protection) مرجع شی (Object Reference) کلاس ها (Classes) وراثت کلاس (Class Inheritance) اعضای ایستا (Class Static) حلقه زنی (Looping) قابل تکرارها (Iterables) تکرارگرها (Iterators) مولدها (Generators) کنترل جریان (Control Flow) کالبک ها (Callbacks) غیرهمزمان (Asynchronous) پرامیس ها (Promises) Async/Await (Async/Await) ماژول ها: استاتیک (Modules Static) ماژول ها: داینامیک (Modules Dynamic) DOM معرفی (DOM Intro) DOM متدها (DOM Methods) DOM سند (DOM Document) DOM عناصر (DOM Elements) DOM HTML (DOM HTML) DOM فرم ها (DOM Forms) DOM CSS (DOM CSS) DOM انیمیشن ها (DOM Animations) DOM رویدادها (DOM Events) شنونده رویداد (DOM Event Listener) پیمایش DOM (DOM Navigation) گره های DOM (DOM Nodes) مجموعه های DOM (DOM Collections) لیست گره های DOM (DOM Node Lists) پنجره (Window) نمایشگر (Screen) Location (Location) تاریخچه (History) Navigator (Navigator) پنجره های هشدار (Popup Alert) زمان بندی (Timing) کوکی ها (Cookies) مقدمه Web API (Web API Intro) Validation API (Web Validation API) History API (Web History API) Web Storage API (Web Storage API) Web Worker API (Web Worker API) Fetch API (Web Fetch API) Geolocation API (Web Geolocation API) AJAX معرفی (AJAX Intro) AJAX درخواست (AJAX Request) AJAX پاسخ (AJAX Response) AJAX فایل XML (AJAX XML File) AJAX و PHP (AJAX PHP) AJAX و ASP (AJAX ASP) AJAX پایگاه داده (AJAX Database) AJAX کاربردها (AJAX Applications) AJAX مثال ها (AJAX Examples) JSON معرفی (JSON Intro) JSON نحو (JSON Syntax) JSON در برابر XML (JSON vs XML) انواع داده در JSON (JSON Data Types) JSON Parse (JSON Parse) JSON Stringify (JSON Stringify) اشیا در JSON (JSON Objects) آرایه ها در JSON (JSON Arrays) سرور JSON (JSON Server) JSON و PHP (JSON PHP) JSON و HTML (JSON HTML) JSONP (JSON JSONP) jQuery انتخابگرها (jQuery Selectors) jQuery HTML (jQuery HTML) jQuery CSS (jQuery CSS) jQuery DOM (jQuery DOM) گرافیک (Graphics) Canvas (Canvas) Plotly (Plotly) Chart.js (Chart.js) Google Chart (Google Chart) D3.js (D3.js) DOM نمونه ها (HTML DOM) ورودی HTML (HTML Input) اشیای HTML (HTML Objects) رویدادهای HTML (HTML Events) مرورگر (Browser) ویرایشگر (Editor) کوییز (Quiz) سیلابس (Syllabus) برنامه مطالعه (Study Plan) آمادگی مصاحبه (Interview Prep) بوت کمپ (Bootcamp) گواهینامه (Certificate)
نتیجه‌ای برای جستجو یافت نشد.
تصویر زبان برنامه نویسی JavaScript

JavaScript — 2009 (2009 (ES5))

آخرین بروزرسانی: 1404/08/10

2009 (2009 (ES5))

«جاوااسکریپت ES5» نسخه پایه ای مدرن است. یعنی کلی ابزار استاندارد آورد. مثلا «حالت سخت گیرانه (Strict Mode)»، متدهای آرایه، و JSON. آرام جلو می رویم تا مفاهیم دقیق، ساده، و کاربردی شوند.

حالت سخت گیرانه در جاوااسکریپت ES5

«حالت سخت گیرانه (Strict Mode)» خطاهای پنهان را رو می کند. مثلا اجازه متغیرِ بی اعلان نمی دهد.

"use strict";
let score = 0;
score = score + 1;

مشاهده در ادیتور

دسترسی به کاراکترهای رشته در ES5

با charAt() یا براکت می توان کاراکترِ یک «رشته (String)» را گرفت.

var str = "HELLO WORLD";
var c1 = str.charAt(0);

مشاهده در ادیتور

var str = "HELLO WORLD";
var c2 = str[0];

مشاهده در ادیتور

رشته چندخطی در ES5

می توان انتهای خط گذاشت. امن تر هم الحاق رشته است.

var a = "Hello \";
a = a + "Dolly!";

مشاهده در ادیتور

trim()؛ تمیزکردن فاصله ها

trim() فاصله ابتدا و انتهای رشته را حذف می کند. برای ورودی ها عالی است.

var nameText = "   Hello World!   ";
var clean = nameText.trim();

مشاهده در ادیتور

Array.isArray() در ES5

می خواهد بداند «این، آرایه است؟». نتیجه «بولی (Boolean)» است.

const fruits = ["Banana", "Orange", "Apple", "Mango"];
const ok = Array.isArray(fruits);

مشاهده در ادیتور

forEach، map، filter، reduce؛ چهار یارِ آرایه

این ها «متد (Method)»های پردازش آرایه هستند. هرکدام کار مشخصی می کنند.

const nums = [2, 4, 6];
let sum = 0;
nums.forEach(function(value) {
  sum = sum + value;
});

مشاهده در ادیتور

const numbers1 = [1, 2, 3];
const doubled = numbers1.map(function(v) {
  return v * 2;
});

مشاهده در ادیتور

const ages = [12, 18, 22];
const adults = ages.filter(function(v) {
  return v >= 18;
});

مشاهده در ادیتور

const values = [10, 20, 30];
const total = values.reduce(function(acc, v) {
  return acc + v;
}, 0);

مشاهده در ادیتور

جستجو با indexOf در ES5

indexOf() جای عنصر را می دهد. اگر نبود، -1 می دهد.

const items = ["Apple", "Orange", "Apple", "Mango"];
const pos = items.indexOf("Apple");

مشاهده در ادیتور

JSON.parse و JSON.stringify در ES5

«جی سون (JSON)» قالب تبادل داده است. parse متن را شیء می کند؛ stringify برعکس.

const txt = "{\"name\":\"John\", \"age\":30}";
const obj = JSON.parse(txt);

مشاهده در ادیتور

const data = { name: "John", age: 30 };
const out = JSON.stringify(data);

مشاهده در ادیتور

Date.now، toISOString، toJSON در ES5

این ها تاریخ را میلی ثانیه یا متنِ استاندارد می کنند. برای ثبت رویداد عالی است.

var ms = Date.now();

مشاهده در ادیتور

const d = new Date();
const iso = d.toISOString();

مشاهده در ادیتور

const now = new Date();
const jsonDate = now.toJSON();

مشاهده در ادیتور

Getter و Setter در ES5

«گتر/ستر (Getter/Setter)» روش خواندن/نوشتنِ کنترل شده ویژگی است.

const person = {
  firstName: "John",
  lastName: "Doe",
  get fullName() {
    return this.firstName + " " + this.lastName;
  }
};
const name1 = person.fullName;

مشاهده در ادیتور

const user = {
  language: "no",
  set lang(value) {
    this.language = value.toUpperCase();
  }
};
user.lang = "en";
const langNow = user.language;

مشاهده در ادیتور

Object.defineProperty در ES5

با این متد می توان ویژگی بسازیم یا مشخصاتش را تغییر دهیم.

const person = { firstName: "John", lastName: "Doe" };
Object.defineProperty(person, "language", {
  value: "EN",
  writable: true,
  enumerable: true,
  configurable: true
});

مشاهده در ادیتور

Object.create و Object.keys

با create از شیءِ الگو کپی می سازیم. با keys کلیدها را می گیریم.

const base = { firstName: "John", lastName: "Doe" };
const man = Object.create(base);
man.firstName = "Peter";

مشاهده در ادیتور

const person2 = { firstName: "John", age: 50 };
const keys = Object.keys(person2);

مشاهده در ادیتور

bind؛ قرض گرفتن متد

با bind می توان متد شیء دیگر را با this جدید اجرا کرد.

const person = {
  firstName: "John",
  lastName: "Doe",
  fullName: function() {
    return this.firstName + " " + this.lastName;
  }
};
const member = { firstName: "Hege", lastName: "Nilsen" };
const full = person.fullName.bind(member);
const result = full();

مشاهده در ادیتور

ویرگول انتهایی در شیء و آرایه

در جاوااسکریپت مجاز است؛ اما در JSON مجاز نیست. دقت کن.

const person = {
  firstName: "John",
  age: 46,
};
const points = [
  1,
  5,
  10,
];

مشاهده در ادیتور

گام های تمرین سریع

  1. strict را روشن کن و خطاها را ببین.
  2. با map نمره ها را دوبرابر کن.
  3. با filter نمره های بالای 18 را بردار.
  4. با reduce جمع کل را حساب کن.
  5. داده فرم را با trim تمیز کن.

جمع بندی سریع

  • ES5 هسته استانداردهای امروز است.
  • Strict Mode کد تمیزتر می سازد.
  • متدهای آرایه کارها را کوتاه می کنند.
  • JSON برای تبادل امن و ساده است.
  • ویرگول انتهایی در JSON ممنوع است.

برای مرور، به جاوااسکریپت ES5 برگرد. سپس ادامه مسیر را در ES6 ببین.