Codespian | کدسپین – Telegram
Codespian | کدسپین
65 subscribers
22 photos
2 videos
12 files
82 links
Codespian Official Community Channel
Admin: @AMIRALI_H0SSEINI
Download Telegram
متد splice در جاوااسکریپت یکی از متدهای آرایه است که برای تغییر محتوای یک آرایه استفاده می‌شود. این متد می‌تواند برای حذف، اضافه کردن یا جایگزینی عناصر در آرایه به کار رود.

نحوه استفاده از متد splice

سینتکس متد splice به صورت زیر است:

array.splice(start, deleteCount, item1, item2, ...)


پارامترها:

1. start: ایندکس (index) که از آنجا تغییرات آغاز می‌شود. اگر مقدار منفی باشد، به انتهای آرایه نسبت داده می‌شود.

2. deleteCount: تعداد عناصری که باید از آرایه حذف شوند. اگر این مقدار صفر باشد، هیچ عنصری حذف نمی‌شود.

3. item1, item2, ...: عناصری که باید به آرایه اضافه شوند. این پارامترها اختیاری هستند.

مثال‌ها:

1. حذف عناصر از آرایه

let fruits = ['apple', 'banana', 'orange', 'grape'];
fruits.splice(1, 2); // از ایندکس 1، 2 عنصر را حذف می‌کند
console.log(fruits); // ['apple', 'grape']


2. اضافه کردن عناصر به آرایه

let fruits = ['apple', 'banana', 'orange'];
fruits.splice(2, 0, 'grape', 'kiwi'); // از ایندکس 2، هیچ عنصری را حذف نمی‌کند و 'grape' و 'kiwi' را اضافه می‌کند
console.log(fruits); // ['apple', 'banana', 'grape', 'kiwi', 'orange']


3. جایگزینی عناصر در آرایه

let fruits = ['apple', 'banana', 'orange'];
fruits.splice(1, 1, 'grape'); // از ایندکس 1، یک عنصر را حذف کرده و 'grape' را جایگزین آن می‌کند
console.log(fruits); // ['apple', 'grape', 'orange']


نتیجه‌گیری

متد splice یک ابزار قدرتمند برای مدیریت آرایه‌ها در جاوااسکریپت است و می‌توانید با استفاده از آن به راحتی عناصر را حذف، اضافه یا جایگزین کنید.
👍1
متد filter در جاوااسکریپت یکی از متدهای آرایه‌ها (Arrays) است که برای فیلتر کردن عناصر یک آرایه بر اساس یک شرط خاص استفاده می‌شود. این متد یک آرایه جدید را برمی‌گرداند که شامل عناصری است که شرط مشخص شده را برآورده می‌کنند.

نحوه استفاده از متد filter

ساختار کلی متد filter به صورت زیر است:

let newArray = array.filter(callback(element[, index[, array]])[, thisArg]);


array: آرایه‌ای که می‌خواهید بر روی آن فیلتر کنید.

callback: تابعی که برای هر عنصر آرایه فراخوانی می‌شود. این تابع باید یک مقدار بولی (true یا false) برگرداند.

element: عنصر فعلی آرایه.

index (اختیاری): ایندکس عنصر فعلی.

array (اختیاری): خود آرایه‌ای که بر روی آن فیلتر انجام می‌شود.

thisArg (اختیاری): مقداری که به عنوان this در تابع callback استفاده می‌شود.

مثال

فرض کنید ما یک آرایه از اعداد داریم و می‌خواهیم فقط اعداد زوج را فیلتر کنیم:

let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

let evenNumbers = numbers.filter(function(number) {
return number % 2 === 0; // شرط برای پیدا کردن اعداد زوج
});

console.log(evenNumbers); // خروجی: [2, 4, 6, 8, 10]


استفاده از Arrow Function

می‌توانید از Arrow Function نیز استفاده کنید تا کد شما کوتاه‌تر و خواناتر باشد:

let evenNumbers = numbers.filter(number => number % 2 === 0);
console.log(evenNumbers); // خروجی: [2, 4, 6, 8, 10]


نتیجه‌گیری

متد filter ابزاری بسیار مفید برای کار با آرایه‌ها در جاوااسکریپت است و به شما این امکان را می‌دهد که به سادگی عناصری را که شرایط خاصی را برآورده می‌کنند، جدا کنید.
👍1
متد map در جاوااسکریپت یکی از متدهای آرایه است که به شما اجازه می‌دهد تا یک تابع را بر روی هر عنصر یک آرایه اعمال کنید و یک آرایه جدید با نتایج آن تابع ایجاد کنید. این متد به صورت غیرمستقیم تغییراتی در آرایه اصلی ایجاد نمی‌کند و آرایه جدیدی را برمی‌گرداند.

نحوه استفاده

ساختار کلی متد map به شکل زیر است:

let newArray = array.map(function(element, index, array) {
// عملیاتی که می‌خواهید بر روی هر عنصر انجام دهید
return newElement; // عنصر جدیدی که می‌خواهید به آرایه جدید اضافه کنید
});


element: عنصر فعلی که در حال پردازش است.

index: ایندکس (شاخص) عنصر فعلی (اختیاری).

array: آرایه اصلی (اختیاری).

مثال

در زیر یک مثال ساده از استفاده از متد map آورده شده است:

const numbers = [1, 2, 3, 4, 5];

// استفاده از متد map برای دو برابر کردن هر عدد
const doubled = numbers.map(function(num) {
return num * 2;
});

console.log(doubled); // خروجی: [2, 4, 6, 8, 10]


استفاده از Arrow Function

می‌توانید از Arrow Function نیز برای نوشتن کد خود استفاده کنید که کد را مختصرتر می‌کند:

const numbers = [1, 2, 3, 4, 5];

// استفاده از Arrow Function
const doubled = numbers.map(num => num * 2);

console.log(doubled); // خروجی: [2, 4, 6, 8, 10]


نکات مهم

1. متد map یک آرایه جدید را برمی‌گرداند و آرایه اصلی را تغییر نمی‌دهد.

2. اگر تابعی که به map داده می‌شود، undefined برگرداند، آن عنصر در آرایه جدید به عنوان undefined قرار می‌گیرد.

3. طول آرایه جدید همیشه برابر با طول آرایه اصلی خواهد بود.

نتیجه‌گیری

متد map ابزاری قدرتمند و مفید برای کار با آرایه‌ها در جاوااسکریپت است و می‌تواند به شما کمک کند تا به سادگی و به صورت تابعی، تغییرات دلخواه را بر روی عناصر یک آرایه اعمال کنید.
متد padStart در جاوااسکریپت به شما اجازه می‌دهد تا یک رشته را به طول مشخصی برسانید و اگر طول رشته کوتاه‌تر از طول هدف باشد، با استفاده از یک کاراکتر مشخص (یا کاراکترهای پیش‌فرض) در ابتدای آن پر کنید. این متد برای فرمت کردن رشته‌ها و ایجاد نمایش‌های زیباتر بسیار مفید است.

نحوه استفاده

ساختار کلی متد padStart به شکل زیر است:

string.padStart(targetLength, padString);


targetLength: طول نهایی رشته‌ای که می‌خواهید به آن برسید.

padString: رشته‌ای که می‌خواهید برای پر کردن در ابتدای رشته اصلی استفاده کنید (اختیاری). اگر این پارامتر ارائه نشود، از کاراکتر پیش‌فرض (که معمولاً یک فضای خالی است) استفاده می‌شود.

مثال‌ها

مثال 1: استفاده ساده

let str = "5";
let paddedStr = str.padStart(2, '0');

console.log(paddedStr); // خروجی: "05"


در این مثال، رشته "5" به طول ۲ رسیده و با کاراکتر '0' پر شده است.

مثال 2: استفاده از کاراکترهای دیگر

let str = "123";
let paddedStr = str.padStart(6, '*');

console.log(paddedStr); // خروجی: "***123"


در اینجا، رشته "123" به طول ۶ رسیده و با کاراکتر '*' پر شده است.

مثال 3: طول هدف کمتر یا برابر با طول فعلی

let str = "hello";
let paddedStr = str.padStart(3, '0');

console.log(paddedStr); // خروجی: "hello"


اگر طول هدف کمتر یا برابر با طول فعلی رشته باشد، متد padStart تغییری در رشته ایجاد نمی‌کند.

نکات مهم

1. اگر padString طولش بیشتر از طول مورد نیاز باشد، فقط قسمت چپ آن به اندازه کافی برای پر کردن استفاده می‌شود.

   let str = "42";
let paddedStr = str.padStart(5, 'abc');

console.log(paddedStr); // خروجی: "ab42"


2. اگر targetLength یک عدد منفی یا صفر باشد، متد padStart رشته اصلی را برمی‌گرداند.

نتیجه‌گیری

متد padStart ابزاری مفید برای فرمت کردن و پر کردن رشته‌ها است که می‌تواند به شما کمک کند تا داده‌های خود را به شکل زیباتر و منظم‌تری نمایش دهید.
اینجا کلی تم Vscode هست که می‌تونی بنا به سلیقت انتخاب کنی 👌🏻

https://vscodethemes.com
🔥1
In another world 🌚🧑‍💻
👍3
تو این پست میخوایم راجب یک قابلیت خیلی فوق العاده که تایپ اسکریپت بوجود اورده صحبت کنیم ، متادیتا !

متادیتا (Metadata) در TypeScript مثل یادداشت‌های نامرئی روی کد هامونه که به سیستممون میگه چطور با اجزای مختلف برنامه رفتار کنه. این ویژگی، به خصوص وقتی با Decoratorها ترکیب میشه، می‌تونه برنامه‌نویسی رو حرفه‌ای‌تر و شیرین تر کنه !

چرا متادیتا مهمه؟
انعطاف‌پذیری: بدون تغییر منطق اصلی کد، رفتارش رو اصلاح می‌کنه.
کاهش کد تکراری: مثلاً برای اعتبارسنجی، دیباگ یا لاگینگ.
قابلیت استفاده در فریمورک‌ها: مثل NestJS یا Angular که از متادیتا برای Routeها و Dependency Injection استفاده میشه .

چه موقع از متادیتا استفاده کنیم؟
• ساخت کتابخانه/فریمورک
• اعتبارسنجی خودکار داده‌ها
• پیاده‌سازی AOP (برنامه‌نویسی جنبه‌گرا)

اگه میخوای بیشتر راجبش بدونی راجب reflect metadata api بخون.
👍1
در جاوا اسکریپت، داده‌ها به دو دسته اصلی تقسیم می‌شوند: داده‌های اولیه (Primitive) و داده‌های غیر اولیه (Non-Primitive).

1. داده‌های اولیه (Primitive Data Types)

داده‌های اولیه شامل نوع‌هایی هستند که به صورت مستقیم مقدار را ذخیره می‌کنند و غیرقابل تغییر (immutable) هستند. در جاوا اسکریپت، انواع داده‌های اولیه عبارتند از:

Number: برای ذخیره اعداد (مثلاً 10، 15.5).

String: برای ذخیره رشته‌ها (مثلاً "Hello", 'World').

Boolean: برای ذخیره مقادیر منطقی (true یا false).

Undefined: وقتی که یک متغیر تعریف شده باشد اما مقداری به آن اختصاص داده نشده باشد.

Null: نمایان‌گر عدم وجود مقدار است.

Symbol: نوعی از داده که برای ایجاد شناسه‌های منحصر به فرد استفاده می‌شود (از ES6 به بعد).

BigInt: برای کار با اعداد بزرگ‌تر از محدوده Number.

مثال:

let num = 10;               // Number
let str = "Hello"; // String
let isTrue = true; // Boolean
let notDefined; // Undefined
let emptyValue = null; // Null
let uniqueSymbol = Symbol('unique'); // Symbol
let bigIntValue = BigInt(9007199254740991); // BigInt


2. داده‌های غیر اولیه (Non-Primitive Data Types)

داده‌های غیر اولیه شامل نوع‌هایی هستند که می‌توانند شامل مجموعه‌ای از مقادیر باشند و قابل تغییر (mutable) هستند. در جاوا اسکریپت، انواع داده‌های غیر اولیه عبارتند از:

Object: برای ذخیره مجموعه‌ای از کلید-مقدارها. می‌تواند شامل انواع مختلف داده‌ها باشد.

Array: نوع خاصی از شیء که برای ذخیره مجموعه‌ای از مقادیر استفاده می‌شود.

Function: توابع نیز نوعی از اشیاء هستند.

مثال:

// Object
let person = {
name: "Ali",
age: 30,
isStudent: false
};

// Array
let fruits = ["apple", "banana", "cherry"];

// Function
function greet() {
console.log("Hello!");
}


جمع‌بندی

• داده‌های اولیه به صورت مستقیم مقدار را نگه می‌دارند و غیرقابل تغییر هستند.

• داده‌های غیر اولیه می‌توانند شامل مجموعه‌ای از مقادیر باشند و قابل تغییر هستند.

این دو دسته اصلی داده‌ها در جاوا اسکریپت به شما کمک می‌کنند تا برنامه‌های خود را به طور مؤثرتر مدیریت کنید.
1👍1
در جاوا اسکریپت، Template Literals (یا الگوهای متنی) یک ویژگی جدید از ES6 (ECMAScript 2015) هستند که به شما اجازه می‌دهند رشته‌ها را به شیوه‌ای ساده‌تر و خواناتر بسازید. این ویژگی به شما امکان می‌دهد تا:

1. رشته‌ها را در چند خط بنویسید.

2. متغیرها و عبارات را به راحتی درون رشته‌ها قرار دهید.

3. از توابع و عبارات پیچیده درون رشته‌ها استفاده کنید.

نحوه استفاده از Template Literals

برای استفاده از Template Literals، به جای علامت‌های نقل قول معمولی (' یا ") از بک‌تیک‌ها ( `) استفاده می‌کنید.

1. چند خطی بودن رشته‌ها

با استفاده از Template Literals، می‌توانید رشته‌ها را در چند خط بنویسید:

const multiLineString = این یک رشته
در چند خط است
که با Template Literal نوشته شده است.;

console.log(multiLineString);


2. قرار دادن متغیرها و عبارات

شما می‌توانید متغیرها و عبارات را با استفاده از ${} درون Template Literals قرار دهید:

const name = "علی";
const age = 25;

const greeting = سلام، نام من ${name} است و من ${age} سال دارم.;

console.log(greeting);


3. استفاده از توابع و عبارات

شما می‌توانید توابع و عبارات پیچیده را نیز درون Template Literals استفاده کنید:

const a = 5;
const b = 10;

const result = جمع ${a} و ${b} برابر است با ${a + b}.;

console.log(result);


مزایای Template Literals

خوانایی بهتر: با استفاده از Template Literals، کد شما خواناتر و مرتب‌تر خواهد بود.

کاهش نیاز به کاراکترهای فرار: در مقایسه با رشته‌های معمولی، نیاز به کاراکترهای فرار (مانند \n برای خط جدید) کمتر است.

استفاده آسان از عبارات: می‌توانید به راحتی متغیرها و عبارات را درون رشته‌ها قرار دهید.

جمع‌بندی

Template Literals یک ویژگی قدرتمند در جاوا اسکریپت هستند که به شما امکان می‌دهند تا رشته‌ها را به شیوه‌ای ساده‌تر و مؤثرتر بسازید. با استفاده از بک‌تیک‌ها، شما می‌توانید رشته‌های چند خطی ایجاد کنید و به راحتی متغیرها و عبارات را درون آن‌ها قرار دهید.
در جاوااسکریپت، مانند هر زبان برنامه‌نویسی دیگری، رعایت بهترین شیوه‌ها (Best Practices) و اجتناب از شیوه‌های بد (Bad Practices) می‌تواند به بهبود کیفیت کد، افزایش کارایی و تسهیل نگهداری آن کمک کند. در ادامه به برخی از بهترین و بدترین شیوه‌ها در جاوااسکریپت اشاره می‌شود.

بهترین شیوه‌ها (Best Practices)

1. استفاده از const و let به جای var:

• استفاده از const برای متغیرهای غیرقابل تغییر و let برای متغیرهای قابل تغییر، به جلوگیری از مشکلات مربوط به دامنه متغیرها کمک می‌کند.
   const PI = 3.14; // ثابت
let age = 25; // متغیر قابل تغییر


2. استفاده از Arrow Functions:

• توابع فلش (Arrow Functions) به شما کمک می‌کنند تا کد را مختصرتر و خواناتر بنویسید.
   const add = (a, b) => a + b;


3. استفاده از Template Literals:

• برای ساخت رشته‌های چند خطی و درج متغیرها، از Template Literals استفاده کنید.
   const name = "علی";
const greeting = سلام، ${name}!;


4. مدیریت خطا:

• از بلوک‌های try...catch برای مدیریت خطاها استفاده کنید تا از بروز مشکلات غیرمنتظره جلوگیری کنید.
   try {
// کد ممکن است خطا بدهد
} catch (error) {
console.error("خطا:", error);
}


5. استفاده از ماژول‌ها:

• کد خود را به ماژول‌های کوچک تقسیم کنید تا نگهداری و استفاده مجدد از آن آسان‌تر شود.

6. نوشتن مستندات:

• مستندات مناسب برای کد خود بنویسید تا دیگران (و خودتان در آینده) بتوانند به راحتی بفهمند که کد چه کاری انجام می‌دهد.

7. استفاده از linting tools:

• ابزارهایی مانند ESLint را برای شناسایی و اصلاح مشکلات کدنویسی استفاده کنید.

شیوه‌های بد (Bad Practices)

1. استفاده از var:

• استفاده از var می‌تواند منجر به مشکلات دامنه و تداخل نام‌ها شود.
   var x = 10; // بهتر است از let یا const استفاده شود


2. عدم مدیریت خطا:

• نادیده گرفتن مدیریت خطا می‌تواند باعث بروز مشکلات جدی در برنامه شود.

3. نوشتن کد غیرقابل فهم:

• استفاده از نام‌های متغیر نامناسب یا نوشتن کد پیچیده بدون توضیحات می‌تواند فهم کد را دشوار کند.

4. استفاده بیش از حد از Globals:

• استفاده از متغیرهای جهانی می‌تواند منجر به تداخل نام‌ها و مشکلات دیگر شود.

5. عدم استفاده از Strict Mode:

• عدم استفاده از "Strict Mode" می‌تواند منجر به بروز مشکلاتی در کد شود.
   'use strict'; // استفاده از حالت سخت


6. عدم استفاده از Async/Await:

• نادیده گرفتن الگوهای مدرن مدیریت Promise مانند async/await می‌تواند کد را پیچیده‌تر کند.
   async function fetchData() {
const response = await fetch(url);
const data = await response.json();
return data;
}


7. عدم توجه به عملکرد:

• نوشتن کد بدون توجه به کارایی و بهینه‌سازی می‌تواند منجر به کاهش سرعت برنامه شود.

جمع‌بندی

رعایت بهترین شیوه‌ها و اجتناب از شیوه‌های بد در جاوااسکریپت به شما کمک می‌کند تا کدی تمیزتر، قابل نگهداری‌تر و کارآمدتر بنویسید. با پیروی از این نکات، می‌توانید کیفیت پروژه‌های خود را بهبود ببخشید و تجربه بهتری در برنامه‌نویسی داشته باشید.