با سلام
توضیحاتی مختصر در مورد کانال
محتوای کانال @TipOverflow در مورد تیپ هایی (Tip) هستند که در طول عمر کار فنی (برنامه نویسی) یاد می گیرید و استفاده می کنید و بعضا باعث بالابردن خوانایی برنامه، کوتاه کردن کد، بهبود Performance و موضوعاتی از این قبیل هستند.
در صورتی که علاقه دارید کاربران کانال از تیپ های شما استفاده کنند، برای ما ارسال کنید تا با نام کاربری شما روی کانال فوروارد کنیم.
همچنین در صورتی که در توئیتر از تگ #TipOverflow استفاده کنید و یا اکانت TipOverflow را منشن کنید، Retweet می کنیم تا دوستان علاقه مند بتوانند استفاده کنند.
اکانت ما در توئیتر
TipOverflow
چند نکته:
1- جهت مختصر نویسی در پست ها، تمام مباحث و Syntaxهای ES6+ با #javascript تگ می شوند.
2- هر جا تفکیک بر اساس platform صورت نگرفته یعنی در کلیه زیرشاخه های Platform قابل استفاده هستند (بعنوان مثال تگ #react هم در #react_native و هم #react_js قابل استفاده هست).
3- تیپ ها (Tip) بر اساس سطح آنها در سه دسته #سطح_مبتدی ، #سطح_متوسط ، #سطح_پیشرفته آورده شده است.
#about
توضیحاتی مختصر در مورد کانال
محتوای کانال @TipOverflow در مورد تیپ هایی (Tip) هستند که در طول عمر کار فنی (برنامه نویسی) یاد می گیرید و استفاده می کنید و بعضا باعث بالابردن خوانایی برنامه، کوتاه کردن کد، بهبود Performance و موضوعاتی از این قبیل هستند.
در صورتی که علاقه دارید کاربران کانال از تیپ های شما استفاده کنند، برای ما ارسال کنید تا با نام کاربری شما روی کانال فوروارد کنیم.
همچنین در صورتی که در توئیتر از تگ #TipOverflow استفاده کنید و یا اکانت TipOverflow را منشن کنید، Retweet می کنیم تا دوستان علاقه مند بتوانند استفاده کنند.
اکانت ما در توئیتر
TipOverflow
چند نکته:
1- جهت مختصر نویسی در پست ها، تمام مباحث و Syntaxهای ES6+ با #javascript تگ می شوند.
2- هر جا تفکیک بر اساس platform صورت نگرفته یعنی در کلیه زیرشاخه های Platform قابل استفاده هستند (بعنوان مثال تگ #react هم در #react_native و هم #react_js قابل استفاده هست).
3- تیپ ها (Tip) بر اساس سطح آنها در سه دسته #سطح_مبتدی ، #سطح_متوسط ، #سطح_پیشرفته آورده شده است.
#about
Twitter
TipOverflow (@TipOverflow) | Twitter
The latest Tweets from TipOverflow (@TipOverflow). نکات #برنامهنویسی #استارتاپها، #کارآفرینی، و مسائل #فنی
بدست آوردن آدرس IP کاربر در #PHP
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
#بکاند #IP #سطح_متوسطجمع اعداد به هر تعداد در #javascript
#سطح_مبتدی
function sum(...args) {
return args.reduce((p, c) => {
return p + c;
});
}
sum (1,2,3); // Output: 6
sum (20, 30, 40 , 50, 60) // Output: 200
sum(...[20,30,40,50,60]); // Output: 200#سطح_مبتدی
👍1
بدست آوردن نوع فایل تصویر (MIME Type) در #PHP
function getImageType($imageFile)#بکاند #image #کار_با_تصاویر #MIME_TYPE #سطح_متوسط
{
$info = getimagesize($imageFile);
return $info['mime'];
}
getImageType('a.png');
// Output: 'image/png'
👍1
نحوه استفاده از مقادیر enum بصورت بیتی در #c_sharp
#سطح_متوسط
[Flags]
enum Colors
{
Red = 2,
Green = 4,
Blue = 8,
Black = 16
}
قطعه کد پایین، رشته "Red Green Blue" را چاپ می کند. در صورتی که [Flags] از کد حذف شود عدد 14 چاپ می شود.int Purple = 14;
Console.WriteLine((Colors)Purple);#سطح_متوسط
غیرفعال کردن راست کلیک در صفحه با #jQuery
$(document).ready(function(){
$(document).bind("contextmenu", function(e){
return false;
});
});
#فرانتاند #javascript #سطح_مبتدیالحاق دو آرایه با استفاده از Spread Syntax در #javascript
#spread_syntax #سطح_متوسط
let firstArray = [1, 2],
secondArray = [3, 4];
[...thirdArray] = [...firstArray, ...secondArray];
console.log(thirdArray); // [1, 2, 3, 4]#spread_syntax #سطح_متوسط
👍1
سه نقطه گذاشتن در آخر متنها طولانی با #CSS
این کلاس را به هر المنتی در صفحه بدهید، در صورتی که متن آن بیشتر از یک خط باشد و داخل آن جا نشود، در انتهای متن سه نقطه ... قرار میدهد
این کلاس را به هر المنتی در صفحه بدهید، در صورتی که متن آن بیشتر از یک خط باشد و داخل آن جا نشود، در انتهای متن سه نقطه ... قرار میدهد
.text-ellipsis {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
#فرانتاند #javascript #سطح_مبتدی👍1
در #javascript برای مقدار دهی پیش فرض به یک متغیر در صورتی که property با همون نام روی object تعریف نشده باشه
let node = {
name: "foo",
parent: { }
};
let {parent:{name:parentName='bar'}}= node;
console.log(parentName); // bar
#سطح_متوسطبازگرداندن چند مقدار از یک متد در #c_sharp با استفاده از Tuple
public Tuple<int, int> MultipleValue()
{
return Tuple.Create(1,2);
}
#سطح_پیشرفتهبعضی کدهای #CSS سرعت اجرای بالاتری نسبت به مشابه آنها دارد. به عنوان مثال کد زیر:
.cls1 > .cls2 > .cls3 {
...
}
سرعت اجرای بالاتری نسب به کد زیر دارد:.cls1 .cls2 .cls3 {
...
}
#فرانتاند #performance #سطح_مبتدیخواندن مقادیر آرایه ها و حذف آنها در یک زمان بدون استفاده از حلقه for در #javascript
let colors = ['first', 'second', 'third'];
while ( ( [item,...colors ] = colors ).length ) {
console.log(item);
}
#spread_syntax #سطح_متوسطاعتبار سنجی مقادیر داخل متغییرها در #PHP
استفاده از تابع
استفاده از تابع
filter_var
مثال: چک میکند که داده ورودی از نوع عددی است یا خیر:if (filter_var(10, FILTER_VALIDATE_BOOLEAN))مثال: چک میکند که داده ورودی یک آدرس ایمیل معتبر میباشد یا خیر:
{ ... }
if (filter_var('info@gmail.com', FILTER_VALIDATE_EMAIL))
{ ... }
#بکاند #سطح_مبتدیدر #react برای استفاده از شرط ها در #JSX می تونید از do expression که به تازگی در ECMAScript اضافه شده استفاده کنید. این ویژگی هنوز در stage-1 هست و در حال حاضر فقط در صورتی که از یک transpiler (مثل babel) استفاده می کنید قابل اجراست.
const aComponent = () => {
return (
<div>
{
do => {
if (condition && condition2 && !consition3) {
if (consition4) {
<p>foo</p>
} else if (condition5) {
<p>bar</p>
} else {
<p>baz</p>
}
} else {
<p>qux</p>
}
}
}
</div>
)
};
#سطح_پیشرفتهGitHub
GitHub - tc39/proposal-do-expressions: Proposal for `do` expressions
Proposal for `do` expressions. Contribute to tc39/proposal-do-expressions development by creating an account on GitHub.
در #Javascript از این راه برای کوتاه کردن کد بدون نوشتن صفرهای متوالی در اعدا استفاده کنید
for (let i = 0; i < 1e7; i++) { ... }
تمام این موارد true برمی گردونه1e0 === 1;
1e7 === 10000000;
2e1 === 20;
2e2 === 200;
#سطح_متوسطکپی گرفتن از یک جدول در #SQL
توسط دستور زیر میتوانید، ساختار یک جدول را کپی کرده و یک جدول جدید مانند جدول قبل خواهید داشت.
توسط دستور زیر میتوانید، ساختار یک جدول را کپی کرده و یک جدول جدید مانند جدول قبل خواهید داشت.
-- Copy structure and data#بانک_اطلاعاتی #mssql #سطح_مبتدی
SELECT * INTO NewTbl FROM Tbl1
-- Copy structure only
SELECT * INTO Tbl1_Copy FROM Tbl1 WHERE 1=0
-- Copy structure only
SELECT TOP(0) * INTO Tbl1_Copy FROM Tbl1
در #javascript از نحوه دستوری Destructuring assignment برای ذخیره مقادیر ایندکس های موردنظر از یک آرایه در چند متغیر طی یک دستور استفاده کنید:let colors =
['red', 'green', 'blue', 'black', 'purple'];
const [ , , thirdColor, , fifthColor] = colors;
console.log(thirdColor); // blue
console.log(fifthColor); // purple#destructuring_assignment #سطح_متوسط
👍1
تبدیل آرایه به CSV در #PHP
function array2csv($input, $delimiter = ',', $enclosure = '"')#بکاند #آرایه #CSV #سطح_پیشرفته
{
$fp = fopen('php://temp', 'r+');
fputcsv($fp, $input, $delimiter, $enclosure);
rewind($fp);
$data = fread($fp, 1048576);
fclose($fp);
return rtrim($data, "\n");
}
در #Javascript برای پیداکردن بیشترین مقدار در یک آرایه لازم نیست حتما از حلقه استفاده کنید. فقط آرایه رو با استفاده از spread operator ها به تابع ()Math.max پاس بدید:
#سطح_متوسط #spread_syntax
let values = [1, 999, 2];می تونید اعداد دیگه رو هم برای مقایسه با مقادیر آرایه اضافه کنید
Math.max(...values);
Math.max(...values, 1000, 998);یکی از کاربردهای این ترفند می تونه تعیین مقدار پیش فرض برای متغیرها باشه. در این مثال اگر عدد مثبت پیدا نشد مقدار پیش فرض صفر داده میشه
let negatives = [-123, -456, -789];
const aValue = Math.max(...negatives, 0);#سطح_متوسط #spread_syntax
👍1