1. Let’s Encrypt
گواهینامه امنیتی Let’s Encrypt توسط گروه پژوهشی به نام ISRG ایجاد شده است که شرکتهای بزرگی نظیر فایرفاکس، گوگل، سیسکو، دیتاسنتر OVH و… در به وجود آمدن آن نقش اساسی دارند. استفاده از این SSL کاملا رایگان بوده و در هاستهای Cpanel به این صورت است که هر سه ماه یکبار به صورت خودکار تمدید میشود. همچنین امکان استفاده از آن برای دامنههای IR نیز فراهم است.
2. SSL For Free
گواهینامه امنیتی SSL For Free نیز به این صورت عمل میکند که کلید خصوصی با استفاده از یک API تحت وب توسط مرورگر ایجاد میشود. سپس اگر مرورگر شما از این API پشتیبانی کند بعد از اینکه برای یک بار ایجاد شد پاک میشود اما در غیر این صورت با استفاده از آخرین نسخه OpenSSL کلیدها در سرور سایت تولید خواهند شد.
3. CloudFlare
گواهینامه امنیتی CloudFlare در کنار خدمات دیگر شرکت کلودفلر از جمله CDN، افزایش سرعت سایت و جلوگیری از حملات DDOS قرار دارد. SSL رایگان کلودفلر به این صورت است که چند گواهینامه به صورت اشتراکی برای چندین دامنه صادر میشود. روند تمدید آن نیز به صورت یکساله است که پس از گذشت هر سال به صورت خودکار تمدید خواهد شد. اما تنها اشکال استفاده از این گواهینامه این است که در دامنه IR. به دلیل تحریم امکان استفاده از آن وجود ندارد. در حال حاضر نیز SSL استفاده شده روی دامنه وبلاگ بنده از همین کلودفلر است.
🌐 نکات مهم برای استفاده و خرید SSL
🖌 اگر از دامنه IR. استفاده میکنید باید حتما در هنگام خرید دقت کنید که پشتیبانی از دامنه ملی در گواهینامه امنیتی وجود داشته باشد.
🖌 اگر قصد استفاده از SSL های DV و OV دارید و سایت شما به گونهای است که چند ساب دامین دارید حتما باید SSL از نوع WildCard خریداری کنید که امکان استفاده در ساب دامین را داشته باشید.
🖌 در صورت استفاده از SSL EV لازم است مدارک سازمانی و اطلاعات پاسپورت خود را ارسال کنید تا بررسی شده و پس از تایید امکان استفاده از SSL با نام سایت را داشته باشید.
🖌 هنگام خرید گواهینامه امنیتی OV و EV مراحلی که باید از زمان ارسال سفارش، تایید و نصب را طی کنید ممکن است تا 15 روز کاری زمانبر باشد.
🖌 برخی شرکتها نصب SSL را به صورت رایگان و با شرایط خاصی بر روی هاست شما نصب میکنند. بنابراین اگر دانش فنی لازم برای نحوه نصب SSL در هاست را ندارید باید هزینهای جدا بابت نصب آن پرداخت کنید.
عباس صادقی
@ABlueDeveloper
گواهینامه امنیتی Let’s Encrypt توسط گروه پژوهشی به نام ISRG ایجاد شده است که شرکتهای بزرگی نظیر فایرفاکس، گوگل، سیسکو، دیتاسنتر OVH و… در به وجود آمدن آن نقش اساسی دارند. استفاده از این SSL کاملا رایگان بوده و در هاستهای Cpanel به این صورت است که هر سه ماه یکبار به صورت خودکار تمدید میشود. همچنین امکان استفاده از آن برای دامنههای IR نیز فراهم است.
2. SSL For Free
گواهینامه امنیتی SSL For Free نیز به این صورت عمل میکند که کلید خصوصی با استفاده از یک API تحت وب توسط مرورگر ایجاد میشود. سپس اگر مرورگر شما از این API پشتیبانی کند بعد از اینکه برای یک بار ایجاد شد پاک میشود اما در غیر این صورت با استفاده از آخرین نسخه OpenSSL کلیدها در سرور سایت تولید خواهند شد.
3. CloudFlare
گواهینامه امنیتی CloudFlare در کنار خدمات دیگر شرکت کلودفلر از جمله CDN، افزایش سرعت سایت و جلوگیری از حملات DDOS قرار دارد. SSL رایگان کلودفلر به این صورت است که چند گواهینامه به صورت اشتراکی برای چندین دامنه صادر میشود. روند تمدید آن نیز به صورت یکساله است که پس از گذشت هر سال به صورت خودکار تمدید خواهد شد. اما تنها اشکال استفاده از این گواهینامه این است که در دامنه IR. به دلیل تحریم امکان استفاده از آن وجود ندارد. در حال حاضر نیز SSL استفاده شده روی دامنه وبلاگ بنده از همین کلودفلر است.
🌐 نکات مهم برای استفاده و خرید SSL
🖌 اگر از دامنه IR. استفاده میکنید باید حتما در هنگام خرید دقت کنید که پشتیبانی از دامنه ملی در گواهینامه امنیتی وجود داشته باشد.
🖌 اگر قصد استفاده از SSL های DV و OV دارید و سایت شما به گونهای است که چند ساب دامین دارید حتما باید SSL از نوع WildCard خریداری کنید که امکان استفاده در ساب دامین را داشته باشید.
🖌 در صورت استفاده از SSL EV لازم است مدارک سازمانی و اطلاعات پاسپورت خود را ارسال کنید تا بررسی شده و پس از تایید امکان استفاده از SSL با نام سایت را داشته باشید.
🖌 هنگام خرید گواهینامه امنیتی OV و EV مراحلی که باید از زمان ارسال سفارش، تایید و نصب را طی کنید ممکن است تا 15 روز کاری زمانبر باشد.
🖌 برخی شرکتها نصب SSL را به صورت رایگان و با شرایط خاصی بر روی هاست شما نصب میکنند. بنابراین اگر دانش فنی لازم برای نحوه نصب SSL در هاست را ندارید باید هزینهای جدا بابت نصب آن پرداخت کنید.
عباس صادقی
@ABlueDeveloper
This media is not supported in your browser
VIEW IN TELEGRAM
برنامه نویس ; طراح :)
@ABlueDeveloper
@ABlueDeveloper
#CSharp
#CSharp8
🌐🌐🌐 ویژگی های جدید C# 8.0 (قسمت اول)
سی شارپ 8.0 نسخه اصلی C# میباشد . حتی با وجود اینکه تازه C# 7.0 7.1 7.2 7.3 منتشر شده و و هنوز از قابلیت های جدید آن هیجان زده هستیم.
برنامه فعلی بدین صورت میباشد که همزمان با Net Core 3.0 سی شارپ 8 نیز عرضه خواهد شد. با این حال ویژگی های این نسخه جدید در نسخه پیش نمایش ویژوال استودیو 2019 در حال انجام است و میتوانید انهارو بصورت جدی شروع کنید .
هدف از این پست این است که به شما یک دید کلی از آنچه انتظار می رود را ارائه دهیم و سرانجام در مورد آن چه انتظار داریم
در اینجا یک مرور کلی از ویژگی های مهم برای C # 8.0 ارائه شده است میپردازیم :
✅ Nullable reference types
شما را از مقدار دهی null به reference Type ها منع میکند که البته با warning ها به شما این اخطار را میدهد که باید nullable کنید متغیر مذکور را.
ویژگی های Async/await از سی شارپ نسخه 5.0 اضافه شد و به شما اجازه میدهد results را بصورت Asynchronous در کد استفاده کنید بدون callback
#CSharp8
🌐🌐🌐 ویژگی های جدید C# 8.0 (قسمت اول)
سی شارپ 8.0 نسخه اصلی C# میباشد . حتی با وجود اینکه تازه C# 7.0 7.1 7.2 7.3 منتشر شده و و هنوز از قابلیت های جدید آن هیجان زده هستیم.
برنامه فعلی بدین صورت میباشد که همزمان با Net Core 3.0 سی شارپ 8 نیز عرضه خواهد شد. با این حال ویژگی های این نسخه جدید در نسخه پیش نمایش ویژوال استودیو 2019 در حال انجام است و میتوانید انهارو بصورت جدی شروع کنید .
هدف از این پست این است که به شما یک دید کلی از آنچه انتظار می رود را ارائه دهیم و سرانجام در مورد آن چه انتظار داریم
در اینجا یک مرور کلی از ویژگی های مهم برای C # 8.0 ارائه شده است میپردازیم :
✅ Nullable reference types
شما را از مقدار دهی null به reference Type ها منع میکند که البته با warning ها به شما این اخطار را میدهد که باید nullable کنید متغیر مذکور را.
string s = null; // Warning: Assignment of null to non-nullable reference typeبرای این کار شما باید از Nullable reference type استفاده کنید
string? s = null; // Okبنابراین زمانی که از nullable reference type استفاده میکنید باید چک کنید که null نباشد :
void M(string? s)✅ Async streams
{
Console.WriteLine(s.Length); // Warning: Possible null reference exception
if (s != null)
{
Console.WriteLine(s.Length); // Ok: You won't get here if s is null
}
}
ویژگی های Async/await از سی شارپ نسخه 5.0 اضافه شد و به شما اجازه میدهد results را بصورت Asynchronous در کد استفاده کنید بدون callback
async Task<int> GetBigResultAsync()البته زمانی که میخواهیم داده هایی را بگیریم (یا تولید کنیم) که یک جریان مداوم هستند (continuous stream results) مثل زمانی که شما میخوای از دستگاه IoT دیتا بگیرید و یا از Cloud Service ، Async Stream ها برای این دیتا ها استفاده میشوند که اینترفیس جنریکی معرفی شده بنام <IAsyncEnumerable<T که در واقع async شده ی <IEnumerable<Tمی باشد و دقیقا اون چیزی است که شما نیاز دارید و زبان به شما اجازه میدهد که await رو روی foreach داشته باشید و داده هارا رو yield برگردانید و یا استفاده کنید
{
var result = await GetResultAsync();
if (result > 20) return result;
else return -1;
}
async IAsyncEnumerable<int> GetBigResultsAsync()@ABlueDeveloper
{
await foreach (var result in GetResultsAsync())
{
if (result > 20) yield return result;
}
}
#CSharp
#CSharp8
🌐🌐🌐 ویژگی های جدید C# 8.0 (قسمت دوم)
لینک قسمت اول : https://t.me/ABlueDeveloper/278
✅ Ranges and indices
اضافه شدن نوع Index برای زمانی که نیاز به ایندکس گذاری دارید ، شما میتونید از این نوع تایپ استفاده کنید و بصورت Int مقدار دهی کنید و یا قبل مقدار int از ^ استفاده کنید برای گرفتن مقدار ایندکس از اخر (prefix) . در واقع از این به بعد هرجا نیاز دارین که از کالکشنی با index ، value آن ایتم را بگیرید ، ویرایش یا پر کنید از index باید استفاده کنید.
در حال حاضر هنگامی که یک Interface را نوشتید و استفاده میکنید ،دیگر نمی توانید Member به آن را اضافه کنید بدون اینکه کلاسهایی که استفاده کردند تغییری ندهند.
در C # 8.0 به شما اجازه داده میشود در واقع یه Member رو Overload کنید . حالا دیگر تمام کلاس هایی که این interface را impelement کردند نیازی نیست حتما definition اون member رو بنویسند و از همون default impelementation که قبلا بود استفاده میکنند . به مثال زیر توجه کنید :
حالا شما میتوانید Members های جدید رو به interface هاتون با خیال راحت با default implementation اضافه کنید بدون اینکه نیاز باشه تو هر جایی که از این interface استفاده کردید تغییری ایجاد کنید.
@ABlueDeveloper
#CSharp8
🌐🌐🌐 ویژگی های جدید C# 8.0 (قسمت دوم)
لینک قسمت اول : https://t.me/ABlueDeveloper/278
✅ Ranges and indices
اضافه شدن نوع Index برای زمانی که نیاز به ایندکس گذاری دارید ، شما میتونید از این نوع تایپ استفاده کنید و بصورت Int مقدار دهی کنید و یا قبل مقدار int از ^ استفاده کنید برای گرفتن مقدار ایندکس از اخر (prefix) . در واقع از این به بعد هرجا نیاز دارین که از کالکشنی با index ، value آن ایتم را بگیرید ، ویرایش یا پر کنید از index باید استفاده کنید.
Index i1 = 3; // number 3 from beginningهمچنین یک نوع محدوده معرفی شده که شامل دو Index است، یکی برای شروع و یک برای پایان، و می تواند با یک عبارت x..y نوشته شود.با توجه به مثال قبل به مثال زیر توجه کنید:
Index i2 = ^4; // number 4 from end
int[] a = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
Console.WriteLine($"{a[i1]}, {a[i2]}"); // "3, 6"
var slice = a[i1..i2]; // { 3, 4, 5 }✅ Default implementations of interface members
در حال حاضر هنگامی که یک Interface را نوشتید و استفاده میکنید ،دیگر نمی توانید Member به آن را اضافه کنید بدون اینکه کلاسهایی که استفاده کردند تغییری ندهند.
در C # 8.0 به شما اجازه داده میشود در واقع یه Member رو Overload کنید . حالا دیگر تمام کلاس هایی که این interface را impelement کردند نیازی نیست حتما definition اون member رو بنویسند و از همون default impelementation که قبلا بود استفاده میکنند . به مثال زیر توجه کنید :
interface ILoggerکلاس ConsoleLogger نیازی به پیاده سازی Log (Exception) از ILogger نیست، زیرا متد با اجرای پیش فرض اعلام شده است.
{
void Log(LogLevel level, string message);
void Log(Exception ex) => Log(LogLevel.Error, ex.ToString()); // New overload
}
class ConsoleLogger : ILogger
{
public void Log(LogLevel level, string message) { ... }
// Log(Exception) gets default implementation
}
حالا شما میتوانید Members های جدید رو به interface هاتون با خیال راحت با default implementation اضافه کنید بدون اینکه نیاز باشه تو هر جایی که از این interface استفاده کردید تغییری ایجاد کنید.
@ABlueDeveloper
This media is not supported in your browser
VIEW IN TELEGRAM
#react
#d3
#dataviz
کتابخانه nivo فراهم می کند مجموعه غنی از کامپوننت های dataviz، کتابخانه های عالی برای D3 و Reactjs ساخته شده است.
📌 لینک سایت:
http://nivo.rocks
@ABlueDeveloper
#d3
#dataviz
کتابخانه nivo فراهم می کند مجموعه غنی از کامپوننت های dataviz، کتابخانه های عالی برای D3 و Reactjs ساخته شده است.
📌 لینک سایت:
http://nivo.rocks
@ABlueDeveloper
Forwarded from اتچ بات
#hmvc
#HierarchicalModelViewController
💠 معماری hmvc چیست ؟
اگر شما هم یکی از افرادی هستید که با معماری mvc کارمیکنید به احتمال زیاد تا به حال نام معماری hmvc را هم شنیده اید
معماری hmvc در واقع به مخفف Hierarchical Model View Controller گفته میشود این معماری mvc سلسله مراتبی نامیده می شود و یک الگوی معماری است که می تواند به خوبی برای سایت های ماژولار استفاده شود
در مسیر یابی عادی mvc یک آدرس url درخواستی را انجام میدهد که یک کنترلر بر اساس کدنویسی انجام شده ارتباط با دیتابیس و ویو و پردازش های لازم را انجام داده و سپس به view برای رندر، منتقل می شود.
این کار به خوبی برای برنامه های عادی و کوچک کار می کند ، اما هنگامی که برنامه شما از نظر پیچیدگی رشد می کند، شما نیاز به کنترلر های بیشتری خواهید داشت .
درواقع در hmvc ما برای هر بخش مجزایی که داریم یک mvc کامل خواهیم داشت که به صورت مستقل کار خواهد کرد . برای مثال ما پوشه ای به نام panel داریم که بخش هایی درون آن خود دارای ساختار کلی کد ایگنایتر هست و پوشه های controllers - models - views - config و غیره را دارد و همیشه اول از این بخش استفاده میشود.
@ABlueDeveloper
#HierarchicalModelViewController
💠 معماری hmvc چیست ؟
اگر شما هم یکی از افرادی هستید که با معماری mvc کارمیکنید به احتمال زیاد تا به حال نام معماری hmvc را هم شنیده اید
معماری hmvc در واقع به مخفف Hierarchical Model View Controller گفته میشود این معماری mvc سلسله مراتبی نامیده می شود و یک الگوی معماری است که می تواند به خوبی برای سایت های ماژولار استفاده شود
در مسیر یابی عادی mvc یک آدرس url درخواستی را انجام میدهد که یک کنترلر بر اساس کدنویسی انجام شده ارتباط با دیتابیس و ویو و پردازش های لازم را انجام داده و سپس به view برای رندر، منتقل می شود.
این کار به خوبی برای برنامه های عادی و کوچک کار می کند ، اما هنگامی که برنامه شما از نظر پیچیدگی رشد می کند، شما نیاز به کنترلر های بیشتری خواهید داشت .
درواقع در hmvc ما برای هر بخش مجزایی که داریم یک mvc کامل خواهیم داشت که به صورت مستقل کار خواهد کرد . برای مثال ما پوشه ای به نام panel داریم که بخش هایی درون آن خود دارای ساختار کلی کد ایگنایتر هست و پوشه های controllers - models - views - config و غیره را دارد و همیشه اول از این بخش استفاده میشود.
@ABlueDeveloper
Telegram
attach 📎
#ONNX
یه پروژه جذاب جاواسکریپتی به اسم
onnxjs
واسه اجرا کردن مدلهای
ONNX
روی مرورگر (Browser) با استفاده از
WebAssembly و WebGL
که بتونه از قدرت
GPU
در سمت کلاینت استفاده کنه.
هوش مصنوعی دیگه از آنچه شما فکر میکنید به شما نزدیکتر است!
https://github.com/Microsoft/onnxjs
@ABlueDeveloper
یه پروژه جذاب جاواسکریپتی به اسم
onnxjs
واسه اجرا کردن مدلهای
ONNX
روی مرورگر (Browser) با استفاده از
WebAssembly و WebGL
که بتونه از قدرت
GPU
در سمت کلاینت استفاده کنه.
هوش مصنوعی دیگه از آنچه شما فکر میکنید به شما نزدیکتر است!
https://github.com/Microsoft/onnxjs
@ABlueDeveloper
GitHub
GitHub - microsoft/onnxjs: ONNX.js: run ONNX models using JavaScript
ONNX.js: run ONNX models using JavaScript. Contribute to microsoft/onnxjs development by creating an account on GitHub.
This media is not supported in your browser
VIEW IN TELEGRAM
#dotnetcore
#WPF
#Core3
امکان ساخت برنامههای Desktop اپلیکیشن بر اساس Net Core. در حال فراهم شدنه.
توی این ویدیو میتونید مراحل ساخت یک پروژه WPF رو بر اساس Net Core 3.0. ببنید.
@ABlueDeveloper
#WPF
#Core3
امکان ساخت برنامههای Desktop اپلیکیشن بر اساس Net Core. در حال فراهم شدنه.
توی این ویدیو میتونید مراحل ساخت یک پروژه WPF رو بر اساس Net Core 3.0. ببنید.
@ABlueDeveloper
#Css3
#Loading
لودینگ های زیبا توسط CSS3 که میتونید براحتی کاستوم کنید و استفاده کنید
http://cssload.net/
@ABlueDeveloper
#Loading
لودینگ های زیبا توسط CSS3 که میتونید براحتی کاستوم کنید و استفاده کنید
http://cssload.net/
@ABlueDeveloper
cssload.net
CSS Load.net - Loading CSS spinners and bars generator for AJAX & JQuery
CSS load - Free loading CSS3 animation generator. Create your loading animations from the pre-made templates
#React
#JavaScript
#VSCode
The Ultimate VSCode Setup for Front End/JS/React
https://goo.gl/wB7X5p
@fullStackDevs
#JavaScript
#VSCode
The Ultimate VSCode Setup for Front End/JS/React
https://goo.gl/wB7X5p
@fullStackDevs
#EcmaScript6
#ES6
🌀 ویژگی های اضافه شده در EcmaScript 6
1️⃣ حل مشکلات Unicode و …:
در ES6 سعی شده که مشکلات مربوط به زبان های شرقی و خاورمیانه تا حد زیادی حل بشه مثلا وقتی length یک رشته رو میگیرد و یا کد اسکی رو میخواهید به دست بیارید یا Regex بنویسید یا تطبیق Regex انجام بدید بهتر عمل میکنند و این بهتر عمل کردن مختص به تمام متد ها است یعنی این بهبود به جای اینکه در متد ها تغییر کنه در Core اصلی Javascript تغییر کرده تا تمام قابلیت ها Built-in یا Third-party بتونن ازش استفاده کنند.
2️⃣ قالب های رشته Template String:
قبلا میخواستید چند تا متغیر رو لا به لای یه رشته بگنجونید چه کار انجام میدادید؟!
قطعا مثل زیر عمل میکردید:
به جاش توی ES6 به این صورت عمل میکنیم:
اما یه مزیت دیگه این کار میتونید از قابلیت Multiline بودن اون استفاده کنید. فرض کنید میخواهید ساختار HTML را در قالب یک String در JS داشته باشید.
این متد چک میکند که آیا String با رشته یا کاراکتر مورد نظر شروع میشود یا خیر. اولین آرگومان این متد رشته مورد نظر است و دومین پارامتر یک عدد است که مشخص میکند شروع کجا باشد.
4️⃣ متد String.endsWith:
این متد چک میکند که آیا String با رشته یا کاراکتر مورد نظر خاتمه پیدا میکند یا خیر. اولین آرگومان این متد رشته مورد نظر است و دومین پارامتر یک عدد است که مشخص میکند شروع کجا باشد.
5️⃣ متد String.includes:
این متد چک میکند که یه string در رشته ای وجود دارد یا نه در اصل این متد به دنبال رشته مورد نظر در String میگردد و True یا False بر میگرداند.
6️⃣ متد String.repeat:
این متد String را با تعداد مورد نظر تکرار میکند و بر میگرداند برای مثال اگر "hamid" را با مقدار 3 به این متد بدهیم مقدار "hamidhamidhamid" را برمیگرداند.
7️⃣ متد String.codePointAt:
این متد کد ASCII کاراکتر Index که به آن ارجاع داده شده است را برمیگرد برای مثال اگر رشته "HAMID"را داشته باشیم و مقدار 1 را به این متد بدهیم خواهیم دید کد اسکی کارامتر A که 65 است بازگشت داده میشود. این متدحتی با Unicode و… کاراکتر هایی مثل 𠮷 مشکلی نداره.
8️⃣ متد String.fromCodePoint:
این متد دقیقا بر عکس متد قبل عمل میکند. این متد یک متد Static است یعنی با رشته ای صدا زده نمیشود و به صورت String.fromCodePoint صدا زده میشود.
این متد به مقدار دلخواه عدد میگیرد و کاراکتر موجود در آن کد اسکی را برمیگرداند. برای مثال اگر 65, 66, 67 را به این متد بدهیم مقدار ABC به ما بازگشت داده میشود.
9️⃣ تبدیل رشته به آرایه ها:
برای این کار کافیه به جای استفاده از splitبه صورت زیر عمل کنید.
برای اینکه روی تک تک کاراکتر های یک رشته در JS معمولی باید کارهای زیادی میکردیم اما توی ES6 به راحتی با ایجاد یک for of این کار رو انجام میدید حتی این کار با Unicode و کارامتر های ME هم مشکلی نداره
#ES6
🌀 ویژگی های اضافه شده در EcmaScript 6
1️⃣ حل مشکلات Unicode و …:
در ES6 سعی شده که مشکلات مربوط به زبان های شرقی و خاورمیانه تا حد زیادی حل بشه مثلا وقتی length یک رشته رو میگیرد و یا کد اسکی رو میخواهید به دست بیارید یا Regex بنویسید یا تطبیق Regex انجام بدید بهتر عمل میکنند و این بهتر عمل کردن مختص به تمام متد ها است یعنی این بهبود به جای اینکه در متد ها تغییر کنه در Core اصلی Javascript تغییر کرده تا تمام قابلیت ها Built-in یا Third-party بتونن ازش استفاده کنند.
2️⃣ قالب های رشته Template String:
قبلا میخواستید چند تا متغیر رو لا به لای یه رشته بگنجونید چه کار انجام میدادید؟!
قطعا مثل زیر عمل میکردید:
var finalStr = "Hello " + name + " and wellcome to: " + appName;خب این همه استفاده از + و "" خیلی سخت است.
به جاش توی ES6 به این صورت عمل میکنیم:
var finalStr = `Hello ${name} and wellcome to: ${appName}`;پس استفاده از” از ‘استفاده کردیم و برای گنجوندن متغیر توی String از{VARIABLE_NAME}$ استفاده میکنیم.
اما یه مزیت دیگه این کار میتونید از قابلیت Multiline بودن اون استفاده کنید. فرض کنید میخواهید ساختار HTML را در قالب یک String در JS داشته باشید.
var finalHTML = '<div class="container">' +واقعا این کار آزار دهنده است اما توی ES6 میتونید به این صورت عمل کنید.
'<div class="row">' +
'<div class="col-md-12">' +
'<p class="text-center">www.Baboon.ir</p>' +
'</div>' +
'</div>' +
'</div>';
var finalHTML = `<div class="container">3️⃣ متد String.startsWith:
<div class="row">
<div class="col-md-12">
<p class="text-center">www.Baboon.ir</p>
</div>
</div>
</div>`;
این متد چک میکند که آیا String با رشته یا کاراکتر مورد نظر شروع میشود یا خیر. اولین آرگومان این متد رشته مورد نظر است و دومین پارامتر یک عدد است که مشخص میکند شروع کجا باشد.
4️⃣ متد String.endsWith:
این متد چک میکند که آیا String با رشته یا کاراکتر مورد نظر خاتمه پیدا میکند یا خیر. اولین آرگومان این متد رشته مورد نظر است و دومین پارامتر یک عدد است که مشخص میکند شروع کجا باشد.
5️⃣ متد String.includes:
این متد چک میکند که یه string در رشته ای وجود دارد یا نه در اصل این متد به دنبال رشته مورد نظر در String میگردد و True یا False بر میگرداند.
6️⃣ متد String.repeat:
این متد String را با تعداد مورد نظر تکرار میکند و بر میگرداند برای مثال اگر "hamid" را با مقدار 3 به این متد بدهیم مقدار "hamidhamidhamid" را برمیگرداند.
7️⃣ متد String.codePointAt:
این متد کد ASCII کاراکتر Index که به آن ارجاع داده شده است را برمیگرد برای مثال اگر رشته "HAMID"را داشته باشیم و مقدار 1 را به این متد بدهیم خواهیم دید کد اسکی کارامتر A که 65 است بازگشت داده میشود. این متدحتی با Unicode و… کاراکتر هایی مثل 𠮷 مشکلی نداره.
8️⃣ متد String.fromCodePoint:
این متد دقیقا بر عکس متد قبل عمل میکند. این متد یک متد Static است یعنی با رشته ای صدا زده نمیشود و به صورت String.fromCodePoint صدا زده میشود.
این متد به مقدار دلخواه عدد میگیرد و کاراکتر موجود در آن کد اسکی را برمیگرداند. برای مثال اگر 65, 66, 67 را به این متد بدهیم مقدار ABC به ما بازگشت داده میشود.
9️⃣ تبدیل رشته به آرایه ها:
برای این کار کافیه به جای استفاده از splitبه صورت زیر عمل کنید.
let arrayOfChars = [..."HAMIDFARAJI"];🔟 حلقه بروی تک تک کاراکتر های رشته:
برای اینکه روی تک تک کاراکتر های یک رشته در JS معمولی باید کارهای زیادی میکردیم اما توی ES6 به راحتی با ایجاد یک for of این کار رو انجام میدید حتی این کار با Unicode و کارامتر های ME هم مشکلی نداره
2@fullStackDevs
3 for (let c of 'HAMID') {
console.log(c);
}
#React
Evergreen, a React UI framework for the web.
فریموورک کامپوننت های جذاب در ریکت
https://evergreen.segment.com
@fullStackDevs
Evergreen, a React UI framework for the web.
فریموورک کامپوننت های جذاب در ریکت
https://evergreen.segment.com
@fullStackDevs
Segment
Evergreen is a React UI Framework for building ambitious products on the web. Made by Segment in San Francisco, CA.
#React #ReactNative #Angular #Vue
A Recap of Frontend Development in 2018
خلاصه توسعه در FrondEnd در سال 2018!
📌 لینک مطلب : https://goo.gl/Fud5au
@fullStackDevs
A Recap of Frontend Development in 2018
خلاصه توسعه در FrondEnd در سال 2018!
📌 لینک مطلب : https://goo.gl/Fud5au
@fullStackDevs
#React
Inside Fiber: in-depth overview of the new reconciliation algorithm in React
Link : https://goo.gl/ceRMrL
#frontEnd #Fiber
@fullStackDevs
Inside Fiber: in-depth overview of the new reconciliation algorithm in React
Link : https://goo.gl/ceRMrL
#frontEnd #Fiber
@fullStackDevs
#Css #Shapes
یه مقاله خوب برای آموزش cssاشکال و چگونگی درست کردن شکل های مختلف با css
📌 لینک :https://goo.gl/XwRzXX
@fullStackDevs
یه مقاله خوب برای آموزش cssاشکال و چگونگی درست کردن شکل های مختلف با css
📌 لینک :https://goo.gl/XwRzXX
@fullStackDevs
#Extention
🌐 اولین Extention Chrome خود را بسازید !
📌 لینک آموزش : https://goo.gl/z2dTG7
@fullStackDevs
🌐 اولین Extention Chrome خود را بسازید !
📌 لینک آموزش : https://goo.gl/z2dTG7
@fullStackDevs
24ways.org
Creating My First Chrome Extension
Jennifer Wong takes the good stuff down from the shelf and pours out a generous measure of know-how on the subject of creating extensions for Google Chrome. Pull up a chair and get ready to find out how the HTML, CSS and JavaScript skills you already possess…