ProGraphs
818 subscribers
216 photos
6 videos
11 files
377 links
مجموعه مطالبی از برنامه‌نویسی وب و گرافیک

ProGraphs = Programming + Graphics
Download Telegram
🔺Wunderlist | To-do list, Reminders, Errands 🎊

https://www.wunderlist.com/

#link #todolist #reminder #errand

@ProGraphs
​​مکانیزم this در جاوااسکریپت: (قانون چهارم و آخر)

زمانی که یک تابع را با کلمه کلیدی new صدا می‌کنیم،‌ این تابع، یک آبجکت جدید می‌سازد و آبحکت جدید را به عنوان مقدار this تعیین می‌کند (constructor call دو کار دیگر هم انجام می‌دهد. برای مطالعه‌ی بیشتر به مطالبی که راجع به prototype منتشر کردیم رجوع کنید).

دقت کنید که در جاوااسکریپت، مانند زبان‌های oop دیگر، تابع constructor نداریم و تقریبا همه‌ی توابع می‌توانند با new صدا شوند.

نحوه‌ی کارکرد this تنها با همین چهار قانون ساده قابل درک است.
همچنین اولویت این چهار قانون برعکس ترتیبی است که ما در کانال بررسی کردیم!
یعنی اگر قوانین دوم و سوم را هم‌زمان در یک call-site ببینیم، قانون سوم اعمال می‌شود.

#quicktip #js

@ProGraphs
ProGraphs
​​مکانیزم this در جاوااسکریپت: (قانون چهارم و آخر) زمانی که یک تابع را با کلمه کلیدی new صدا می‌کنیم،‌ این تابع، یک آبجکت جدید می‌سازد و آبحکت جدید را به عنوان مقدار this تعیین می‌کند (constructor call دو کار دیگر هم انجام می‌دهد. برای مطالعه‌ی بیشتر به مطالبی…
این آخرین نکته از سری نکته‌های قوانین مکانیزم this در جاوااسکریپت بود و با مطالعه‌ی این نکته‌ها باید بتونیم this رو کاملا درک کنیم.
فقط چند نکته‌ی ساده راجع به this باقی می‌مونه که به مرور بررسی می‌کنیم.

آخر هفته منتظر یه سوال نسبتاً سخت از this باشید 😄
با اجرای این کد چه مقداری در کنسول چاپ می‌شود؟

#interviewquestion #js

@ProGraphs
ProGraphs
با اجرای این کد چه مقداری در کنسول چاپ می‌شود؟ #interviewquestion #js @ProGraphs
جواب: 19

اگر نوع مقداری که به عنوان key در یک آبجکت تعیین می‌کنیم، غیر از string باشد، مقدار تعیین شده به string تبدیل می‌شود.

در این کد، ابتدا یک پراپرتی با key از نوع آبجکت ایجاد می‌کنیم. اما می‌دانیم که key نمی‌تواند از نوع آبجکت باشد پس به صورت خودکار به string تبدیل می‌شود. یعنی تا اینجا یک پراپرتی به نام "[object object]" و مقدار 20 داریم.

حالا هر پراپرتی جدیدی که اضافه کنیم، اگر key‌ آن از نوع آبجکت باشد، نام آن به "[object object]" تبدیل می‌شود و به جای اینکه پراپرتی جدید ایجاد شود، مقدار پراپرتی قبلی تغییر می‌کند.
بنابراین در خط هفتم، در واقع مقدار پراپرتی قبلی را تغییر می‌دهیم و پراپرتی جدیدی ایجاد نمی‌کنیم.

در نهایت فقط یک پراپرتی با نام "[object object]" و مقدار 19 در آبجکت وجود دارد!
This media is not supported in your browser
VIEW IN TELEGRAM
یکی از قابلیت‌های خیلی کاربردی chrome devtools امکان ثبت screenshot تمام صفحه از یک وب‌سایت است.

برای این کار command menu را باز می‌کنیم (Ctrl+Shift+P در ویندوز و Cmd+Shift+P در مک) و دستور capture full size screenshot را تایپ می‌کنیم.

#quicktip #devtools

@ProGraphs
🔺جامعه‌ای که زنان در خط مقدم آن قرار دارند. 👩🏻‍💻👩🏼‍🎓🧕🏻

با دیگر زنان سازنده در دنیا چت و به یکدیگر کمک کنید. 🤝

https://womenmake.com/

#link #women #community

@ProGraphs
با اجرای این کد چه مقداری در کنسول چاپ می‌شود؟

#interviewquestion #thiskeyword

@ProGraphs
ProGraphs
با اجرای این کد چه مقداری در کنسول چاپ می‌شود؟ #interviewquestion #thiskeyword @ProGraphs
جواب: Form

اول خیلی کلی کد را بررسی می‌کنیم:
سه آبحکت داریم که هر کدام یک پراپرتی به نام title و یک تابع به نام printTitle دارند که this.title را چاپ می‌کند. همچنین دو آبجکت panel و form یک پراپرتی به نام child دارند که به یک آبجکت دیگر اشاره می‌کند. و در آخر یک تابع global به نام printChildTitle داریم که تابع this.child.printTitle را صدا می‌کند.

گفتیم که برای تعیین مقدار this فقط به قسمتی از کد که تابع در آن صدا شده است (call-site) توجه می‌کنیم و اصلا کاری به اینکه توابع کجا و چگونه تعریف شده‌اند نداریم:
اولین call-site در خط آخر قرار دارد که تابع printChildTitle صدا شده است. با توجه به اینکه تابع را با call صدا کرده‌ایم، مقدار this درون تابع printChildTitle آبجکت panel خواهد بود.

حالا آخرین call-site که داخل خود تابع printChildTitle قرار دارد: با توجه به این که مقدار this در تابع printChildTitle آبجکت panel است، تابع panel.child.printTitle صدا می‌شود (قانون دوم). بنابراین مقدار this درون تابع printTitle آبجکت panel.child یا همان آبجکت form خواهد بود!

(میدونم یه ذره گیج کننده و سخت بود و همچین کدی توی یه پروژه‌ی واقعی واقعا بد و غیر قابل فهم محسوب میشه! فقط خواستیم بعد از این یک ماه که مفهوم this رو بررسی کردیم، مطالبی که یاد گرفتیم رو تو یه کد نسبتا گیج کننده محک بزنیم 😉)
🔺ورژن دوم Design blocks سایت Froala هم اومد. 😍

https://www.froala.com/design-blocks-v2

#link #designblocks #webpagebuilder

@ProGraphs
🔺 با سایت زیر از هر وب‌سایتی Screenshot بگیرید.

https://screen.guru/

#link #mockup #screenshot

@ProGraphs
​​متد‌های جدید برای دستکاری DOM با جاوااسکریپت مانند append, prepend, after, before, remove, replaceWith که از jQuery الهام گرفته شده‌اند!

https://caniuse.com/#feat=dom-manip-convenience

#quicktip #dom #js

@ProGraphs
🔺تنها در چند ثانیه اشکال SVG بسازید.✌🏻

https://www.blobmaker.app/

#link #svg

@ProGraphs
مفهوم CSS box model و بخش‌های تشکیل دهنده آن را توضیح دهید

#interviewquestion #css

@ProGraphs