پرش به مطلب اصلی

ویژگی‌ها

ویژگی‌های js مانند spread operators, async await, destructuring, ...

Destructuring

زمانی که یک آبجکت داریم و نیاز به یک مقدار خاص داخلش داریم میتونیم از destructuring استفاده بکنیم

const data = {
id: 13,
name: "amir",
age: 18,
address: {
city: "Tehran",
street: "golestan 10",
postalCode: 1549871134,
},
};

const {
id,
name,
address: { city, postalCode },
} = data;

در این عملیات مقدارهای id, name, city, postalCode, address از داخل آبجکت data بدست می‌آیند و به عنوان یک متغیر با همین اسم‌ها ذخیره میشوند برای تغییر اسم یک چیز به طور خلاصه باید از سینتکس زیر استفاده کرد

const { name: firstName, age } = data;

که اسم name رو به صورت firstName ذخیره میکند

Spread Operators

فرض کن یک آبجکت(آرایه) داریم، میخوایم مقادیر قبلی اون آبجکت(آرایه) رو نگه داریم و صرفا یک مقدارش رو عوض کنیم یا بهش اضافه کنیم. در این حالت باید از این ویژگی استفاده کرد

array.js
const nums = [1, 3, 10, 14];
const newNums = [...nums, 18, 13]; // [1, 3, 10, 14, 18, 13]

object.js
const user = {
id: 12,
name: "ali",
age: 21,
};
const newUser = {
...user,
age: 23,
petName: "tala",
}; // { id: 12, name:"ali", age:23, petName:"tala" }

Async | Await

با مفهوم promise ها قطعا آشنا هستی این یک سینتکس راحتتره

create.js
const fetchData = async (id) => {
const response = await fetch(`example.com/${id}`);
const data = await response.json();
return data;
};

هرجا await داشتی باید تابعی که داخلش هست async بشه و از طرفی وقتی میخوای از اون تابع استفاده کنی باید پشتش await بزنی.

use.js
const main = async () => {
const data = await fetchData(3);
console.log(data);
};

Export | Import

Export

user.js
const userInfo = {
id: 12,
name: "Ali",
username: "Hosseini",
};
const userAddres = {
postalCode: 125661313,
street: "golestan 9",
};
const user = {
userInfo,
userAddres,
};

export { userInfo, userAddres };
export default user;

توی حالت export {...} به صورت named export میشود و در صورت export default ... به صورت دیفالت export میشود

Import

import user, { userInfo, userAddress } from "./user.js";

import {...} مربوط به export های named است و import ... مربوط به export default است