Dead Zone in JavaScript
در جاوا اسکریپت، Dead Zone به مرحله ای در طول اجرای کد شما اشاره دارد که در آن متغیری وجود دارد اما قابل دسترسی نیست.
که به دلیل hoisting متغیر رخ می دهد، مکانیزمی که در آن اعلان های متغیر به بالای محدوده خود منتقل می شوند، در حالی که تخصیص آنها در جای خود باقی می ماند.
متغیر var در طول مرحله بالا بردن با undefined مقداردهی اولیه می شود.
چگونه مناطق مرده را مدیریت کنیم:
[1] اعلام متغیرها قبل از استفاده
[2] متغیرهای اعلام شده با let و const فقط در بلوکی که در آن تعریف شده اند قابل دسترسی هستند.
[3] در حالی که var معمولاً به مناطق مرده منتهی نمی شود تا آنجا که میشود از let و const استفاده کنید.
[4] از Linters کدنویسی استفاده کنید
🔗https://www.freecodecamp.org/news/what-is-dead-zone-in-javascript/#what-is-a-dead-zone
#️⃣#tip
🆔@IR_javascript
در جاوا اسکریپت، Dead Zone به مرحله ای در طول اجرای کد شما اشاره دارد که در آن متغیری وجود دارد اما قابل دسترسی نیست.
که به دلیل hoisting متغیر رخ می دهد، مکانیزمی که در آن اعلان های متغیر به بالای محدوده خود منتقل می شوند، در حالی که تخصیص آنها در جای خود باقی می ماند.
console.log(myVar); // Output: ReferenceError: Cannot access 'myVar' before initialization
let myVar = 42;
متغیر var در طول مرحله بالا بردن با undefined مقداردهی اولیه می شود.
console.log(myVar); // Output: undefined
var myVar = 42;
چگونه مناطق مرده را مدیریت کنیم:
[1] اعلام متغیرها قبل از استفاده
[2] متغیرهای اعلام شده با let و const فقط در بلوکی که در آن تعریف شده اند قابل دسترسی هستند.
[3] در حالی که var معمولاً به مناطق مرده منتهی نمی شود تا آنجا که میشود از let و const استفاده کنید.
[4] از Linters کدنویسی استفاده کنید
🔗https://www.freecodecamp.org/news/what-is-dead-zone-in-javascript/#what-is-a-dead-zone
#️⃣#tip
🆔@IR_javascript
👍1
تگ <optgroup> در HTML در داخل تگ <select> برای گروه بندی آیتم های لیست انتخاب شده استفاده می شود. این به شما امکان می دهد برای راحتی کاربر زیر گروه ها یا دسته ها ایجاد کنید. در یک تگ <optgroup>، می توانید یک یا چند تگ <option> را قرار دهید که نشان دهنده موارد انتخابی فردی است.
#️⃣#tip #html
🆔@IR_javascript
<select>
<optgroup label="Fruits">
<option value="apple">Apple</option>
<option value="banana">Banana</option>
</optgroup>
<optgroup label="Vegetales">
<option value="carrot">Carrot</option>
<option value="potato" disabled>Potato</option>
</optgroup>
</select>
#️⃣#tip #html
🆔@IR_javascript
This media is not supported in your browser
VIEW IN TELEGRAM
Isotope
ایزوتوپ یک کتابخانه جاوا اسکریپت است که به شما امکان فیلتر و مرتب کردن عناصر DOM در یک صفحه را می دهد. می توان از آن با هر کتابخانه یا فریم ورک جاوا اسکریپت استفاده کرد.
🔗 https://github.com/metafizzy/isotope
#️⃣#npm_module
🆔@IR_javascript
ایزوتوپ یک کتابخانه جاوا اسکریپت است که به شما امکان فیلتر و مرتب کردن عناصر DOM در یک صفحه را می دهد. می توان از آن با هر کتابخانه یا فریم ورک جاوا اسکریپت استفاده کرد.
🔗 https://github.com/metafizzy/isotope
#️⃣#npm_module
🆔@IR_javascript
Screen Wake Lock API برای جلوگیری از خاموش شدن صفحه نمایش دستگاه
وقتی ویدیویی را در یوتیوب تماشا می کنید، حتی پس از مدت طولانی عدم فعالیت، صفحه نمایش خاموش نمی شود. این به لطف Screen Wake Lock API امکان پذیر است
🔗https://developer.mozilla.org/en-US/docs/Web/API/WakeLock
#️⃣#tip
🆔@IR_javascript
وقتی ویدیویی را در یوتیوب تماشا می کنید، حتی پس از مدت طولانی عدم فعالیت، صفحه نمایش خاموش نمی شود. این به لطف Screen Wake Lock API امکان پذیر است
🔗https://developer.mozilla.org/en-US/docs/Web/API/WakeLock
#️⃣#tip
🆔@IR_javascript
👍1🔥1
UAParser.js - کتابخانه جاوا اسکریپت رایگان و منبع باز برای شناسایی مرورگر، موتور، سیستم عامل، CPU و نوع/مدل دستگاه کاربر. در مرورگر (سمت کلاینت) یا node.js (سمت سرور) اجرا می شود.
🔗 https://uaparser.js.org/
#️⃣#npm_module
🆔@IR_javascript
🔗 https://uaparser.js.org/
#️⃣#npm_module
🆔@IR_javascript
👍1
👍2
بهبود خوانایی کد
Indent Rainbow یک پلاگین VSCode است که علامت های رنگی را به هر سطح تورفتگی در کد شما اضافه می کند و خوانایی را بهبود می بخشد. به لطف این افزونه، می توانید به راحتی تودرتویي موجود در بلوک های کد را ردیابی کنید و روند توسعه را راحت تر و کارآمدتر کنید.
#️⃣#tool
🆔@IR_javascript
Indent Rainbow یک پلاگین VSCode است که علامت های رنگی را به هر سطح تورفتگی در کد شما اضافه می کند و خوانایی را بهبود می بخشد. به لطف این افزونه، می توانید به راحتی تودرتویي موجود در بلوک های کد را ردیابی کنید و روند توسعه را راحت تر و کارآمدتر کنید.
#️⃣#tool
🆔@IR_javascript
❤1
متد toSorted() مانند متد sort() است، اما بر خلاف آن، آرایه اصلی را تغییر نمی دهد، اما یک آرایه مرتب شده جدید را برمی گرداند. تمام عناصر تعریف نشده در انتهای آرایه مرتب شده اند. بیایید آرایه را با اعداد مرتب کنیم:
آرایه برگردانده شده یک کپی کم عمق است اگر به عنوان مثال المان هاي آن آرايه آبجكت باشد اگر آن آبجكت تغییر كند، تغییرات در آرایه اصلی و آرايه ايجاد شده با متد toSorted() اعمال ميشود.
#️⃣#tip
🆔@IR_javascript
const numbers = [43, 6, 35, 1, 9, 7, 5, 75, 16];
const sortedNumbers = numbers.toSorted((a, b) => a - b);
console.log(numbers);
// [43, 6, 35, 1, 9, 7, 5, 75, 16];
console.log(sortedNumbers);
// [1, 5, 6, 7, 9, 16, 35, 43, 75]
آرایه برگردانده شده یک کپی کم عمق است اگر به عنوان مثال المان هاي آن آرايه آبجكت باشد اگر آن آبجكت تغییر كند، تغییرات در آرایه اصلی و آرايه ايجاد شده با متد toSorted() اعمال ميشود.
const obj = {name: 'Scarlett'};
const names = [
obj,
'Albert',
undefined,
'',
];
const sortedNames = names.toSorted();
console.log(sortedNames);
// ['', 'Albert', { name: 'Scarlett' }, undefined]
obj.name = 'Dan';
console.log(sortedNames)
// ['', 'Albert', { name: 'Dan' }, undefined]
#️⃣#tip
🆔@IR_javascript
❤2👍1
از حدس زدن ارتفاع خط به طوری که متن دقیقاً به اندازه یک حرف Capital شود خسته شده اید؟ خسته نباشید!
🔗https://caniuse.com/?search=cap%20unit
#️⃣#tip #css
🆔@IR_javascript
line-height: 1cap;
🔗https://caniuse.com/?search=cap%20unit
#️⃣#tip #css
🆔@IR_javascript
در این سایت فونت برای هر سلیقه و سبکی پیدا خواهید کرد. و 17 هزار صفحه نشان دهنده اندازه چشمگیر این مجموعه است.
🔗https://fonts.do/
#️⃣#tool
🆔@IR_javascript
🔗https://fonts.do/
#️⃣#tool
🆔@IR_javascript
Cally: Small, Feature-Rich Calendar Components
تقویمی کوچک و کم حجم اما پر امکانات که از جمله ویژگی های آن
اندازهی کوچک بسته- کمتر از 9 کیلوبایت در حالت فشرده/فشرده شده با gzip
مجموعه امکانات کامل - تاریخهای تکی، دامنهای، نمایش چند ماه
وابستگیهای کم - تنها یکی
قابل دسترسی - کیبورد و صفحه خوان
قابلیت تغییرزبان - Intl.DateTimeFormat ، خواص CSS ، پشتیبانی از RTL
قابل تغییر قالب - اجزاء CSS و ویژگیهای سفارشی
🔗 https://wicky.nillia.ms/cally/
#️⃣#npm_module
🆔@IR_javascript
تقویمی کوچک و کم حجم اما پر امکانات که از جمله ویژگی های آن
اندازهی کوچک بسته- کمتر از 9 کیلوبایت در حالت فشرده/فشرده شده با gzip
مجموعه امکانات کامل - تاریخهای تکی، دامنهای، نمایش چند ماه
وابستگیهای کم - تنها یکی
قابل دسترسی - کیبورد و صفحه خوان
قابلیت تغییرزبان - Intl.DateTimeFormat ، خواص CSS ، پشتیبانی از RTL
قابل تغییر قالب - اجزاء CSS و ویژگیهای سفارشی
<calendar-range
value="2024-01-10/2024-01-20"
min="2024-01-01"
max="2024-12-31"
locale="fa-IR"
months="2"
first-day-of-week=-1
dir="rtl"
>
<calendar-month></calendar-month>
<calendar-month offset="1"></calendar-month>
</calendar-range>
🔗 https://wicky.nillia.ms/cally/
#️⃣#npm_module
🆔@IR_javascript
👍2❤1👎1