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

ProGraphs = Programming + Graphics
Download Telegram
ProGraphs
تفاوت undefined و undeclared در جاوااسکریپت چیست ؟ #interviewquestion #js @ProGraphs
جواب:
زمانی که یک متغیر تعریف شده باشد ولی مقداری نداشته باشد، مقدار آن undefined خواهد بود. در واقع می‌توان گفت که undefined عدم وجود value را به ما نشان می‌دهد.
اما undeclared به این معنی است که اصلا متغیر تعریف نشده است.

ممکن است این سوال را هم مطرح کنند که اصلا undefined از نظر قواعد در جاوااسکریپت چه چیزی محسوب می‌شود ؟ (دیگه خیلی باید گیر باشن که این سوال رو بپرسن 😃)
در واقع undefined در جاوااسکریپت یک نوع داده است که یک مقدار دارد و آن هم خود کلمه کلیدی undefined هست !

این جمله آخر رو بگین دیگه درجا تو مصاحبه قبولتون می‌کنن 😄
​​اگر از گوگل کروم در گوشی‌های اندرویدی استفاده کرده باشید، احتمالا متوجه شده‌اید که بعضی وبسایت‌ها رنگ تم خود گوگل کروم را تغییر می‌دهند.
این کار خیلی ساده و با متا تگ زیر انجام می‌شود:

<meta name="theme-color" content="#fb3449">

#quicktip #html #chrome

@ProGraphs
تفاوت pseudo-class و pseudo-element در CSS چیست ؟

#interviewquestion #css

@ProGraphs
ProGraphs
تفاوت pseudo-class و pseudo-element در CSS چیست ؟ #interviewquestion #css @ProGraphs
جواب:
شبه کلاس یا pseudo-class ها با علامت دو نقطه (:) مشخص می‌شوند و عناصر را تحت شرط خاصی انتخاب می‌کنند. مثلا عنصری که موس روی آن قرار دارد. یا عنصری که اولین فرزند والدش هست.
چند نمونه از pseudo-class ها:
:placeholder-shown, :first-child, :hover, :invalid

شبه عناصر یا pseudo-element ها با دو تا دو نقطه (::) مشخص می‌شوند و عناصر مجازی ایجاد می‌کنند که در DOM وجود ندارند. برای مثال فرض کنید می‌خواهیم اولین خط یک متن را انتخاب کنیم، شبه عنصری به نام first-line وجود دارد که به ما اجازه می‌دهد به اولین خط یک متن مانند یک عنصر HTML استایل بدهیم. در حالی که در حقیقت اولین خط متن درون یک عنصر نیست و این عنصر به صورت مجازی ایجاد شده است.
چند نمونه از pseudo-element ها:
::placeholder, ::first-letter, ::before, ::after
​​با استفاده از آبجکت console در مرورگر خیلی ساده می‌توانیم زمان اجرای یک عملیات جاوااسکریپتی را ببینیم. کافی است قبل از عملیات متد time و بعد از عملیات متد timeEnd را فراخوانی کنیم تا زمان بین این دو فراخوانی در کنسول چاپ شود.

#quicktip #js

@ProGraphs
آیا در مورد Resetting و Normalizing در CSS شنیده‌اید‌‌؟ تفاوت آنها چیست‌؟

#interviewquestion #css

@ProGraphs
​​🔸 نتایج نظرسنجی از Developer ها در سال 2018 توسط سایت stackoverflow

https://insights.stackoverflow.com/survey/2018

#link #survey #overview

@ProGraphs
ProGraphs
آیا در مورد Resetting و Normalizing در CSS شنیده‌اید‌‌؟ تفاوت آنها چیست‌؟ #interviewquestion #css @ProGraphs
جواب:‌

مرورگر‌ها برای ایجاد ظاهر اولیه عناصر، استایل‌های پیشفرضی را اعمال می‌کنند. اما این استایل‌های پیشفرض در همه‌ی مرورگر‌ها یکسان نیستند. در نتیجه بعضی عناصر html در همه‌ی مرورگر‌ها ظاهر یکسانی نخواهند داشت.

برای حل این مشکل CSS Reset تقریبا تمام استایل‌های پیشفرض را بی‌اثر می‌کند. به این ترتیب عناصر ظاهر خاصی نخواهند داشت و باید از پایه ظاهر ‌آنها را بسازیم.

اما CSS Normalize برای تمام عناصر یک ظاهر اولیه می‌سازد با این هدف که در تمام مرورگر‌ها یکسان نمایش داده شوند. یعنی یا استایل‌های پیشفرض را حفظ می‌کند یا آنها را به صورتی تغییر می‌دهد که در تمام مرورگر‌ها یکسان باشند.
​​فرض کنید می‌خواهیم همه‌ی لینک‌هایی که به یک فایل pdf اشاره می‌کنند را با یک رنگ خاص مشخص کنیم. این کار با کمک attribute selector ها به سادگی قابل انجام است ولی اگر پسوند فایل اشتباها با حروف بزرگ نوشته شده باشد (مثلا PdF) رنگ لینک تغییر نخواهد کرد.

برای حل این مشکل باید سلکتور را incase sensitive کنیم تا به کوچک و بزرگی حروف حساس نباشد. روش انجام این کار را در تصویر می‌بینید.

#quicktip #css

@ProGraphs
آیا این دو تابع یک مقدار را return می‌کنند‌؟

#interviewquestion #js

@ProGraphs
ProGraphs
آیا این دو تابع یک مقدار را return می‌کنند‌؟ #interviewquestion #js @ProGraphs
جواب: خیر!

همانطور که می‌دانید استفاده از semicolon در جاوااسکریپت اختیاری است. در نتیجه خود زبان سعی می‌کند انتهای هر statement را حدس بزند.

بنابراین در تابع دوم که عبارت return و آبجکت در دو خط جدا قرار دارند اشتباها فکر می‌کند که دو عبارت جدا هستند، یک return خالی و یک آبجکت. به این ترتیب تابع دوم undefined را return می‌کند. تابع اول هم مشخصا به درستی آبجکت مورد نظر را return می‌کند.

نتیجه اخلاقی: مقداری که می‌خواهید از تابع return کنید را رو‌بروی return بنویسید و نه در خط بعد.