در مطالب قبلی با مفهوم Property Descriptor آشنا شدیم و فهمیدیم که مجموعهای از ویژگیهای یک پراپرتی هستند که رفتار آن پراپرتی را تعیین میکنند.
در این مطلب یکی از این ویژگیها به نام writable را بررسی میکنیم.
اگر مقدار ویژگی writable برای یک پراپرتی false باشد، مقدار آن پراپرتی غیر قابل تغییر خواهد بود. یعنی اگر در حالت strict-mode سعی کنیم مقدار پراپرتی را تغییر دهیم با خطا مواجه میشویم. در حالت معمولی هم مقدار پراپرتی تغییر نخواهد کرد اما خطایی هم دریافت نمیکنیم.
به این ترتیب میتوانیم پراپرتیهایی با مقادیر constant بسازیم (به کد داخل تصویر دقت کنید).
#quicktip #js
@ProGraphs
  
  
  
  
  
  در این مطلب یکی از این ویژگیها به نام writable را بررسی میکنیم.
اگر مقدار ویژگی writable برای یک پراپرتی false باشد، مقدار آن پراپرتی غیر قابل تغییر خواهد بود. یعنی اگر در حالت strict-mode سعی کنیم مقدار پراپرتی را تغییر دهیم با خطا مواجه میشویم. در حالت معمولی هم مقدار پراپرتی تغییر نخواهد کرد اما خطایی هم دریافت نمیکنیم.
به این ترتیب میتوانیم پراپرتیهایی با مقادیر constant بسازیم (به کد داخل تصویر دقت کنید).
#quicktip #js
@ProGraphs
آیا شما function expressionها را نام گذاری میکنید؟
این کار چه فایدهای میتواند داشته باشد؟
#interviewquestion #js
@ProGraphs
  این کار چه فایدهای میتواند داشته باشد؟
#interviewquestion #js
@ProGraphs
🔺 ایمیل  موقت ده دقیقهای ⏳🔟
🔸 به درد سایتهایی میخوره که شاید فقط یه بار بخواین ازشون استفاده کنین ولی مجبورین توشون ثبتنام کنین.
https://10minutemail.com/
#link #email
@ProGraphs
  🔸 به درد سایتهایی میخوره که شاید فقط یه بار بخواین ازشون استفاده کنین ولی مجبورین توشون ثبتنام کنین.
https://10minutemail.com/
#link #email
@ProGraphs
🔺کد زدن با JS را در اپلیکیشن زیر، رایگان یاد بگیرید.👨🏻💻👩🏻💻
https://grasshopper.codes/
#link #app #application #learn #js
@ProGraphs
  https://grasshopper.codes/
#link #app #application #learn #js
@ProGraphs
  ProGraphs
آیا شما function expressionها را نام گذاری میکنید؟ این کار چه فایدهای میتواند داشته باشد؟  #interviewquestion #js  @ProGraphs
جواب:
نام گذاری function expressionها 2 فایده مهم میتواند داشته باشد:
1- زمانی که برای یک FE نام انتخاب میکنیم، این نام داخل خود تابع قابل استفاده است (و به صورت گلوبال تعریف نمیشود).
به این ترتیب داخل تابع میتوانیم به خود آن دسترسی داشته باشیم و این موضوع میتواند برای recursion و ... مفید باشد.
2- زمانی که یک کد را در حالت debug در مرورگر اجرا میکنیم، نام تابع در حال اجرا در قسمت call stack قابل مشاهده است. اما برای توابع بدون نام، نام تابع به عنوان anonymous نوشته میشود. و این موضوع میتواند دیباگ کردن کدهای پیچیده را سختتر کند.
  نام گذاری function expressionها 2 فایده مهم میتواند داشته باشد:
1- زمانی که برای یک FE نام انتخاب میکنیم، این نام داخل خود تابع قابل استفاده است (و به صورت گلوبال تعریف نمیشود).
به این ترتیب داخل تابع میتوانیم به خود آن دسترسی داشته باشیم و این موضوع میتواند برای recursion و ... مفید باشد.
2- زمانی که یک کد را در حالت debug در مرورگر اجرا میکنیم، نام تابع در حال اجرا در قسمت call stack قابل مشاهده است. اما برای توابع بدون نام، نام تابع به عنوان anonymous نوشته میشود. و این موضوع میتواند دیباگ کردن کدهای پیچیده را سختتر کند.
  ProGraphs
جواب:  نام گذاری function expressionها 2 فایده مهم میتواند داشته باشد:  1- زمانی که برای یک FE نام انتخاب میکنیم، این نام داخل خود تابع قابل استفاده است (و به صورت گلوبال تعریف نمیشود). به این ترتیب داخل تابع میتوانیم به خود آن دسترسی داشته باشیم و این…
  
تابع با نام و بدون نام در حالت debug
  🔺با لینک زیر به راحتی موکاپ موبایل بسازید. 📱
https://www.kapwing.com/mobile-mockup
#link #mockup
@ProGraphs
  https://www.kapwing.com/mobile-mockup
#link #mockup
@ProGraphs
This media is not supported in your browser
    VIEW IN TELEGRAM
  با استفاده از live expression ها در گوگل کروم،میتوانیم مقدار هر expression جاوااسکریپت و تغییرات آن را ببینیم!
#quicktip #devtools #js
@ProGraphs
  #quicktip #devtools #js
@ProGraphs
🔺یه چک لیست خوب برای Front-end ✨
👈 مناسب Front-End developerهای دقیق و وب سایتهای مدرن
https://frontendchecklist.io/
#link #frontend #checklist
@ProGraphs
  
  👈 مناسب Front-End developerهای دقیق و وب سایتهای مدرن
https://frontendchecklist.io/
#link #frontend #checklist
@ProGraphs
Front-End Checklist
  
  ✨ Your best Front-End Tool ✨
  🗂 The Front-End Checklist Application is perfect for modern websites and meticulous developers! Follow the rules and deliver the best of your work in a generated report!
  
  ProGraphs
با اجرای این کد چه مقداری در کنسول چاپ میشود؟  #interviewquestion #js  @ProGraphs
جواب: true
میدانیم که در جاوااسکریپت نمیتوانیم برای نام متغیرها از reserved wordها مانند class, null, ... استفاده کنیم.
اما متاسفانه undefined یک کلمهی رزرو شده نیست و فقط یک پراپرتی read-only در آبجکت global/window است. بنابراین در هر scope به جز scope گلوبال میتوانیم یک متغیر به نام undefined با مقدار دلخواه تعریف کنیم!
در این کد داخل تابع دو متغیر به نامهای undefined و proGraphs با مقدار یکسان تعریف میکنیم و به این ترتیب نتیجهی شرط true میشود.
دقت کنید که اگر کد را داخل یک تابع نمینوشتیم، با error مواجه میشدیم چرا که پراپرتی undefined در scope گلوبال غیر قابل تغییر است.
  میدانیم که در جاوااسکریپت نمیتوانیم برای نام متغیرها از reserved wordها مانند class, null, ... استفاده کنیم.
اما متاسفانه undefined یک کلمهی رزرو شده نیست و فقط یک پراپرتی read-only در آبجکت global/window است. بنابراین در هر scope به جز scope گلوبال میتوانیم یک متغیر به نام undefined با مقدار دلخواه تعریف کنیم!
در این کد داخل تابع دو متغیر به نامهای undefined و proGraphs با مقدار یکسان تعریف میکنیم و به این ترتیب نتیجهی شرط true میشود.
دقت کنید که اگر کد را داخل یک تابع نمینوشتیم، با error مواجه میشدیم چرا که پراپرتی undefined در scope گلوبال غیر قابل تغییر است.
🔺یه منبع خوب برای الهام گرفتن در طراحی وب به همراه قطعه کد هر اِلِمان  
https://codemyui.com/
#link #ui #design #inspiration #codesnippet
@ProGraphs
  https://codemyui.com/
#link #ui #design #inspiration #codesnippet
@ProGraphs
🔺با این سایت پالت رنگی مورد نظرتون رو راحتتر انتخاب کنید.👌🏻
https://culrs.com/
#link #color #palette
@ProGraphs
  https://culrs.com/
#link #color #palette
@ProGraphs
در ادامهی مطالب Property Descriptor، ویژگی enumerable را بررسی میکنیم:
همانطور که از نام این ویژگی پیداست، با استفاده از این ویژگی میتوانیم کنترل کنیم که یک پراپرتی در loopهایی که پراپرتیهای یک آبجکت را پیمایش میکنند (مانند for..in) ظاهر شود یا نه.
همچنین متد JSON.stringify، فقط پراپرتیهای enumerable را به JSON تبدیل میکند و بقیه را نادیده میگیرد (به کد داخل تصویر دقت کنید).
#quicktip #js
@ProGraphs
  
  
  
  
  
  همانطور که از نام این ویژگی پیداست، با استفاده از این ویژگی میتوانیم کنترل کنیم که یک پراپرتی در loopهایی که پراپرتیهای یک آبجکت را پیمایش میکنند (مانند for..in) ظاهر شود یا نه.
همچنین متد JSON.stringify، فقط پراپرتیهای enumerable را به JSON تبدیل میکند و بقیه را نادیده میگیرد (به کد داخل تصویر دقت کنید).
#quicktip #js
@ProGraphs
وب اسمبلی و تاثیر آن بر آیندهی front-end development
https://zendev.com/2018/06/26/webassembly-accelerating-future-web-development.html
#quicktip #wasm
@ProGraphs
  
  https://zendev.com/2018/06/26/webassembly-accelerating-future-web-development.html
#quicktip #wasm
@ProGraphs
ZenDev, LLC
  
  How WebAssembly is Accelerating the Future of Web Development
  “Is WebAssembly going to kill JavaScript?” This question has been on the lips of many a developer ever since WebAssembly (WASM) began to look like it might actually become a reality. While many have speculated that WebAssembly will mean the end of JavaScript…
  🔺 یه سایت خوب دیگه برای درست کردن موکاپ  ✨🎉
https://magicmockups.com/
#link #mockup #generator
@ProGraphs
  https://magicmockups.com/
#link #mockup #generator
@ProGraphs
  ProGraphs
تفاوت این دو روش برای پیمایش پراپرتیهای یک آبجکت در چیست؟  #interviewquestion #js  @ProGraphs
جواب:
متد Object.keys فقط پراپرتیهایی از آبجکت را برمیگرداند که ویژگی enumerable آنها true باشد (به مطالبی که راجع به Property Descriptor منتشر کردیم مراجعه کنید)
اما متد Object.getOwnPropertyNames تمام پراپرتیهای یک آبجکت را بدون توجه به enumerable بودن آنها برمیگرداند.
در بیشتر موارد از روش اول یعنی Object.keys استفاده میشود و روش دوم فقط در شرایط خاص کاربرد دارد. چرا که وقتی یک پراپرتی را به صورت non-enumerable تعریف میکنیم. طبیعتا نمیخواهیم در حلقهها ظاهر شود!
  متد Object.keys فقط پراپرتیهایی از آبجکت را برمیگرداند که ویژگی enumerable آنها true باشد (به مطالبی که راجع به Property Descriptor منتشر کردیم مراجعه کنید)
اما متد Object.getOwnPropertyNames تمام پراپرتیهای یک آبجکت را بدون توجه به enumerable بودن آنها برمیگرداند.
در بیشتر موارد از روش اول یعنی Object.keys استفاده میشود و روش دوم فقط در شرایط خاص کاربرد دارد. چرا که وقتی یک پراپرتی را به صورت non-enumerable تعریف میکنیم. طبیعتا نمیخواهیم در حلقهها ظاهر شود!
🔺ابزاری برای ساخت عکس از source code خود در قالبی زیبا ✨
https://carbon.now.sh/
#link #sourcecode
@ProGraphs
  https://carbon.now.sh/
#link #sourcecode
@ProGraphs