2022 (2022)
در این صفحه «جاوااسکریپت 2022» را ساده می بینیم. هر ویژگی را کوتاه توضیح می دهم و مثال می زنم تا سریع جا بیفتد.
مرور ویژگی های جاوااسکریپت 2022
مهم ترین ها: at() برای آرایه و رشته، پرچم /d در عبارات باقاعده (RegExp)، متد امن Object.hasOwn()، ویژگی error.cause، await import در ماژول ها، و «فیلد/متد خصوصی» در کلاس ها.
آرایه at()
متد at() عنصرِ «با اندیس» می دهد. مزیتش، پشتیبانی از اندیس منفی است.
const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits.at(2);
رشته at()
روی رشته هم at() همان کار را می کند؛ کاراکتر با اندیس می دهد.
const name = "W3Schools";
let letter = name.at(2);
RegExp با پرچم d
پرچم /d شروع و پایان تطابق را می دهد؛ برای تحلیل دقیق تر مفید است.
let text = "aaaabb";
let result = text.match(/(aa)(bb)/d);
Object.hasOwn()
«مالک بودن ویژگی» را امن بررسی می کند؛ شبیه hasOwnProperty ولی مطمئن تر.
Object.hasOwn(myObject, "age");
Error با cause
می توانی «علت خطا» را زنجیروار منتقل کنی؛ دیباگ راحت تر می شود.
try {
try {
JSON.parse("<b>blablablabla</b>");
} catch (err) {
throw new Error("Failed to load JSON", { cause: err });
}
} catch (err) {
let text = err.name + " " + err.message;
}
await import در ماژول ها
ماژول (Module) بسته کد است. با await import اول وابستگی ها می آیند، بعد اجرا می شود.
import { myData } from "./myData.js";
const data = await myData();
اعلان فیلد در کلاس
فیلد (Field) یعنی متغیر داخل کلاس. مستقیم داخل بدنه تعریف می شود.
class Hello {
counter = 0;
}
const myClass = new Hello();
let x = myClass.counter;
متدها و فیلدهای خصوصی (#)
خصوصی یعنی فقط داخل همان کلاس دیده می شود. با # مشخص می شود.
class Hello {
#counter = 0;
#myMethod() {}
}
const myClass = new Hello();
// دسترسی مستقیم خطا می دهد:
// myClass.#myMethod();
گام های تمرین سریع
- یک آرایه بساز و با
at()چند اندیس را بگیر. - یک الگو بنویس و با
/dمحدوده تطابق را ببین. - یک کلاس بساز و یک فیلد خصوصی با
#اضافه کن.
جمع بندی سریع
at()خواندن ایمن با اندیس، حتی منفی./dمحدوده تطابق را برمی گرداند.Object.hasOwn()بررسی امن مالکیت ویژگی.error.causeزنجیره خطاها را واضح می کند.- کلاس ها: فیلد و متد خصوصی با
#.
برای ادامه مسیر، صفحه جاوااسکریپت 2023 و همچنین جاوااسکریپت 2021 را ببین.