javaScript زبانی چیست؟

جاوا اسکریپت یک است تک رشتهبا دینامیکی تایپ شده، زبان برنامه نویسی تفسیر شده که از پارادایم های برنامه نویسی متعدد ، از جمله سبک های شی گرا ، کاربردی و ضروری پشتیبانی می کند. ویژگی های آن جهت گیری شیء مبتنی بر نمونه اولیه و یک معماری رویداد محور را ارائه می دهد. ساخت آن برای ساخت برنامه های وب تعاملی و ناهمزمان مناسب است.
با این تعریف ایده زیادی پیدا نکردیم ، بیایید هر قسمت از تعریف آن را با جزئیات کشف کنیم
threading threaded: جاوا اسکریپت است تک رشته، به این معنی که فقط دارد یک موضوع اصلی اعدامبشر این بدان معنی است که از a استفاده می کند پشته تک تماس برای مدیریت اجرای عملکرد.
وقتی یک تابع خوانده می شود ، این است به بالا هل داده شد از پشته تماس پس از اتمام عملکرد ، این است از پشته بیرون آمد، و کنترل به مورد بعدی زیر باز می گردد. کد JavaScript به صورت متوالی ، یک قدم در یک زمان اجرا می شود.
با وجود اینکه تک رشته ای است ، JavaScript API های وب (مانند Settimeout ، Fetch و Chansers Event) را فراهم می کند که به عملیات ناهمزمان اجازه می دهند. این API ها با حلقه رویداد و صف تماس برای انجام کارهای ناهمزمان بدون مسدود کردن موضوع اصلی کار می کنند.
console.log("Start");
setTimeout(() => {
console.log("Inside setTimeout"); // runs later
}, 1000);
console.log("End");
// Output:
// Start
// End
// Inside setTimeout
نوع دیامی:
در جاوا اسکریپت ، متغیرها به صراحت با یک نوع اعلام نمی شوند. در عوض ، انواع آنها از مقادیر اختصاص داده شده در زمان اجرا استنباط می شود. این بدان معنی است که یک متغیر می تواند مقدار یک نوع را در خود نگه دارد و بعداً در هنگام اجرای برنامه به یک مقدار کاملاً متفاوت تغییر یابد.
let data = 10; // data is a number
data = "hello"; // now it's a string
data = true; // now it's a boolean
console.log(typeof data); // Output: boolean
- این انعطاف پذیری باعث می شود JavaScript قدرتمند باشد اما در صورت عدم برخورد با دقت ، مستعد ابتلا به اشکالات مربوط به نوع است.
زبان تفسیر شده:
JavaScript یک زبان تفسیر شده است ، به این معنی که کد در زمان اجرا خوانده می شود ، تفسیر می شود و به صورت خط به صورت خط اجرا می شود ، نه اینکه قبل از زمان مانند برخی از زبانهای دیگر تهیه شود (به عنوان مثال ، C ++ یا جاوا).
با این حال ، موتورهای مدرن JavaScript در مرورگرها (مانند V8 در Chrome) از تدوین فقط در زمان (JIT) برای تقویت عملکرد استفاده می کنند. JIT در هنگام اجرای ، اغلب کد را در پرواز استفاده می کند و مزایای تفسیر و تدوین را ترکیب می کند.
let message = "Hello, Gurnav!";
console.log(message); // Output: Hello, Gurnav!
شی گرا: برنامه نویسی شی گرا (OOP) پارادایم است که کد را در اطراف اشیاء سازماندهی می کند ، که نمونه ای از کلاس ها هستند. JavaScript با اجازه دادن به ایجاد و کار با اشیاء برای محاصره داده ها و رفتار ، از OOP پشتیبانی می کند.
اگرچه نحو کلاس در ES6 (ECMAScript 2015) برای نحو پاک کننده و آشناتر OOP معرفی شده است ، JavaScript اساساً بر روی میراث مبتنی بر نمونه اولیه تحت هود ساخته شده است.
class Person {
constructor(name) {
this.name = name;
}
greet() {
console.log(`Hi, I'm ${this.name}`);
}
}
const user = new Person("Gurnav");
user.greet(); // Output: Hi, I'm Gurnav
برنامه نویسی ضروری:
برنامه نویسی ضروری یک الگوی برنامه نویسی است که با استفاده از اظهارات صریح و جریان کنترل (مانند حلقه ها ، شرط ها و تکالیف) به نحوه انجام وظایف مرحله به مرحله متمرکز است.
در این سبک ، شما به رایانه می گویید که چه کاری انجام دهید و چگونه آن را انجام دهید ، وضعیت برنامه را در طول مسیر اصلاح کنید.
const numbers = [1, 2, 3, 4];
const doubled = [];
for (let i = 0; i < numbers.length; i++) {
doubled.push(numbers[i] * 2);
}
console.log(doubled); // [2, 4, 6, 8]
برنامه نویسی عملکردی:
برنامه نویسی کاربردی پارادایم است که در آن برنامه ها با استفاده و آهنگسازی توابع خالص ساخته می شوند. این تأکید می کند که چه کاری باید انجام شود تا اینکه چگونه این کار را انجام دهیم.
اصول کلیدی عبارتند از:
-
توابع خالص (بدون عوارض جانبی)
-
تغییر ناپذیری (داده ها اصلاح نشده است)
-
توابع درجه یک (توابع می توانند مانند متغیرها منتقل شوند)
-
توابع مرتبه بالاتر (توابعی که توابع دیگر را انجام می دهند یا برمی گردانند)
-
ترکیب عملکرد: ایجاد عملکرد پیچیده با ترکیب توابع ساده تر.
const numbers = [1, 2, 3, 4];
const doubled = numbers.map(num => num * 2);
console.log(doubled); // [2, 4, 6, 8]
🧬 جهت گیری مبتنی بر نمونه اولیه:
JavaScript از جهت گیری شیء مبتنی بر نمونه اولیه استفاده می کند ، به این معنی که اشیاء به جای کلاس ها (مانند زبان های کلاسیک OOP) مستقیماً از اشیاء دیگر به ارث می برند.
هر شیء JavaScript دارای پیوند داخلی به شیء دیگری به نام نمونه اولیه آن است. هنگامی که سعی می کنید به یک ویژگی یا روشی که در خود شیء وجود ندارد دسترسی پیدا کنید ، JavaScript به دنبال آن در زنجیره نمونه اولیه شی است.
حتی نحو کلاس در JavaScript فقط قند نحوی نسبت به این میراث مبتنی بر نمونه اولیه است.
function Person(name) {
this.name = name;
}
// Adding method to the prototype
Person.prototype.sayHi = function () {
console.log(`Hi, I'm ${this.name}`);
};
const user = new Person("Gurnav");
user.sayHi(); // Hi, I'm Gurnav
توجه: Sayhi به طور مستقیم روی کاربر نیست ، اما JavaScript آن را از طریق زنجیره نمونه اولیه پیدا می کند.
strchitecture معماری رویداد:
معماری مبتنی بر رویداد یک مدل برنامه نویسی است که در آن جریان برنامه توسط رویدادها تعیین می شود-مانند اقدامات کاربر (کلیک ، تایپ) ، پیام های سایر برنامه ها یا تایمر.
در جاوا اسکریپت ، به ویژه در محیط مرورگر ، این یک مفهوم اصلی است. JavaScript از شنوندگان رویداد برای واکنش به وقایع غیر همزمان بدون مسدود کردن موضوع اصلی استفاده می کند. این امر امکان ایجاد برنامه های بسیار تعاملی و پاسخگو را فراهم می کند.
در اینجا ، JavaScript برای رویداد “کلیک” گوش می دهد. هنگامی که این رویداد اتفاق می افتد ، عملکرد پاسخ به تماس اجرا می شود.
موارد استفاده در دنیای واقعی:
-
کلیک دکمه
-
فرم ارسال
-
ورودی صفحه کلید
-
حرکات موش
-
پاسخ های API (مانند Fetch)
-
تایمر (settimeout ، setInterval)