اگر هردوی این rulesetها به یک عنصر اعمال شوند، متن این عنصر چه رنگی خواهد بود؟
#interviewquestion #css
@ProGraphs
#interviewquestion #css
@ProGraphs
ProGraphs
اگر هردوی این rulesetها به یک عنصر اعمال شوند، متن این عنصر چه رنگی خواهد بود؟ #interviewquestion #css @ProGraphs
جواب: green
برای تعیین رنگ عنصر،ابتدا specificity دو انتخابگر را تعیین میکنیم:
اگر 10 امتیاز برای هر کلاس، و 100 امتیاز برای هر id اضافه کنیم، امتیاز دو انتخابگر به این ترتیب تعیین میشود:
انتخابگر اول: 100
انتخابگر دوم: 110
همانطور که میبینید امتیاز انتخابگر دوم بیشتر است! اما چرا ruleset اول اعمال شد؟
مشکل اینجاست که امتیاز انتخابگرها به صورت دهدهی محاسبه نمیشود و اولویت انتخابگر id بالاتر از کلاس است. در نتیجه هیچ تعدادی از کلاسها نمیتوانند یک id را override کنند!
پس بهتر است امتیاز انتخابگرها را به این شکل تعیین کنیم:
انتخابگر اول: 0, 0, 1, 0
انتخابگر دوم: 0, 11, 0, 0
چون تعداد idها در انتخابگر اول بیشتر است، پس قطعا ruleset اول اعمال میشود و رنگ متن عنصر green خواهد بود.
برای تعیین رنگ عنصر،ابتدا specificity دو انتخابگر را تعیین میکنیم:
اگر 10 امتیاز برای هر کلاس، و 100 امتیاز برای هر id اضافه کنیم، امتیاز دو انتخابگر به این ترتیب تعیین میشود:
انتخابگر اول: 100
انتخابگر دوم: 110
همانطور که میبینید امتیاز انتخابگر دوم بیشتر است! اما چرا ruleset اول اعمال شد؟
مشکل اینجاست که امتیاز انتخابگرها به صورت دهدهی محاسبه نمیشود و اولویت انتخابگر id بالاتر از کلاس است. در نتیجه هیچ تعدادی از کلاسها نمیتوانند یک id را override کنند!
پس بهتر است امتیاز انتخابگرها را به این شکل تعیین کنیم:
انتخابگر اول: 0, 0, 1, 0
انتخابگر دوم: 0, 11, 0, 0
چون تعداد idها در انتخابگر اول بیشتر است، پس قطعا ruleset اول اعمال میشود و رنگ متن عنصر green خواهد بود.
Node.js security best practices
https://medium.com/@nodepractices/were-under-attack-23-node-js-security-best-practices-e33c146cb87d
#link #article #node #security
@ProGraphs
https://medium.com/@nodepractices/were-under-attack-23-node-js-security-best-practices-e33c146cb87d
#link #article #node #security
@ProGraphs
Medium
We’re under attack! 23+ Node.js security best practices
A curated list of 23 node security best practices with code examples and quotes from the top ranked blogs
🔺با سایت زیر تصاویر خود را بدون کاهش کیفیت فشرده کنید. ✌🏻
https://squoosh.app
#link #imagecompressor
@ProGraphs
https://squoosh.app
#link #imagecompressor
@ProGraphs
ProGraphs
آیا در این کد میتوانیم در خط 6 به متغیر گلوبال دسترسی پیدا کنیم؟ #interviewquestion #js @ProGraphs
جواب: خیر!
با توجه به نحوهی عملکرد lexical scope، همیشه ابتدا داخل خود تابع دنبال یک متغیر میگردیم. بنابراین همیشه متغیر proGraphs داخل تابع پیدا میشود و به متغیر گلوبال دسترسی پیدا نمیکنیم.
این شرایط با عنوان variable shadowing شناخته میشود.
از طرفی متغیرهایی که با let تعریف میشوند، به آبجکت global اضافه نمیشوند. یعنی window.proGraphs وجود نخوهد داشت و از راه غیر lexical هم به متغیر گلوبال دسترسی نداریم!
https://en.wikipedia.org/wiki/Variable_shadowing
با توجه به نحوهی عملکرد lexical scope، همیشه ابتدا داخل خود تابع دنبال یک متغیر میگردیم. بنابراین همیشه متغیر proGraphs داخل تابع پیدا میشود و به متغیر گلوبال دسترسی پیدا نمیکنیم.
این شرایط با عنوان variable shadowing شناخته میشود.
از طرفی متغیرهایی که با let تعریف میشوند، به آبجکت global اضافه نمیشوند. یعنی window.proGraphs وجود نخوهد داشت و از راه غیر lexical هم به متغیر گلوبال دسترسی نداریم!
https://en.wikipedia.org/wiki/Variable_shadowing
Wikipedia
Variable shadowing
a variable in an inner scope hiding an identically named variable in an outer scope
🔺ایجاد افکتهایی این چنینی بر روی عکس با سایت زیر ✨👇🏻
https://duotone.shapefactory.co/
#link #duotone
@ProGraphs
https://duotone.shapefactory.co/
#link #duotone
@ProGraphs
🔺 Typeform
- نظرسنجی و فرمساز آنلاین ✌🏻🥳
https://www.typeform.com
#link #survey #form #builder
@ProGraphs
- نظرسنجی و فرمساز آنلاین ✌🏻🥳
https://www.typeform.com
#link #survey #form #builder
@ProGraphs
Typeform
Typeform: People-Friendly Forms and Surveys
Build beautiful, interactive forms — get more responses. No coding needed. Templates for quizzes, research, feedback, lead generation, and more. Sign up FREE.
This media is not supported in your browser
VIEW IN TELEGRAM
Simple & light weight vanilla javascript plugin to create smooth & beautiful animations when you scroll! 😎✌🏻
https://github.com/alexfoxy/laxxx
#link #js #plugin #scroll
@ProGraphs
https://github.com/alexfoxy/laxxx
#link #js #plugin #scroll
@ProGraphs
تبدیل نوع دادهها (coercion) در جاوااسکریپت (قسمت دوم):
در مطلب قبلی، تبدیل نوع دادهها به string را بررسی کردیم و نحوهی تبدیل آبجکتها به string را هم دیدیم.
حالا میخواهیم نحوهی تبدیل آبجکتها به primitive را دقیقتر بررسی کنیم (نه فقط string):
❗️وقتی سعی میکنیم یک آبجکت را به یک نوع داده مثل number, string تبدیل کنیم (که نوع دادههای primitive هستند)، باید ابتدا آبجکت به primitive تبدیل شود. اما چطور؟
1- اگر متدی به نام valueOf در آبجکت وجود داشته باشد و خروجی این متد از نوع primitive باشد، همین متد صدا میشود:
❗️نکات تکمیلی:
- همانطور که در مطلب قبلی هم دیدیم، متدهای valueOf و toString در Object.prototype تعریف شدهاند. بنابراین اگر خودمان این متدها را داخل یک آبجکت تعریف نکنیم، متدهای داخل Object.prototype برای تبدیل به primitive صدا میشوند (به مطالبی که راجع به prototype chain منتشر کردیم مراجعه کنید).
- گاهی ترتیب صدا شدن دو متد valueOf و toString برعکس چیزی است که در این مطلب دیدیم. دلیل این موضوع را در مطالب بعدی بررسی میکنیم. اما فعلا اهمیتی ندارد 😅
#quicktip #js
@ProGraphs
در مطلب قبلی، تبدیل نوع دادهها به string را بررسی کردیم و نحوهی تبدیل آبجکتها به string را هم دیدیم.
حالا میخواهیم نحوهی تبدیل آبجکتها به primitive را دقیقتر بررسی کنیم (نه فقط string):
❗️وقتی سعی میکنیم یک آبجکت را به یک نوع داده مثل number, string تبدیل کنیم (که نوع دادههای primitive هستند)، باید ابتدا آبجکت به primitive تبدیل شود. اما چطور؟
1- اگر متدی به نام valueOf در آبجکت وجود داشته باشد و خروجی این متد از نوع primitive باشد، همین متد صدا میشود:
var obj = {2- اگر از مرحلهی قبلی مقدار primitive تعیین نشود، متد toString صدا میشود:
valueOf() {
return 2;
}
};
obj -> 2
var obj = {دقت کنید که این مراحل، توسط خود جاوااسکریپت و زمانی که میخواهیم یک آبجکت را به یک نوع دادهی primitive مثل string تبدیل کنیم انجام میشود.
toString() {
return "hi";
}
};
obj -> "hi"
❗️نکات تکمیلی:
- همانطور که در مطلب قبلی هم دیدیم، متدهای valueOf و toString در Object.prototype تعریف شدهاند. بنابراین اگر خودمان این متدها را داخل یک آبجکت تعریف نکنیم، متدهای داخل Object.prototype برای تبدیل به primitive صدا میشوند (به مطالبی که راجع به prototype chain منتشر کردیم مراجعه کنید).
- گاهی ترتیب صدا شدن دو متد valueOf و toString برعکس چیزی است که در این مطلب دیدیم. دلیل این موضوع را در مطالب بعدی بررسی میکنیم. اما فعلا اهمیتی ندارد 😅
#quicktip #js
@ProGraphs
ProGraphs
تبدیل نوع دادهها (coercion) در جاوااسکریپت (قسمت دوم): در مطلب قبلی، تبدیل نوع دادهها به string را بررسی کردیم و نحوهی تبدیل آبجکتها به string را هم دیدیم. حالا میخواهیم نحوهی تبدیل آبجکتها به primitive را دقیقتر بررسی کنیم (نه فقط string): ❗️وقتی…
حالا که دانشمون از تبدیل آبجکت به primitive کاملتر شده، دوباره به مطلب قبلی برگردید:
https://t.me/ProGraphs/434
تو قانون دوم گفتیم که برای تبدیل به string، متد toString صدا میشه. حالا مراحل کاملتر (valueOf و toString) و دلیل صدا شدن این متد رو بهتر درک میکنیم!
https://t.me/ProGraphs/434
تو قانون دوم گفتیم که برای تبدیل به string، متد toString صدا میشه. حالا مراحل کاملتر (valueOf و toString) و دلیل صدا شدن این متد رو بهتر درک میکنیم!
Telegram
ProGraphs
تبدیل نوع دادهها (coercion) در جاوااسکریپت (قسمت اول):
چطور نوع دادههای مختلف در جاوااسکریپت به string تبدیل میشوند؟
❗️1-تقریبا همهی مقادیر primitive بدون تغییر خاصی به string تبدیل میشوند و حالت stringای آنها از پیش تعیین شده است:
true -> "true"
12…
چطور نوع دادههای مختلف در جاوااسکریپت به string تبدیل میشوند؟
❗️1-تقریبا همهی مقادیر primitive بدون تغییر خاصی به string تبدیل میشوند و حالت stringای آنها از پیش تعیین شده است:
true -> "true"
12…
ProGraphs
با اجرای این کد چه مقداری در کنسول چاپ میشود؟ #interviewquestion #js @ProGraphs
جواب: true
در چند مطلب اخیر، قسمتی از مفاهیم coercion در جاوااسکریپت را بررسی کردیم. حالا نتیجهی این کد را با استفاده از این مفاهیم بررسی میکنیم:
* در خط 9 یک آبجکت را با یک عدد مقایسه میکنیم. اگر از عملگر === استفاده شده بود، قطعا نتیجهی شرط false بود!
اما چون از عملگر == استفاده شده، آبجکت proGraphs به عدد تبدیل میشود تا مقایسه انجام شود.
**حالا باید آبجکت را به عدد تبدیل کنیم. اما قبل از تبدیل آبجکت به عدد، باید آبجکت به primitive تبدیل شود!
برای تبدیل آبجکت به primitive، متد valueOf داخل آبجکت صدا میشود. خروجی این متد عدد 20 است پس در نهایت آبجکت proGraphs به عدد 20 تبدیل شد و نتیجهی شرط true است!
در چند مطلب اخیر، قسمتی از مفاهیم coercion در جاوااسکریپت را بررسی کردیم. حالا نتیجهی این کد را با استفاده از این مفاهیم بررسی میکنیم:
* در خط 9 یک آبجکت را با یک عدد مقایسه میکنیم. اگر از عملگر === استفاده شده بود، قطعا نتیجهی شرط false بود!
اما چون از عملگر == استفاده شده، آبجکت proGraphs به عدد تبدیل میشود تا مقایسه انجام شود.
**حالا باید آبجکت را به عدد تبدیل کنیم. اما قبل از تبدیل آبجکت به عدد، باید آبجکت به primitive تبدیل شود!
برای تبدیل آبجکت به primitive، متد valueOf داخل آبجکت صدا میشود. خروجی این متد عدد 20 است پس در نهایت آبجکت proGraphs به عدد 20 تبدیل شد و نتیجهی شرط true است!
ProGraphs
جواب: true در چند مطلب اخیر، قسمتی از مفاهیم coercion در جاوااسکریپت را بررسی کردیم. حالا نتیجهی این کد را با استفاده از این مفاهیم بررسی میکنیم: * در خط 9 یک آبجکت را با یک عدد مقایسه میکنیم. اگر از عملگر === استفاده شده بود، قطعا نتیجهی شرط false بود!…
نتیجهی این کد رو در 2 مرحله بررسی کردیم. اگر این 2 مرحله رو متوجه نشدید اصلا نگران نباشید 😁
هردوی این مراحل رو در مطالب قبلی عمیقا بررسی کردیم:
* https://t.me/ProGraphs/432
** https://t.me/ProGraphs/446
هردوی این مراحل رو در مطالب قبلی عمیقا بررسی کردیم:
* https://t.me/ProGraphs/432
** https://t.me/ProGraphs/446
Telegram
ProGraphs
جواب:
احتمالا جواب اکثر دولوپرها به این سوال، این جمله است:
عملگر == فقط مقدار را چک میکند. ولی عملگر === علاوه بر مقدار، نوع داده را هم چک میکند.
اما این تعریف در جاوااسکریپت دقیق نیست!
❗️در واقع عملگر == هم نوعداده را چک میکند و اگر نوع دادهی دو…
احتمالا جواب اکثر دولوپرها به این سوال، این جمله است:
عملگر == فقط مقدار را چک میکند. ولی عملگر === علاوه بر مقدار، نوع داده را هم چک میکند.
اما این تعریف در جاوااسکریپت دقیق نیست!
❗️در واقع عملگر == هم نوعداده را چک میکند و اگر نوع دادهی دو…
🔺StickPNG - Free Transparent PNGs, Stickers, Clipart & more! 👌🏻
http://www.stickpng.com/
#link #transparent #png
@ProGraphs
http://www.stickpng.com/
#link #transparent #png
@ProGraphs
Stickpng
StickPNG - Free Transparent PNGs, Stickers, Clipart & more!
StickPNG is a vibrant community of creative people sharing transparent PNG images which you can download for free and use in your personal non-commercial or educational projects.
بزرگترین مجموعه از تصاویر transparent png clipart رایگان
https://flyclipart.com/
#link #transparent #png
@ProGraphs
https://flyclipart.com/
#link #transparent #png
@ProGraphs