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

آموزش برنامه نویسی جاوا اسکریپت-جلسه بیست و چهارم
آموزش برنامه نویسی جاوا اسکریپت-جلسه بیست و چهارم
شی گرایی (object oriented programming)
شی گرایی یک شیوه برنامه نویسی است که در اکثر زبان های برنامه نویسی استفاده می شود. در این شیوه برنامه نویسی ، برنامه نویس هرمفهومی که میخواهد پیاده سازی کند به صورت شی(object) می بیند و هر شی یک سری خصوصیات(properties)و رفتارهایی) (Methodsدارد. مثلا وسایل نقلیه رو در نظر بگیریم. خب وسایل نقلیه می توانند به شاخه های مختلف طبقه بندی شوند مثلا وسایل نقلیه بدون چرخ ، وسایل نقلیه چرخ دار؛ حال این ها نیز زیر مجموعه های خود را دارند که هر کدام برای خودش یک شی محسوب می شود که از شی والد یعنی وسایل نقلیه خصوصیاتی را به ارث می برد. حالا اگر بخواهیم برای خودروها یک برنامه بنویسیم ، خودرو می شود شی، شی در برنامه نویسی با classمشخص می شود ، گفتیم که هر شی یک سری خصوصیات دارد و یک سری رفتارها. خصوصیات عملی را انجام نمی دهند و صفت هستند مثلا رنگ ماشین ، وزن ماشین. رفتارها عمل هستند مثل حرکت کردن یا ترمز گرفتن .
مفهوم وراثت (inheritance)
وراثت یعنی اشیا یک سری خصوصیت را از والدشون به ارث می برن مثلا دانش آموز ، یک انسان هست ، اینجا انسان یک شی کلی است که ما می توانیم انواع انسان را تعریف کنیم که همه اینها یک سری خصوصیات را از شی والد به ارث می برند مثلا همگی قد و وزن دارد ولی همه دانش آموز نیستند دانش آموز علاوه بر ویژگی های مشترک ویژگی های خاص خود را دارد مثلا به مدرسه می رود نمره می گیرد و...
مفهوم چندریختی (polymorphism)
یعنی یک متد را می نویسم و به شکل های مختلف ازش استفاده کنیم مثلا یک متد می نویسم برای سرچ کردن که هم میتواند با استفاده از نام و نام خانوادگی سرچ کند هم با کد ملی.
مفهوم کپسوله سازی (Encapulation)
یک سری خصوصیات برای هر شی تعریف می شود که فقط تو اون شی قابل استفاده باشه تو بقیه اشیاء مهم نباشه.
مفهوم انتزاع (Abstraction)
این مفهوم کمک می کنه تا هر مفهومی را ما بتوانیم مثل شی تعریف کنیم حتی اگر آن مفهوم وجود خارجی نداشته باشد . مثلا انسان وجود دارد و ما آن را بررسی می کنیم ولی دکمه وجود خارجی ندارد بلکه ما خودمان آن را خلق می کنیم و برایش ویژگی و رفتار تعریف می کنیم.
Object Definitions
Objectرا می توان به صورت های مختلف تعریف کرد:
const person = {};
person.firstName = John;
person.lastName = Doe;
person.age = 50;
person.eyeColor = blue;
const person = {
firstName: John,
lastName: Doe,
age: 50,
eyeColor: blue
};
یا به این صورت :
const person = {};
person.firstName = John;
person.lastName = Doe;
person.age = 50;
person.eyeColor = blue;
حتی میتوانیم به صورت آبجکت جدید ی تعریفش کنیم:
const person = new Object();
person.firstName = John;
person.lastName = Doe;
person.age = 50;
person.eyeColor = blue;
برای دسترسی به آبجکت ها هم می توان به روش های زیر عمل کرد :
objectName.property
objectName[property]
objectName[expression]
حتی می توان با حلقه for inهم به آبجکت دسترسی پیدا کرد.
Deleting properties
برای حذف یک خصوصیت میتوان از کلمه deleting استفاده کرد.
const person = {
firstName: John,
lastName: Doe,
age: 50,
eyeColor: blue
};
delete person.age;
Nested Objects
می توان آبجکت را به صورت تو در تو تعریف کرد
myObj = {
name:John,
age:30,
cars: {
car1:Ford,
car2:BMW,
car3:Fiat
}
}
برای دسترسی به خصوصیت های این آبجکت به صورت زیر می توان عمل کرد :
myObj.cars.car2;
هم چنین مقادیر یک آبجکت میتونه به صورت آرایه باشه و مقادیر داخل آرایه یک آبجکت میتونه باشه. اوصولا برای دسترسی به آیتم ها در این حالت باید از حلقه For inاستفاده کنیم.
Object Method
const person = {
firstName: John,
lastName: Doe,
id: 5566,
fullName: function() {
return this.firstName + + this.lastName;
}
};
متد fullNameبرای چاپ اسم و فامیلی استفاده شده در این مثال . کلمه thisهم به خود آبجکت اشاره داره.
Object.values()
مقادیر رو برمی گردونه
JSON.stringify()
مقادیر را به صورت آبجکت برمی گردونه .
کلام آخر

نویسنده
مریم گوهرزاد
مدرس و بنیانگذار هلدینگ آرتا رسانه. برنامه نویس و محقق حوزه بلاکچین و توسعهدهنده بلاکچین | متخصص Solidity | توسعهدهنده وب Full-Stackمن یک توسعهدهنده علاقهمند به فناوریهای بلاکچین و وب ۳ هستم و در زمینه Solidity، توسعه قراردادهای هوشمند و ساخت برنامههای غیرمتمرکز (DApps) فعالیت میکنم. تمرکز من بر طراحی و پیادهسازی راهکارهایی است که در کنار بهرهگیری از فناوریهای نوین، عملکرد مناسب، امنیت و تجربه کاربری مطلوبی ارائه دهند.در مسیر حرفهای خود، تجربه کار با قراردادهای هوشمند و معماری راهکارهای مبتنی بر بلاکچین را به دست آوردهام و همواره تلاش میکنم دانش خود را با آخرین تغییرات و پیشرفتهای این حوزه بهروز نگه دارم. برای من، بلاکچین تنها یک فناوری جدید نیست؛ بلکه بستری برای ایجاد راهکارهای متفاوت و کاربردی در دنیای واقعی است.در کنار تخصص در حوزه بلاکچین، به عنوان یک توسعهدهنده وب Full-Stack نیز در طراحی و توسعه وبسایتها و برنامههای تحت وب فعالیت میکنم. تجربه کار در بخشهای Front-End و Back-End به من این امکان را داده است که پروژهها را از مرحله ایده و طراحی تا توسعه و اجرا، با دیدی جامع دنبال کنم. در فرآیند توسعه، توجه ویژهای به کدنویسی تمیز، معماری مناسب، طراحی واکنشگرا، عملکرد مطلوب و تجربه کاربری روان دارم.همیشه به دنبال یادگیری، تجربه فناوریهای جدید و پیدا کردن راههای بهتر برای حل مسائل فنی هستم. از مواجهه با چالشهای پیچیده استقبال میکنم و معتقدم بهترین نتایج زمانی شکل میگیرند که دانش فنی، خلاقیت و همکاری مؤثر در کنار یکدیگر قرار بگیرند.اگر به دنبال همکاری در یک پروژه بلاکچینی، Web3 یا توسعه وب هستید، خوشحال میشوم با یکدیگر در ارتباط باشیم و ایدهها را به راهکارهای واقعی و قابل اجرا تبدیل کنیم.



