ویژگیها
ویژگیهای 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
فرض کن یک آبجکت(آرایه) داریم، میخوایم مقادیر قبلی اون آبجکت(آرایه) رو نگه داریم و صرفا یک مقدارش رو عوض کنیم یا بهش اضافه کنیم. در این حالت باید از این ویژگی استفاده کرد
const nums = [1, 3, 10, 14]
const newNums = [...nums, 18, 13] // [1, 3, 10, 14, 18, 13]
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 ها قطعا آشنا هستی این یک سینتکس راحتتره
const fetchData = async (id) => {
const response = await fetch(`example.com/${id}`)
const data = await response.json()
return data;
}
هرجا await داشتی باید تابعی که داخلش هست async بشه و از طرفی وقتی میخوای از اون تابع استفاده کنی باید پشتش await بزنی.
const main = async () =>{
const data = await fetchData(3);
console.log(data)
}
Export | Import
Export
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 است