💎 راه حلی برای خطای 431 Request Header Fields Too Large
شاید هنگام رندر کردن پروژه ریکتی (در کل جاوا اسکریپتی) تان به این ارور در محیط کنسول برخورد کرده باشید این ارور زمانی رخ میده که حجم Header دریافتی از طریق پروتکل HTTP بالا باشه.
برای حل این موضوع میتونید یکی از راه حل های زیر رو در پیش بگیرید:
🔸 کوکی های بروزر رو پاکسازی کنید.
🔸درخواست Referer رو کوتاه تر کنید.
💬 توضیح: Referer، بخشی از درخواست ارسالی است که در آن اطلاعاتی در مورد منبعی که از آن درخواست ارسال شده رو نمایش میده. این اطلاعات شامل آدرس صفحه فعلی، صفحه قبلی ای که داخلش بودید و غیره خواهد شد که امروزه خیلی از وبسایت ها از این اطلاعات استفاده تجاری زیادی می کنند. بخش آماری وبسایت ها یا همچنین سرویس های آماری نیز از HTTP Referer جهت جمع آوری دیتا هاشون استفاده می کنند.
🔸 بهینه سازی کد ها (اینو باید بهتر بدونید کجا حجم هدر ارسالی رو افزایش دادید 😅)
🔶 و روش آخر اینکه محدودیت سایز هدر ارسالی را افزایش دهید.
برای این منظور، فایل package.json رو باز کنید
در قسمت script، مقدار پراپرتی استارت رو به صورت زیر وارد کنید
--max-http-header-size
#جاوا_اسکریپت
🌐 @pieceJS
شاید هنگام رندر کردن پروژه ریکتی (در کل جاوا اسکریپتی) تان به این ارور در محیط کنسول برخورد کرده باشید این ارور زمانی رخ میده که حجم Header دریافتی از طریق پروتکل HTTP بالا باشه.
برای حل این موضوع میتونید یکی از راه حل های زیر رو در پیش بگیرید:
🔸 کوکی های بروزر رو پاکسازی کنید.
🔸درخواست Referer رو کوتاه تر کنید.
💬 توضیح: Referer، بخشی از درخواست ارسالی است که در آن اطلاعاتی در مورد منبعی که از آن درخواست ارسال شده رو نمایش میده. این اطلاعات شامل آدرس صفحه فعلی، صفحه قبلی ای که داخلش بودید و غیره خواهد شد که امروزه خیلی از وبسایت ها از این اطلاعات استفاده تجاری زیادی می کنند. بخش آماری وبسایت ها یا همچنین سرویس های آماری نیز از HTTP Referer جهت جمع آوری دیتا هاشون استفاده می کنند.
🔸 بهینه سازی کد ها (اینو باید بهتر بدونید کجا حجم هدر ارسالی رو افزایش دادید 😅)
🔶 و روش آخر اینکه محدودیت سایز هدر ارسالی را افزایش دهید.
برای این منظور، فایل package.json رو باز کنید
در قسمت script، مقدار پراپرتی استارت رو به صورت زیر وارد کنید
"start": "react-scripts --max-http-header-size=10000 start"در دستور بالا، با استفاده از پارامتر زیر این محدودیت رو کاهش دادیم
--max-http-header-size
#جاوا_اسکریپت
🌐 @pieceJS
👍7
💎 معرفی متد های atob و btoa
اگر قصد encode یا decode رشته در فرمت Base64 رو دارید میتونید از این دو متد استفاده کنید.
🔶 بدین ترتیب میتوان گفت که متد btoa برای encode کردن یک رشته استفاده میشه و متد atob جهت decode کردن عبارت های encode شده در فرمت Base64 مورد استفاده قرار میگیره.
💬 نکته: این دو متد از نوع WebAPI هستند و در محیط هایی غیر از مرورگر مانند محیط سروری nodejs قابل استفاده نخواهند بود.
#webapi #javascript #nodejs
🌐 @pieceJS
اگر قصد encode یا decode رشته در فرمت Base64 رو دارید میتونید از این دو متد استفاده کنید.
🔶 بدین ترتیب میتوان گفت که متد btoa برای encode کردن یک رشته استفاده میشه و متد atob جهت decode کردن عبارت های encode شده در فرمت Base64 مورد استفاده قرار میگیره.
💬 نکته: این دو متد از نوع WebAPI هستند و در محیط هایی غیر از مرورگر مانند محیط سروری nodejs قابل استفاده نخواهند بود.
#webapi #javascript #nodejs
🌐 @pieceJS
👍11
💎 معرفی وب سرویس دیکشنری انگلیسی
اگر شما هم مثل من دنبال یک API دیکشنری انگلیسی هستید میتونید از API زیر به صورت رایگان استفاده کنید
https://api.dictionaryapi.dev/api/v2/entries/en/[your_word]
در لینک بالا، بجای [your_word] کلمه مورد نظرتون رو بنویسید تا به طور کامل ریشه اون کلمه رو تو دکشنری براتون در بیاره.
💭 نکته: متد درخواست GET است.
#جاوا_اسکریپت #معرفی_api #دیکشنری
🌐 @pieceJS
اگر شما هم مثل من دنبال یک API دیکشنری انگلیسی هستید میتونید از API زیر به صورت رایگان استفاده کنید
https://api.dictionaryapi.dev/api/v2/entries/en/[your_word]
در لینک بالا، بجای [your_word] کلمه مورد نظرتون رو بنویسید تا به طور کامل ریشه اون کلمه رو تو دکشنری براتون در بیاره.
💭 نکته: متد درخواست GET است.
#جاوا_اسکریپت #معرفی_api #دیکشنری
🌐 @pieceJS
👍8
💎 چرا پاسخ NaN==NaN برابر false است؟
💬 تعریف: NaN مقدار شی گلوبالی یا به عبارتی گلوبال اسکوپ است و نماینده عبارت Not a number می باشد.
🔶 این مقدار نه قابل تغییر هست نه قابل شمارش و همچنین قابل پیکربندی هم نیست.
🔶 این مقدار توسط جاوا اسکریپت ابتداع نشده بلکه توسط استاندارد IEEE 754 تعریف شده و رفتار های این عبارت رو خود این استاندارد تعریف کرده است.
✅ از جمله این رفتار ها میتوان به نابرابری این عبارت با هر عبارت دیگه اشاره کرد. در واقع هرگاه پای مقایسه ای در میان باشه که یک طرف آن عبارت NaN قرار داشته باشه، همیشه پاسخ false خواهد بود مگر در حالتی که آن مقایسه NaN!==NaN باشد که در این صورت پاسخ true خواهد بود
#سوال_کاربران
#javascript
🌐 @pieceJS
💬 تعریف: NaN مقدار شی گلوبالی یا به عبارتی گلوبال اسکوپ است و نماینده عبارت Not a number می باشد.
🔶 این مقدار نه قابل تغییر هست نه قابل شمارش و همچنین قابل پیکربندی هم نیست.
🔶 این مقدار توسط جاوا اسکریپت ابتداع نشده بلکه توسط استاندارد IEEE 754 تعریف شده و رفتار های این عبارت رو خود این استاندارد تعریف کرده است.
✅ از جمله این رفتار ها میتوان به نابرابری این عبارت با هر عبارت دیگه اشاره کرد. در واقع هرگاه پای مقایسه ای در میان باشه که یک طرف آن عبارت NaN قرار داشته باشه، همیشه پاسخ false خواهد بود مگر در حالتی که آن مقایسه NaN!==NaN باشد که در این صورت پاسخ true خواهد بود
#سوال_کاربران
#javascript
🌐 @pieceJS
👍13👎1
💎 کاربرد createTextNode در جاوا اسکریپت چیست؟
ابتدا به این بپردازیم که تو جاوا اسکریپت، نود به چه معناست؟
خیلی ساده بخوام بگم اینکه به تمامی عناصر درون یک صفحه HTML نود میگیم.
🔸 نود ها میتونند عنصر، خصوصیت یا حتی تکست باشند.
▫️نکته: نود هیچ ارتباطی با رانتایم Node.js نداره و صرفاً تو اسمشون شباهت هایی وجود داره
حالا میتونیم بپردازیم به کاربرد createTextNode در جاوا اسکریپت:
🔸با استفاده از این متد، قادر خواهید بود تکست نود ها را ایجاد و آن ها رو درون نود های عنصری append کنید.
به عنوان مثال میتونید تکست نود عبارت Hello World رو به وسیله این متد ایجاد کنید سپس درون المنت p یا span یا هر المنت دیگه ای append کنید. در این صورت یک المنت نودی به نام p دارید که دارای تکست نودی با عبارت Hello World است.
#سوال_کاربران
#javascript
🌐 @pieceJS
ابتدا به این بپردازیم که تو جاوا اسکریپت، نود به چه معناست؟
خیلی ساده بخوام بگم اینکه به تمامی عناصر درون یک صفحه HTML نود میگیم.
🔸 نود ها میتونند عنصر، خصوصیت یا حتی تکست باشند.
▫️نکته: نود هیچ ارتباطی با رانتایم Node.js نداره و صرفاً تو اسمشون شباهت هایی وجود داره
حالا میتونیم بپردازیم به کاربرد createTextNode در جاوا اسکریپت:
🔸با استفاده از این متد، قادر خواهید بود تکست نود ها را ایجاد و آن ها رو درون نود های عنصری append کنید.
به عنوان مثال میتونید تکست نود عبارت Hello World رو به وسیله این متد ایجاد کنید سپس درون المنت p یا span یا هر المنت دیگه ای append کنید. در این صورت یک المنت نودی به نام p دارید که دارای تکست نودی با عبارت Hello World است.
#سوال_کاربران
#javascript
🌐 @pieceJS
👍12
💎 معرفی داکیومنت جدید کتابخونه React.js
یک هفته ای میشه که ریکت از نسخه جدید داکیومنت خودش به آدرس زیر رونمایی کرده.
بسیار کامل و بینظیر شده، پیشنهاد میکنم حتماً یه نگاهی بهش بندازید.
👈🏻 مشاهده داکیومنت 👉🏻
#معرفی
#javascript #reactjs
🌐 @pieceJS
یک هفته ای میشه که ریکت از نسخه جدید داکیومنت خودش به آدرس زیر رونمایی کرده.
بسیار کامل و بینظیر شده، پیشنهاد میکنم حتماً یه نگاهی بهش بندازید.
👈🏻 مشاهده داکیومنت 👉🏻
#معرفی
#javascript #reactjs
🌐 @pieceJS
👍8
💎 معرفی پکیج Error Boundaries
به طور پیشفرض، اگر اپلیکیشن شما به خطایی برخورد، ریکت به صورت خودکار، صفحه UI اپلیکیشن رو حذف و خطا رو نمایش میده یا اگر در مرحله پروداکشن قرار داشته باشید، صفحه UI رو به صورت صفحه ای سفید نمایش خواهد داد. 😳 که این موضوع باعث سردرگرمی مشتریانی خواهد شد که از اپلیکیشن شما استفاده میکنند. 🤯
برای حل آن میتونید از Error boundary استفاده کنید، ارور باندری، عملکردی شبیه به Catch رو داره با این تفاوت که این بار برای کامپوننت ها کاربرد داره. یعنی اگر لود کامپوننت شما به خطا خورد، بجای سفید شدن صفحه یا نمایش دادن خطا در صفحه، پیام یا کامپوننت پیشفرضی که شما طراحی کرده اید رو نمایش میده.
💡 خود ریکت، تو مستنداتش این کامپوننت رو معرفی کرده اما فقط به صورت کلاسی قابل استفاده است. شما میتونید از پکیج react-error-boundary استفاده کنید این پکیج به صورت تابعی قابل دسترس بوده و از قابلیت های بیشتری برخوردار است.
استفاده از این پکیج خیلی آسون هست فقط کافیه نصبش کنید، ErrorBoundary ایمپورت کنید و کامپوننتی که میخواید رو درون ErrorBoundary بپیچید (wrap کنید). ☺️
🌐 @pieceJS
به طور پیشفرض، اگر اپلیکیشن شما به خطایی برخورد، ریکت به صورت خودکار، صفحه UI اپلیکیشن رو حذف و خطا رو نمایش میده یا اگر در مرحله پروداکشن قرار داشته باشید، صفحه UI رو به صورت صفحه ای سفید نمایش خواهد داد. 😳 که این موضوع باعث سردرگرمی مشتریانی خواهد شد که از اپلیکیشن شما استفاده میکنند. 🤯
برای حل آن میتونید از Error boundary استفاده کنید، ارور باندری، عملکردی شبیه به Catch رو داره با این تفاوت که این بار برای کامپوننت ها کاربرد داره. یعنی اگر لود کامپوننت شما به خطا خورد، بجای سفید شدن صفحه یا نمایش دادن خطا در صفحه، پیام یا کامپوننت پیشفرضی که شما طراحی کرده اید رو نمایش میده.
💡 خود ریکت، تو مستنداتش این کامپوننت رو معرفی کرده اما فقط به صورت کلاسی قابل استفاده است. شما میتونید از پکیج react-error-boundary استفاده کنید این پکیج به صورت تابعی قابل دسترس بوده و از قابلیت های بیشتری برخوردار است.
استفاده از این پکیج خیلی آسون هست فقط کافیه نصبش کنید، ErrorBoundary ایمپورت کنید و کامپوننتی که میخواید رو درون ErrorBoundary بپیچید (wrap کنید). ☺️
🌐 @pieceJS
👍16
💎 آشنایی با کپچای Honeypot
این روزا که صحبت از هوش مصنوعی و ChatGPT هست احتمالاً شنیدید که حتی reCAPTCHA های گوگل هم قابل هک شدن توسط هوش مصنوعی هستند. 🧐
تو این پست میخوام یه نوع کپچایی بهتون معرفی کنم که در نوع خودش جالبه و البته هیچ وقت به پای reCAPTCHA نمیرسه اما میتونه جلوی یه سری از حملات که به صورت خودکار روی سایت ها صورت میگیره رو بگیره. 🤓
🔶این نوع کپچا، Honeypot نام داره، به این صورته که شما تو فیلد های فرم مورد نظر (مثلاً فرم لاگین یا ثبت نام) یه Input جدا (به عنوان تله) اضافه و با css یا js مخفیش می کنید اونوقت شرط میزارید که اگه این فیلد پر شده بود درخواست از طرف ربات بوده و اگر پر نشده بود از طرف یوزر صورت گرفته.
✅ یا برای اینکه امنیتش رو بالاتر ببرید میتونید اون Input رو به صورت چک باکس اضافه کنید و لیبلش رو بزارید I'm not a robot و بازم مخفیش کنید اونوقت اگه ربات باشه و این تکست رو بخونه میدونه که باید حتماً تیک بخوره در صورتی که شما در نظر گرفتید که هر کس اینو تیک زد ربات هست و ناک اوتش می کنید. (به هر حال مخفیش کرده بودید)
#کپچا #کد_امنیتی #reCAPTCHA #Honeypot
🌐 @pieceJS
این روزا که صحبت از هوش مصنوعی و ChatGPT هست احتمالاً شنیدید که حتی reCAPTCHA های گوگل هم قابل هک شدن توسط هوش مصنوعی هستند. 🧐
تو این پست میخوام یه نوع کپچایی بهتون معرفی کنم که در نوع خودش جالبه و البته هیچ وقت به پای reCAPTCHA نمیرسه اما میتونه جلوی یه سری از حملات که به صورت خودکار روی سایت ها صورت میگیره رو بگیره. 🤓
🔶این نوع کپچا، Honeypot نام داره، به این صورته که شما تو فیلد های فرم مورد نظر (مثلاً فرم لاگین یا ثبت نام) یه Input جدا (به عنوان تله) اضافه و با css یا js مخفیش می کنید اونوقت شرط میزارید که اگه این فیلد پر شده بود درخواست از طرف ربات بوده و اگر پر نشده بود از طرف یوزر صورت گرفته.
✅ یا برای اینکه امنیتش رو بالاتر ببرید میتونید اون Input رو به صورت چک باکس اضافه کنید و لیبلش رو بزارید I'm not a robot و بازم مخفیش کنید اونوقت اگه ربات باشه و این تکست رو بخونه میدونه که باید حتماً تیک بخوره در صورتی که شما در نظر گرفتید که هر کس اینو تیک زد ربات هست و ناک اوتش می کنید. (به هر حال مخفیش کرده بودید)
#کپچا #کد_امنیتی #reCAPTCHA #Honeypot
🌐 @pieceJS
👍20
💎 بدست آوردن تعداد تکرار عناصر یک آرایه
با استفاده از روش بالا میتونید به سادگی تعداد تکرار عناصر یک آرایه رو بدست آورید.
🙋🏻♂️ اعتراف می کنم چند روزی بود دنبال الگوریتمی میگشتم که برای تعداد عناصر بالای 100 هزار تا سرعت بالایی داشته باشه هم نیازی نباشه جهنمی از حلقه ها رو درست کنم و سرور رو ناک اوت کنم. 🤯
پند اخلاقی: چیز های ساده رو پیچیده نکنیم 😁
#جاوا_اسکریپت #آرایه
🌐 @pieceJS
با استفاده از روش بالا میتونید به سادگی تعداد تکرار عناصر یک آرایه رو بدست آورید.
🙋🏻♂️ اعتراف می کنم چند روزی بود دنبال الگوریتمی میگشتم که برای تعداد عناصر بالای 100 هزار تا سرعت بالایی داشته باشه هم نیازی نباشه جهنمی از حلقه ها رو درست کنم و سرور رو ناک اوت کنم. 🤯
پند اخلاقی: چیز های ساده رو پیچیده نکنیم 😁
#جاوا_اسکریپت #آرایه
🌐 @pieceJS
👍24
💎 فلت کردن عناصر یک آرایه
فرض کنید آرایه ای از آرایه ها دارید و قصد دارید تمامی آن را با هم ادغام کنید. به این فرایند فلت کردن آرایه میگیم.
🔶 برای فلت کردن آرایه بجای استفاده از حلقه های تو در تو، میتونید از متد flat استفاده کنید. (به همین سادگی)
💡 نکته: ممکنه یکی از عناصر دارای آرایه ای تو در تو باشه در این صورت میتونید تعداد لایه هایی که مایلید فلت بشود رو به عنوان آرگومان به متد flat بدید
#جاوا_اسکریپت #آرایه
🌐 @pieceJS
فرض کنید آرایه ای از آرایه ها دارید و قصد دارید تمامی آن را با هم ادغام کنید. به این فرایند فلت کردن آرایه میگیم.
🔶 برای فلت کردن آرایه بجای استفاده از حلقه های تو در تو، میتونید از متد flat استفاده کنید. (به همین سادگی)
💡 نکته: ممکنه یکی از عناصر دارای آرایه ای تو در تو باشه در این صورت میتونید تعداد لایه هایی که مایلید فلت بشود رو به عنوان آرگومان به متد flat بدید
#جاوا_اسکریپت #آرایه
🌐 @pieceJS
👍17
💎 بدست آوردن آخرین عنصر آرایه
برای بدست آوردن آخرین عنصر آرایه، عموما از تکه کد زیر استفاده میشه
arr[arr.length - 1]
💡راه حل: شما میتونید برای بدست آوردن آخرین عنصر آرایه از متر at استفاده کنید و بهش آرگومان -1 بدید یعنی:
arr.at(-1)
💭 نکته: اگه بجای -1 از -2 استفاده کنید عنصر یکی مونده به آخر ارایه رو برمیگردونه و به همین ترتیب میتونید -3 یا -4 و ... بنویسید
#جاوا_اسکریپت #آرایه
🌐 @pieceJS
برای بدست آوردن آخرین عنصر آرایه، عموما از تکه کد زیر استفاده میشه
arr[arr.length - 1]
💡راه حل: شما میتونید برای بدست آوردن آخرین عنصر آرایه از متر at استفاده کنید و بهش آرگومان -1 بدید یعنی:
arr.at(-1)
💭 نکته: اگه بجای -1 از -2 استفاده کنید عنصر یکی مونده به آخر ارایه رو برمیگردونه و به همین ترتیب میتونید -3 یا -4 و ... بنویسید
#جاوا_اسکریپت #آرایه
🌐 @pieceJS
👍17
💎 بازکردن سریع ریپازیتوری گیت هاب در VSCode
💡 برای باز کردن ریپازیتوری های گیت هاب درون VSCode کافیه قبل از آدرس اون ریپازیتوری بنویسید vscode.dev/ . اونوقت اون ریپازیتوری درون ویرایشگر آنلاین vscode براتون لود میشه. به همین سادگی. 😍
مثال:
https://github.com/reactchartjs/react-chartjs-2
رو به صورت زیر بنویسید
https://vscode.dev/github.com/reactchartjs/react-chartjs-2
#گیت_هاب #vscode
🌐 @pieceJS
💡 برای باز کردن ریپازیتوری های گیت هاب درون VSCode کافیه قبل از آدرس اون ریپازیتوری بنویسید vscode.dev/ . اونوقت اون ریپازیتوری درون ویرایشگر آنلاین vscode براتون لود میشه. به همین سادگی. 😍
مثال:
https://github.com/reactchartjs/react-chartjs-2
رو به صورت زیر بنویسید
https://vscode.dev/github.com/reactchartjs/react-chartjs-2
#گیت_هاب #vscode
🌐 @pieceJS
👍7
💎 نه به استفاده بیش از حد از Lazy Loading
همیشه استفاده از دیزاین پترن لیزی لودینگ به سود پروژه نخواهد بود.
🔶 مثلاً اگر سئوی پروژه براتون خیلی مهمه استفاده نادرست از این دیزاین پترن میتونه تاثیر منفی روی عملکرد موتور های جستجو درون سایت شما داشته باشد.
در واقع اینکه بدونید کی از این الگو استفاده کنید و کی استفاده نکنید یجور مهارت 💪🏻 محسوب میشه.
💭 در مقاله زیر تلاش کرده ام به طور جامع دیزاین پترن Lazy Loading را بررسی کنم.
از دوستان و اساتید بزرگوارم، اگر نکته ای در خصوص این الگو یا مقاله دارند به اشتراک بگذارند تا مقاله را بروزرسانی کنم. 🙏🏻
— مطالعه کامل مقاله
🌐 @pieceJS
همیشه استفاده از دیزاین پترن لیزی لودینگ به سود پروژه نخواهد بود.
🔶 مثلاً اگر سئوی پروژه براتون خیلی مهمه استفاده نادرست از این دیزاین پترن میتونه تاثیر منفی روی عملکرد موتور های جستجو درون سایت شما داشته باشد.
در واقع اینکه بدونید کی از این الگو استفاده کنید و کی استفاده نکنید یجور مهارت 💪🏻 محسوب میشه.
💭 در مقاله زیر تلاش کرده ام به طور جامع دیزاین پترن Lazy Loading را بررسی کنم.
از دوستان و اساتید بزرگوارم، اگر نکته ای در خصوص این الگو یا مقاله دارند به اشتراک بگذارند تا مقاله را بروزرسانی کنم. 🙏🏻
— مطالعه کامل مقاله
🌐 @pieceJS
👍13
💎 ابزار آنلاین Theme Generator برای Material UI
💬 اگر از Material UI جهت ایجاد پوسته پروژه تون استفاده می کنید قطعاً میدونید که این کتابخونه یه ویژگی فوق العاده ای که داره اینه که میتونید برای هر پروژه تون یه تم سفارشی طراحی کنید و اون تم رو روی پروژهتون اعمال کنید و خیلی ویژگی های عالی دیگه که باید که خاک دارک مود کردن پروژه با استفاده از جاوا اسکریپت رو خورده باشید تا کاملاً متوجه بشید 😁
✅ معرفی: برای ایجاد تم سفارشی میتونید از ابزار زیر استفاده کنید
https://bareynol.github.io/mui-theme-creator/
#معرفی #مثبت_برنامه_نویس #متریال_یو_آی #materialui
🌐 @pieceJS
💬 اگر از Material UI جهت ایجاد پوسته پروژه تون استفاده می کنید قطعاً میدونید که این کتابخونه یه ویژگی فوق العاده ای که داره اینه که میتونید برای هر پروژه تون یه تم سفارشی طراحی کنید و اون تم رو روی پروژهتون اعمال کنید و خیلی ویژگی های عالی دیگه که باید که خاک دارک مود کردن پروژه با استفاده از جاوا اسکریپت رو خورده باشید تا کاملاً متوجه بشید 😁
✅ معرفی: برای ایجاد تم سفارشی میتونید از ابزار زیر استفاده کنید
https://bareynol.github.io/mui-theme-creator/
#معرفی #مثبت_برنامه_نویس #متریال_یو_آی #materialui
🌐 @pieceJS
👍8
خروجی کد زیر چیه؟ 😁
var i = 0; for (i = 0; i < 10; i++) { continue; } console.log(i);
var i = 0; for (i = 0; i < 10; i++) { continue; } console.log(i);
Anonymous Quiz
9%
1
31%
0
37%
10
23%
9
👍10👎3
💎 مقایسه برابری دو متغیر زمانی
💬 برای مقایسه دو متغیر زمانی (با تایپ آبجکت)، هیچوقت از عملگر == یا === استفاده کنید چون این دو عملگر تنها میتونند رفرنس متغیر های آبجکتی رو درون حافظه، با هم مقایسه میکنند و از آن جا که متغیر های زمانی از نوع آبجکت هستند و دو متغیر متفاوت، دارای دو رفرنس یا آدرس حافظه متفاوت است پس همیشه پاسخ مقایسه شما false خواهد بود (مگر اینکه متغیر اول درون متغیر دوم ریخته باشید یا اصطلاحاً Shallow Copy کرده باشید).
💡 به همین جهت برای مقایسه دو متغیر زمانی همیشه از متد های valueOf و یا getTime استفاده کنید این دو متد، متغیر زمانی مورد نظر را به میلی ثانیه و از نوع عدد تبدیل میکند آنگاست که مقایسه کاملاً صحیح صورت میگیره.
#زمان
🌐 @pieceJS
💬 برای مقایسه دو متغیر زمانی (با تایپ آبجکت)، هیچوقت از عملگر == یا === استفاده کنید چون این دو عملگر تنها میتونند رفرنس متغیر های آبجکتی رو درون حافظه، با هم مقایسه میکنند و از آن جا که متغیر های زمانی از نوع آبجکت هستند و دو متغیر متفاوت، دارای دو رفرنس یا آدرس حافظه متفاوت است پس همیشه پاسخ مقایسه شما false خواهد بود (مگر اینکه متغیر اول درون متغیر دوم ریخته باشید یا اصطلاحاً Shallow Copy کرده باشید).
💡 به همین جهت برای مقایسه دو متغیر زمانی همیشه از متد های valueOf و یا getTime استفاده کنید این دو متد، متغیر زمانی مورد نظر را به میلی ثانیه و از نوع عدد تبدیل میکند آنگاست که مقایسه کاملاً صحیح صورت میگیره.
#زمان
🌐 @pieceJS
👍10
💎 استفاده از توکن های % در کنسول دات لاگ
💬 شما میتونید کاملآً مانند زبان سی از توکن های درصدی برای فرمت بندی رشته در دستور console.log استفاده کنید.
✅ نکته: درصد c به نظرم توکن جذابیه که با استفاده از اون میتونید برای لاگ مورد نظر استایل css بنویسید 😃👌🏻
🌐 @pieceJS
💬 شما میتونید کاملآً مانند زبان سی از توکن های درصدی برای فرمت بندی رشته در دستور console.log استفاده کنید.
✅ نکته: درصد c به نظرم توکن جذابیه که با استفاده از اون میتونید برای لاگ مورد نظر استایل css بنویسید 😃👌🏻
🌐 @pieceJS
👍11
Forwarded from تیکه پاره های جاوا
سلام رفقا
یه مدت نبودیم ولی با یه خبر خیلی خوب برگشتیم!
🟡 برا بچه هایی که کتاب های زبان مرجع و به زبان اصلی مطالعه میکنید، مطمئنم شده که بخواید کتابش رو خریداری کنید اما خب... کتاب اصلی به ارز خودمون خیلی گرون میوفته
خواستم بگم الان یه موقعیتی فراهم شده که میتونیم PDF هاتون رو به کتاب تبدیل کنیم :)
🌱 مورد اول اینکه محدودیت کتاب نداریم
🌱 مورد دوم از لحاظ قیمت خیلی خیلی بصرفه تر از بازار در نظر گرفتیم :)
⭕️ فرصت ثبت سفارش تا 1 مهر
با توجه به اینکه حجم کتاب ها متفاوت هستش، جهت اطلاع از قیمت اسم کتاب رو برام ارسال کنید:
🆔@MRVJ475
یه مدت نبودیم ولی با یه خبر خیلی خوب برگشتیم!
🟡 برا بچه هایی که کتاب های زبان مرجع و به زبان اصلی مطالعه میکنید، مطمئنم شده که بخواید کتابش رو خریداری کنید اما خب... کتاب اصلی به ارز خودمون خیلی گرون میوفته
خواستم بگم الان یه موقعیتی فراهم شده که میتونیم PDF هاتون رو به کتاب تبدیل کنیم :)
🌱 مورد اول اینکه محدودیت کتاب نداریم
🌱 مورد دوم از لحاظ قیمت خیلی خیلی بصرفه تر از بازار در نظر گرفتیم :)
⭕️ فرصت ثبت سفارش تا 1 مهر
با توجه به اینکه حجم کتاب ها متفاوت هستش، جهت اطلاع از قیمت اسم کتاب رو برام ارسال کنید:
🆔@MRVJ475
👍6
💎 فعال کردن تب Commit درون نرم افزار های JetBrains
برای فعال کردن تب Commit در نرم افزار های شرکت جت برینز، میتونید از طریق آدرس زیر اقدام کنید:
File > Settings > Version Control > Commit
و گزینه ی Use non-modal commit interface را فعال کنید.
پ.ن: دو روز بود تبش حذف شده بود اعتراف میکنم که الان درک میکنم این فیچر چقدر تو وقتم صرفه جویی میکنه 🥲
#مثبت_برنامه_نویس
🌐 @pieceJS
برای فعال کردن تب Commit در نرم افزار های شرکت جت برینز، میتونید از طریق آدرس زیر اقدام کنید:
File > Settings > Version Control > Commit
و گزینه ی Use non-modal commit interface را فعال کنید.
پ.ن: دو روز بود تبش حذف شده بود اعتراف میکنم که الان درک میکنم این فیچر چقدر تو وقتم صرفه جویی میکنه 🥲
#مثبت_برنامه_نویس
🌐 @pieceJS
👍7
💎 دو نکته کلیدی در مورد Root Layout ها در NextJs
☝️جهت تعریف Root Layout مجزا برای هر دسته بندی یا URL باید روت لایوت صفحه اصلی پروژه را حذف کنید و در هر صفحه یا دسته بندی یک روت لایوت مجزا تعریف کنید.
✌️ نکته مهم اینکه در صورتی که برای هر صفحه یک روت لایوت تعریف کردید، پیمایش بین صفحه ها با Full reload همراه خواهد بود.
#نکست_جی_اس
🌐 @pieceJS
☝️جهت تعریف Root Layout مجزا برای هر دسته بندی یا URL باید روت لایوت صفحه اصلی پروژه را حذف کنید و در هر صفحه یا دسته بندی یک روت لایوت مجزا تعریف کنید.
✌️ نکته مهم اینکه در صورتی که برای هر صفحه یک روت لایوت تعریف کردید، پیمایش بین صفحه ها با Full reload همراه خواهد بود.
#نکست_جی_اس
🌐 @pieceJS
👍6
💎 زکات دانش نشر آن است (امام علی ع)
از تمامی اعضای کانال که قطعاً دانشی فراتر از بنده دارند دعوت میکنم اگر به نکته مهمی در هر قسمت از برنامه نویسی جاوااسکریپت و فریم ورک های آن بخوردند یا اینکه چالشی داشتند که اکنون به پاسخ رسیده اند در کامنت های این پست به اشتراک بگذارند تا سایر دوستان هم از آن بهره مند بشوند.
راستی نکات برگزیده یا خیلی کاربری و مهم رو داخل کانال پست میکنم و در صورتی که احتیاج به تحقیق بیشتر باشه حتماً این حقیر انجام وظیفه میکنم.
🌐 @pieceJS
از تمامی اعضای کانال که قطعاً دانشی فراتر از بنده دارند دعوت میکنم اگر به نکته مهمی در هر قسمت از برنامه نویسی جاوااسکریپت و فریم ورک های آن بخوردند یا اینکه چالشی داشتند که اکنون به پاسخ رسیده اند در کامنت های این پست به اشتراک بگذارند تا سایر دوستان هم از آن بهره مند بشوند.
راستی نکات برگزیده یا خیلی کاربری و مهم رو داخل کانال پست میکنم و در صورتی که احتیاج به تحقیق بیشتر باشه حتماً این حقیر انجام وظیفه میکنم.
🌐 @pieceJS
👍19👎1