💎 موتور جاوااسکریپت (engine) 💎
امروز میخوایم بریم سراغ دو تا از مهمترین مفاهیم در متور جاوا اسکریپت: Call Stack و Memory Heap. که کدای ما توی این دوتا بخش اجرا میشه.
🤔 حالا Call Stack چیه؟
تصور کنید چندتا بشقاب روی هم داریم. هر وقت یه تابع جدید صدا میزنیم، یه بشقاب جدید روی بشقابای قبلی میذاریم. وقتی کار تابع تموم شد، بشقاب رو برمیداریم. این روند همون Call Stack ماست.
❓ چرا این مهمه؟
چون جاوا اسکریپت تک رشته ای هست (single thread) هست، یعنی هر بار فقط یه کار رو انجام میده. Call Stack به جاوا اسکریپت کمک میکنه بفهمه کدوم تابع باید بعد از تابع قبلی اجرا بشه.
🧐 حالا Execution Context درون call stack چیه؟
هر بار که یه تابع اجرا میشه، یه Execution Context جدید ایجاد میشه که به call stack اضافه میشه. این Context شامل دو بخش اصلی هست:
تصور کن یه درخت خانوادگی داریم. هر متغیری یه فرزند از نسل قبلی هست. Scope Chain به ما کمک میکنه تا از پایین به بالا در این درخت جستجو کنیم و مقدار متغیرها رو پیدا کنیم.
❓ حالا کلمه کلیدی This چیه؟
این کلمه کلیدی به شیء جاری اشاره میکنه. اما مقدار دقیقش به نحوه فراخوانی تابع بستگی داره. مثلا وقتی یه تابع به عنوان متد یک شیء فراخوانی میشه، this به اون شیء اشاره میکنه.
❓ حالا Memory Heap چیه؟
حالا بیایم سراغ Memory Heap. این قسمت مثل یه انبار بزرگه که همه دادههای برنامه توش ذخیره میشه. اشیاء، آرایهها و توابع همه در Heap قرار میگیرن.
❓ تفاوت Call Stack و Memory Heap چیه؟
فهمیدیم Call Stack و Memory Heap دو مفهوم اساسی در جاوا اسکریپت هستن که درک عمیقشون برای نوشتن کدهای کارآمد و عیبیابی بسیار مهمه.
@ninja_learn_ir
امروز میخوایم بریم سراغ دو تا از مهمترین مفاهیم در متور جاوا اسکریپت: Call Stack و Memory Heap. که کدای ما توی این دوتا بخش اجرا میشه.
🤔 حالا Call Stack چیه؟
تصور کنید چندتا بشقاب روی هم داریم. هر وقت یه تابع جدید صدا میزنیم، یه بشقاب جدید روی بشقابای قبلی میذاریم. وقتی کار تابع تموم شد، بشقاب رو برمیداریم. این روند همون Call Stack ماست.
❓ چرا این مهمه؟
چون جاوا اسکریپت تک رشته ای هست (single thread) هست، یعنی هر بار فقط یه کار رو انجام میده. Call Stack به جاوا اسکریپت کمک میکنه بفهمه کدوم تابع باید بعد از تابع قبلی اجرا بشه.
🧐 حالا Execution Context درون call stack چیه؟
هر بار که یه تابع اجرا میشه، یه Execution Context جدید ایجاد میشه که به call stack اضافه میشه. این Context شامل دو بخش اصلی هست:
🗂Variable Environment:
جایی که متغیرهای محیطی تابع ها ذخیره میشن.
🌳Scope Chain:حالا Scope Chain چیه؟ ⛓️
زنجیرهای از اشیاء است که برای پیدا کردن مقدار متغیرها استفاده میشه.
تصور کن یه درخت خانوادگی داریم. هر متغیری یه فرزند از نسل قبلی هست. Scope Chain به ما کمک میکنه تا از پایین به بالا در این درخت جستجو کنیم و مقدار متغیرها رو پیدا کنیم.
❓ حالا کلمه کلیدی This چیه؟
این کلمه کلیدی به شیء جاری اشاره میکنه. اما مقدار دقیقش به نحوه فراخوانی تابع بستگی داره. مثلا وقتی یه تابع به عنوان متد یک شیء فراخوانی میشه، this به اون شیء اشاره میکنه.
❓ حالا Memory Heap چیه؟
حالا بیایم سراغ Memory Heap. این قسمت مثل یه انبار بزرگه که همه دادههای برنامه توش ذخیره میشه. اشیاء، آرایهها و توابع همه در Heap قرار میگیرن.
❓ تفاوت Call Stack و Memory Heap چیه؟
Call Stack:
برای اجرای کد استفاده میشه و بر اساس
اصل LIFO (Last In, First Out) کار میکنه.
Memory Heap:✅ جمعبندی
برای ذخیره دادهها استفاده میشه و حافظه به صورت پویا تخصیص داده میشه.
فهمیدیم Call Stack و Memory Heap دو مفهوم اساسی در جاوا اسکریپت هستن که درک عمیقشون برای نوشتن کدهای کارآمد و عیبیابی بسیار مهمه.
#جاوااسکریپت #callstack #memoryheap #executioncontext #scope #this
👍15❤2
دوستان براتون یه چالش خفن دارم 😁
برید درمورد DSA یا همون
تحقیق بکنید و بیاید چیزی که یاد گرفتید رو اینجا بگید 👇
https://t.iss.one/+td1EcO_YfSphNTlk
اگه موافقید درموردش یه پستم درست میکنم
@ninja_learn_ir
برید درمورد DSA یا همون
Digital signature algorithm
تحقیق بکنید و بیاید چیزی که یاد گرفتید رو اینجا بگید 👇
https://t.iss.one/+td1EcO_YfSphNTlk
اگه موافقید درموردش یه پستم درست میکنم
Telegram
Programmers City 🌆
گروه نینجا لرن🥷
🌐 channel link : https://t.iss.one/ninja_learn_ir
👥 Group link: https://t.iss.one/+td1EcO_YfSphNTlk
⚠️ Rules: https://t.iss.one/programmers_city_rules
🌐 channel link : https://t.iss.one/ninja_learn_ir
👥 Group link: https://t.iss.one/+td1EcO_YfSphNTlk
⚠️ Rules: https://t.iss.one/programmers_city_rules
👍9❤1👏1
سلام رفقا 👋
یه پست اینستا گذاشتیم مخصوص پایتون کارا 😉
ممنون میشیم که از ما با لایک و کامنت گذاشتن حمایت کنید 🌹😊
https://www.instagram.com/p/C-nOBcEMQ-f/?igsh=bDRremI1a3B5dTZv
یه پست اینستا گذاشتیم مخصوص پایتون کارا 😉
ممنون میشیم که از ما با لایک و کامنت گذاشتن حمایت کنید 🌹😊
https://www.instagram.com/p/C-nOBcEMQ-f/?igsh=bDRremI1a3B5dTZv
👍8☃2
Ninja Learn | نینجا لرن pinned «سلام رفقا 👋 یه پست اینستا گذاشتیم مخصوص پایتون کارا 😉 ممنون میشیم که از ما با لایک و کامنت گذاشتن حمایت کنید 🌹😊 https://www.instagram.com/p/C-nOBcEMQ-f/?igsh=bDRremI1a3B5dTZv»
بیشتر دوستانی که پستارو میبینن نه ریکشن میزنن و نه فالو میکنن
لطفا فالو کنید ما داریم اینجا زحمت میکشیم🥲
@ninja_learn_ir
لطفا فالو کنید ما داریم اینجا زحمت میکشیم🥲
❤14👍3🆒2👎1🐳1
Ninja Learn | نینجا لرن
بیشتر دوستانی که پستارو میبینن نه ریکشن میزنن و نه فالو میکنن لطفا فالو کنید ما داریم اینجا زحمت میکشیم🥲 @ninja_learn_ir
This media is not supported in your browser
VIEW IN TELEGRAM
🔥7👍1😢1
💎 دنیای رمزنگاری با DSA 💎
امروز میخوایم با هم یکی از الگوریتمهای مهم و پرکاربرد در دنیای رمزنگاری آشنا بشیم. این الگوریتم با اسم جذاب DSA شناخته میشه که مخفف Digital Signature Algorithm هست.
حالا DSA چیه و چیکار میکنه؟ 🤔
تصور کن میخوای یه پیام خیلی مهم رو برای دوستت بفرستی. اما نگران اینی که کسی پیام رو تو راه دستکاری کنه یا به اسم تو پیام بفرسته. اینجا DSA به دادت میرسه!
خب DSA یه الگوریتم رمزنگاریه که بهت کمک میکنه تا مطمئن بشی پیامی که فرستادی دست نخورده به دست مقصد رسیده و واقعا توسط خودت ارسال شده. به عبارت دیگه، DSA مثل یه امضای دیجیتالی عمل میکنه که ثابت میکنه پیام از طرف تو ارسال شده و کسی نتونسته اون رو تغییر بده.
چطور کار میکنه؟
اینجوریه که DSA از دو کلید استفاده میکنه: یک کلید عمومی و یک کلید خصوصی.
🔑 کلید عمومی: مثل یه کارت ویزیت دیجیتالی هست که همه میتونن ببینن. این کلید برای رمزگشایی پیام استفاده میشه.
🗝 کلید خصوصی: مثل یه رمز عبور خیلی محرمانه هست که فقط خودت باید بدونی. این کلید برای ایجاد امضای دیجیتال استفاده میشه.
وقتی میخوای یه پیام رو امضا کنی، DSA از کلید خصوصیت برای ایجاد یه رشته تصادفی استفاده میکنه. این رشته تصادفی با پیام اصلی ترکیب میشه و یه امضای دیجیتال ایجاد میکنه. این امضا به پیام اصلی اضافه میشه و همراه با پیام برای گیرنده ارسال میشه.
گیرنده با استفاده از کلید عمومی تو، امضای دیجیتال رو بررسی میکنه. اگر امضا معتبر باشه، مطمئن میشه که پیام از طرف تو ارسال شده و دستکاری نشده.
⚙ الگوریتمهای استفاده شده در DSA:
خب DSA از چندین الگوریتم ریاضی پیچیده استفاده میکنه که تضمین میکنه شکستن امضای دیجیتال تقریبا غیرممکن باشه. این الگوریتمها بر اساس تئوری اعداد و رمزنگاری نامتقارن طراحی شدهاند.
✅ کاربردهای DSA:
1⃣ امضای دیجیتال اسناد: برای اطمینان از اصالت و عدم تغییر اسناد الکترونیکی
2⃣ احراز هویت: برای تأیید هویت کاربران در سیستمهای امنیتی
3⃣ تأمین امنیت تراکنشهای مالی: برای محافظت از اطلاعات حساس در تراکنشهای آنلاین
4⃣ امضای نرمافزار: برای اطمینان از اینکه نرمافزار دستکاری نشده است
مزایای DSA:
5⃣ امنیت بالا: شکستن امضای دیجیتال DSA بسیار دشوار است.
6⃣ سرعت بالا: DSA نسبت به برخی الگوریتمهای دیگر سریعتر عمل میکنه.
7⃣ استاندارد بودن: DSA یک استاندارد جهانی است و در بسیاری از سیستمهای امنیتی استفاده میشه.
✅ جمعبندی:
فهمیدیم که DSA یک ابزار قدرتمند برای تأمین امنیت اطلاعات است. با استفاده از DSA میتونیم اطمینان حاصل کنیم که اطلاعات ما دست نخورده باقی میمونه و از طرف فرد مورد نظر ارسال شده است.
⭕️ نکته: DSA یکی از چندین الگوریتم امضای دیجیتال است. الگوریتمهای دیگری مثل RSA هم وجود دارند که کاربردهای مشابهی دارند.
@ninja_learn_ir
امروز میخوایم با هم یکی از الگوریتمهای مهم و پرکاربرد در دنیای رمزنگاری آشنا بشیم. این الگوریتم با اسم جذاب DSA شناخته میشه که مخفف Digital Signature Algorithm هست.
حالا DSA چیه و چیکار میکنه؟ 🤔
تصور کن میخوای یه پیام خیلی مهم رو برای دوستت بفرستی. اما نگران اینی که کسی پیام رو تو راه دستکاری کنه یا به اسم تو پیام بفرسته. اینجا DSA به دادت میرسه!
خب DSA یه الگوریتم رمزنگاریه که بهت کمک میکنه تا مطمئن بشی پیامی که فرستادی دست نخورده به دست مقصد رسیده و واقعا توسط خودت ارسال شده. به عبارت دیگه، DSA مثل یه امضای دیجیتالی عمل میکنه که ثابت میکنه پیام از طرف تو ارسال شده و کسی نتونسته اون رو تغییر بده.
چطور کار میکنه؟
اینجوریه که DSA از دو کلید استفاده میکنه: یک کلید عمومی و یک کلید خصوصی.
🔑 کلید عمومی: مثل یه کارت ویزیت دیجیتالی هست که همه میتونن ببینن. این کلید برای رمزگشایی پیام استفاده میشه.
🗝 کلید خصوصی: مثل یه رمز عبور خیلی محرمانه هست که فقط خودت باید بدونی. این کلید برای ایجاد امضای دیجیتال استفاده میشه.
وقتی میخوای یه پیام رو امضا کنی، DSA از کلید خصوصیت برای ایجاد یه رشته تصادفی استفاده میکنه. این رشته تصادفی با پیام اصلی ترکیب میشه و یه امضای دیجیتال ایجاد میکنه. این امضا به پیام اصلی اضافه میشه و همراه با پیام برای گیرنده ارسال میشه.
گیرنده با استفاده از کلید عمومی تو، امضای دیجیتال رو بررسی میکنه. اگر امضا معتبر باشه، مطمئن میشه که پیام از طرف تو ارسال شده و دستکاری نشده.
⚙ الگوریتمهای استفاده شده در DSA:
خب DSA از چندین الگوریتم ریاضی پیچیده استفاده میکنه که تضمین میکنه شکستن امضای دیجیتال تقریبا غیرممکن باشه. این الگوریتمها بر اساس تئوری اعداد و رمزنگاری نامتقارن طراحی شدهاند.
✅ کاربردهای DSA:
1⃣ امضای دیجیتال اسناد: برای اطمینان از اصالت و عدم تغییر اسناد الکترونیکی
2⃣ احراز هویت: برای تأیید هویت کاربران در سیستمهای امنیتی
3⃣ تأمین امنیت تراکنشهای مالی: برای محافظت از اطلاعات حساس در تراکنشهای آنلاین
4⃣ امضای نرمافزار: برای اطمینان از اینکه نرمافزار دستکاری نشده است
مزایای DSA:
5⃣ امنیت بالا: شکستن امضای دیجیتال DSA بسیار دشوار است.
6⃣ سرعت بالا: DSA نسبت به برخی الگوریتمهای دیگر سریعتر عمل میکنه.
7⃣ استاندارد بودن: DSA یک استاندارد جهانی است و در بسیاری از سیستمهای امنیتی استفاده میشه.
✅ جمعبندی:
فهمیدیم که DSA یک ابزار قدرتمند برای تأمین امنیت اطلاعات است. با استفاده از DSA میتونیم اطمینان حاصل کنیم که اطلاعات ما دست نخورده باقی میمونه و از طرف فرد مورد نظر ارسال شده است.
⭕️ نکته: DSA یکی از چندین الگوریتم امضای دیجیتال است. الگوریتمهای دیگری مثل RSA هم وجود دارند که کاربردهای مشابهی دارند.
#امنیت_اطلاعاتDSA #رمزنگاری #امضای_دیجیتال
👍13❤1
Ninja Learn | نینجا لرن
Megara Template.zip
سلام رفقا 👋
برای توسعه این قالب بیشتر از 1 ماه زمان گذاشته شده و قرار بود توی سایت راستچین به فروش گذاشته بشه
ولی تصمیم گرفتم به صورت رایگان در اختیارتون بذارم ❤️
ممنون میشم با فالو کردن پیج و لایک کردن پست های اینستامون و فوروارد کردن از ما و زحماتمون حمایت کنید 🌹
آدرس پیج اینستامون:
https://www.instagram.com/ninjalearn_/
برای توسعه این قالب بیشتر از 1 ماه زمان گذاشته شده و قرار بود توی سایت راستچین به فروش گذاشته بشه
ولی تصمیم گرفتم به صورت رایگان در اختیارتون بذارم ❤️
ممنون میشم با فالو کردن پیج و لایک کردن پست های اینستامون و فوروارد کردن از ما و زحماتمون حمایت کنید 🌹
آدرس پیج اینستامون:
https://www.instagram.com/ninjalearn_/
👍10❤5
Ninja Learn | نینجا لرن
📊 قالب مدیریت رایگان مگارا 💻 توسعه داده شده و ارئه شده توسط نینجالرن
دوستان اونایی که میخوان preview این قالب رو ببینند به این لینک مراجعه کنند 👇
https://megara.netlify.app
https://megara.netlify.app
megara.netlify.app
مگارا | خانه
بهترین قالب پنل مدیریت فارسی در ایران
👍5🥰2❤1🔥1