<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های taha</title>
        <link>https://virgool.io/feed/@tahaa</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-07 15:02:39</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/70557/avatar/avatar.png?height=120&amp;width=120</url>
            <title>taha</title>
            <link>https://virgool.io/@tahaa</link>
        </image>

                    <item>
                <title>git</title>
                <link>https://virgool.io/@tahaa/git-dz7xfvg51zph</link>
                <description>خوب اولین دستور گیت git init.برای این که وضعیت رو هم  چک کنیم از git status استفاده می کنیم. فایل ها از وضعیتی که داریم عوض می شن می بریمشون تو stage بعد commit ش می کنیم.خوب یه فایل درست کردیم مثل index.html بعد داخلش یه چیزی نوشتیم.حالا می زنیم git status. می گه یه فایل untraked file داریحالا اگه بخوایم این فایل رو به git اضافه کنیم می زنیم git add index.htmlالان گفتیم که git این فایل رو بشناسه. خوب الان اگه دوباره git status بزنیم می بینم یه newfile داریم یعنی که رفته تو stageحالا باید commit ش کنم اینطوری&quot;یه چیزی همینطوری&quot;   git commit -mحالا باز اگه تغییر ایجاد کردیم باید git add بزنیم تا دوباره برن تو stageاگه بخوایم بگیم همه رو ادد کنgit add -Abranch چیه ؟شما فرض کن داری روی یک پروژه کار می کنی خطی یه چند بار کامیت می کنی وسط یه چیزی هستی هنوز کامیت ش نکردی خوب ما برمیگردیم پروژه قبلی ش بعد مثلا کپچا رو با قبلی کامیت می کنیم بعد می گیم این چیزی که الان دارم روش کار می کنم رو با اونی که کپچا داره mergeش کناولین دستور git branch وقتی می زنیم می گه خوب تو یه branch داری به نام مسترgit branch fixpages اون فایل هایی که html نبود رو درست کنیم مثلامی خوایم بریم تو اون branch که ساختیم مثلاgit checkout fixpages بعد تغییر می دیم برمیگردیم تو branch اصلی حالا می خوایم مرج کنیمgit marge فلان چیزاگه بخوایم یه چیزی رو هم از فایل سیستم و هم ازgit حذف کنیممی شه از git rm اسم اون چیز استفاده کرد برای پاک کردن یک برنچ هم کافیه که git branch -d اسم اون چیزی که می خوایم پاک کنیمیه دستوری داریم به اسم git logمیاد کاریی که کردیم رو نشون می ده.head یعنی اونی که الان داریم روش کار می کنیمکار با حالی که می تونیم بکنیم اینه که بزنیم git diff Headخوب می تونیم وقتی که گیج هم می شیم بزنیم git diff --stagedاگه بخوایم یه چیزی رو از stage بیرون بیاریم git reset page3.htmlاگه کلا یه فایلی رو خراب کردیم و می خوایم برگردونیم به قبلی git checkout -- page2.htmlخوب می خوایم یه جیزی رو clone کنیم چی کار می کنیم می زنیم git clone اون ادرسه که داریم از گیت مثلابعد بخوایم پوش کنیمgit push origin mastergit pull orgian master</description>
                <category>taha</category>
                <author>taha</author>
                <pubDate>Sat, 05 Oct 2019 23:08:40 +0330</pubDate>
            </item>
                    <item>
                <title>CSS In React</title>
                <link>https://virgool.io/@tahaa/css-in-react-ryt2utbnn1of</link>
                <description>خوب می دونید که در jsx می تونیم به صورت  inline به چیزایی که می خوایم style بدیم.const Headers = props =&gt; {
const { brand } = props;
return (
&lt;div&gt;
&lt;h1 style={{ color: &amp;quotblue&amp;quot }}&gt;{brand}&lt;/h1&gt;
&lt;/div&gt;
);
};و همینطور می تونیم یه متغییر تعریف کنیمconst Headers = props =&gt; {
const { brand } = props;
return (
&lt;div&gt;
&lt;h1 style={headingStyle}&gt;{brand}&lt;/h1&gt;
&lt;/div&gt;
);
};
Headers.defaultProps = {
brand: &amp;quotmy app&amp;quot
};
Headers.propTypes = {
brand: PropTypes.object.isRequired
};
const headingStyle = {
color: &amp;quotgreen&amp;quot,
fontSize: &amp;quot50px&amp;quot
};
export default Headers;همینطور می تونیم یه یه فایل جدید css درست کنیم ., import ش می کنیمimport &amp;quot../component/header.css&quot;برای نصب بوت استرپ همnpm install bootstrapبعد اینطوری importش می کنیمimport &amp;quotbootstrap/dist/css/bootstrap.min.css&quot;</description>
                <category>taha</category>
                <author>taha</author>
                <pubDate>Sun, 22 Sep 2019 12:15:47 +0330</pubDate>
            </item>
                    <item>
                <title>Typechecking With PropTypes</title>
                <link>https://virgool.io/@tahaa/typechecking-with-proptypes-fdbuzfjxzufk</link>
                <description>
خوب برای ست کردن یه defaultPropsimport React from &amp;quotreact&quot;
const Headers = props =&gt; {
const { brand } = props;
return (
&lt;div&gt;
&lt;h1&gt;{brand}&lt;/h1&gt;
&lt;/div&gt;
);
};
Headers.defaultProps = {
brand: &#039;my app&#039;
};
export default Headers;بعد کل brand رو باید زا &lt;Headers /&gt;حذف کنیم.خوب حالا my app نمایش داده می شه.خوب برای برسی نوع داده ارسالی تو اون فایل header مون impt + tab که این می شهimport PropTypes from &#039;prop-types&#039;خوب و برای استفاده از این هم اینطوری کد می زنیم :import React from &amp;quotreact&quot;
import PropTypes from &amp;quotprop-types&quot;
const Headers = props =&gt; {
const { brand } = props;
return (
&lt;div&gt;
&lt;h1&gt;{brand}&lt;/h1&gt;
&lt;/div&gt;
);
};
Headers.defaultProps = {
brand: &amp;quotmy app&amp;quot
};
Headers.propTypes = {
brand: PropTypes.string.isRequired
};
export default Headers;در کلاس ها هم می تونیم مثل بالا استفاده کنیم :import React, { Component } from &amp;quotreact&quot;
import PropTypes from &amp;quotprop-types&quot;
class Cont extends Component {
render() {
const { name, email } = this.props;
return (
&lt;div&gt;
&lt;h4&gt;{name}&lt;/h4&gt;
&lt;li&gt;
&lt;ul&gt;email = {email}&lt;/ul&gt;
&lt;ul&gt;&lt;/ul&gt;
&lt;ul&gt;&lt;/ul&gt;
&lt;/li&gt;
&lt;/div&gt;
);
}
}
export default Cont;
Cont.PropTypes = {
name: PropTypes.string.isRequired,
email: PropTypes.string.isRequired
};این شکلی هم می تونی استفاده کنی که بیرون نباشهimport React, { Component } from &amp;quotreact&quot;
import PropTypes from &amp;quotprop-types&quot;
class Cont extends Component {
static propTypes = {
name: PropTypes.string.isRequired,
email: PropTypes.string.isRequired
};
render() {
const { name, email } = this.props;
return (
&lt;div&gt;
&lt;h4&gt;{name}&lt;/h4&gt;
&lt;li&gt;
&lt;ul&gt;email = {email}&lt;/ul&gt;
&lt;ul&gt;&lt;/ul&gt;
&lt;ul&gt;&lt;/ul&gt;
&lt;/li&gt;
&lt;/div&gt;
);
}
}
export default Cont</description>
                <category>taha</category>
                <author>taha</author>
                <pubDate>Sat, 21 Sep 2019 15:19:57 +0430</pubDate>
            </item>
                    <item>
                <title>نگاهی به props</title>
                <link>https://virgool.io/@tahaa/%D9%86%DA%AF%D8%A7%D9%87%DB%8C-%D8%A8%D9%87-props-v4wpzy5iyiar</link>
                <description>شاید بدونید که props مخفف properties است.خوب حالا چه جوری استفاده می کنیم از؟!توی فانکشن طور به شکل زیرimport React from &amp;quotreact&quot;
const Headers = propss =&gt; {
return (
&lt;div&gt;
&lt;h1&gt;{propss.brand}&lt;/h1&gt;
&lt;/div&gt;
);
};
export default Headers;و توی app.js مون هم به شکل زیرimport React from &amp;quotreact&quot;
import Cont from &amp;quot./component/Cont&quot;
import Headers from &amp;quot./component/header&quot;
function App() {
const name = &amp;quotreact&quot;
return (
&lt;div&gt;
&lt;Cont /&gt;
&lt;Headers brand=&amp;quottaha1&amp;quot /&gt;
&lt;/div&gt;
);
}
export default App;خوب تو کلاس کامپوننت ها هم به شکل زیر عمل می کنیمimport React from &amp;quotreact&quot;
import Cont from &amp;quot./component/Cont&quot;
import Headers from &amp;quot./component/header&quot;
function App() {
const name = &amp;quotreact&quot;
return (
&lt;div&gt;
&lt;Cont name=&amp;quottaha&amp;quot email=&amp;quottaha@gmail.com&amp;quot phone=&amp;quot09124805683&amp;quot /&gt;
&lt;Headers brand=&amp;quottaha1&amp;quot /&gt;
&lt;/div&gt;
);
}
export default App;و در اون :import React, { Component } from &amp;quotreact&quot;
class Cont extends Component {
render() {
return (
&lt;div&gt;
&lt;li&gt;
&lt;ul&gt;email = {this.props.email}&lt;/ul&gt;
&lt;ul&gt;&lt;/ul&gt;
&lt;ul&gt;&lt;/ul&gt;
&lt;/li&gt;
&lt;/div&gt;
);
}
}
export default Cont;و همینطور می تونیم به شکل زیر هم استفاده کنیم:import React, { Component } from &amp;quotreact&quot;
class Cont extends Component {
render() {
const { name, email } = this.props;
return (
&lt;div&gt;
&lt;h4&gt;{name}&lt;/h4&gt;
&lt;li&gt;
&lt;ul&gt;email = {email}&lt;/ul&gt;
&lt;ul&gt;&lt;/ul&gt;
&lt;ul&gt;&lt;/ul&gt;
&lt;/li&gt;
&lt;/div&gt;
);
}
}
export default Cont;فانکشن رو هم می تونیم به شکل زیر باز نویسی کنیم :import React from &amp;quotreact&quot;
const Headers = propss =&gt; {
const { brand } = propss;
return (
&lt;div&gt;
&lt;h1&gt;{brand}&lt;/h1&gt;
&lt;/div&gt;
);
};
export default Headers;</description>
                <category>taha</category>
                <author>taha</author>
                <pubDate>Sat, 21 Sep 2019 12:03:25 +0430</pubDate>
            </item>
                    <item>
                <title>Functional Components</title>
                <link>https://virgool.io/@tahaa/functional-components-imdzqdxh6fhp</link>
                <description>خوب بیاین توی همون فولدر Component یه فایل دیگه به اسم header.js درست کنیم.خوب اگه یادتون باشه با rcc یه Component  کلاس درست می کریم حالا کافی برای Functional طور rfc رو بزنیم. خوب ایمپورت کردنش رو هم که گفته بودم تو یادداشت قبلی...خوب برای arrow function هم که کار نداره به شکل زیر اون کدی که با rcc تولید کردیم رو تغییر می دیم:import React from &amp;quotreact&quot;
const Headers = () =&gt; {
return (
&lt;div&gt;
&lt;h1&gt;call me I will help u&lt;/h1&gt;
&lt;/div&gt;
);
}
export default Headers;</description>
                <category>taha</category>
                <author>taha</author>
                <pubDate>Sat, 21 Sep 2019 11:24:07 +0430</pubDate>
            </item>
                    <item>
                <title>کامپوننت ها در ری کت</title>
                <link>https://virgool.io/@tahaa/%DA%A9%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA-%D9%87%D8%A7-%D8%AF%D8%B1-%D8%B1%DB%8C-%DA%A9%D8%AA-cxpmhrqddaku</link>
                <description>خوب برای درست کردن یه کامپوننت توی فولدر src یه فولدر به نام Component می سازیم خوب توش یه فایل می سازیم به اسم Contact.js خوب انگار کامپوننت  رو باید با حرف بزرگ شروعشون کرد.خوب برای کد نویسی من از vscode اسفاده می کنم و یه افزونه داره که پیشنهاد می کنم نصبش کنید.VS Code ES7 React/Redux/React-Native/JS snippetsخوب حالا باز نوشتن rcc می تونیم یه کامپوننت کلاس بسازیم اون export default  رو میاریم در اخر و بعد از export default اسم کامپوننتمون رو می نویسیم.خوب این شکلی شد:import React, { Component } from &amp;quotreact&amp;quot
class contact extends Component {
render() {
return(
&lt;div&gt;
&lt;h4&gt;hello im taha&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;email: taha@gmail.com&lt;/li&gt;
&lt;li&gt;phone number: 09884456859&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
)
}
}
export default contact;خوب  برای نمایش این کامپوننت  باید توی کامپوننت  اصلی اپمون اون رو ایمپورت کنیم.</description>
                <category>taha</category>
                <author>taha</author>
                <pubDate>Sat, 21 Sep 2019 11:04:27 +0430</pubDate>
            </item>
                    <item>
                <title>jsx چیست؟</title>
                <link>https://virgool.io/@tahaa/jsx-%DA%86%DB%8C%D8%B3%D8%AA-hrobgnkjxevj</link>
                <description>همونطور که گفتم قرار نیست من خیلی اکادمیک همه چیز رو توضیح بدم بیشتر یه سری یادداشت است که برای خودم می نویسم تا بعدا اگه لازم شد بخونمش...پس اگه می خوای دقیق تر بدونی jsx چیه می تونی مقاله نیما رو بخونی! jsx چیست؟در واقع jsx یه اکستنشن  ه برای جاواسکریپت که اجازه می ده ما html  مون رو داخل js استفاده کنیم.چند نکته برای استفاده از jsx هست :return (
&lt;div className=&amp;quotApp&amp;quot&gt;
&lt;h1&gt;hello world&lt;/h1&gt;
&lt;/div&gt;
);
}اولیش اینه که برای این که class به یه المان بدیم باید از className استفاده کنیم به جای class.نکته بعدی که باید در نظر بگیرید اینه که return (
&lt;label for=&amp;quottaha&amp;quot&gt;taha&lt;/label&gt;
); نباید از for برای label استفاده کنیم هر چند که مرورگر نمایش می ده اما با همچین اروری مواجه می شیم.همونطور که معلومه باید از htmlfor استفاده کنیم به جای for برای label.در تگ های که تگ بسته ندارند مانند input در jsx شما باید اون تگ رو ببندید مثلا اینطوری&lt;input type=&amp;quottext&amp;quot /&gt;یا مثلا br رو باید اینطوری ازش استفاده کنی:&lt;br /&gt;شما وقتی می خواین یه چیزی رو return کنید باید فقط یک المان رو برگردونید.مثلا اینجوری اشتباه :return (
&lt;div&gt;&lt;h1&gt;hello&lt;/h1&gt;&lt;/div&gt;
&lt;div&gt;&lt;h1&gt;hello&lt;/h1&gt;&lt;/div&gt;
);
}اگه بخوایم درستش کنیم باید اینشکلیش کنیم:return (
&lt;div&gt;
&lt;div&gt;
&lt;h1&gt;hello&lt;/h1&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h1&gt;hello&lt;/h1&gt;
&lt;/div&gt;
&lt;/div&gt;
);
در واقع می تونیم از متغییر ها هم استفاده کنیم برای استفاده هم باید اونا رو داخل {} بزاریم.مثال زیر رو نگاه کن.import React from &amp;quotreact&amp;quot
function App() {
const name = &amp;quotreact&amp;quot
return (
&lt;div&gt;
&lt;h4&gt;hello {name}&lt;/h4&gt;
&lt;/div&gt;
);
}
export default App;
همینطور می تونیم توی {} عملیات های ریاضی رو هم انجام بدیم
return (
&lt;div className=&amp;quotApp&amp;quot&gt;
&lt;h4&gt;what is 1 + 1 = {1 + 1}&lt;/h4&gt;
&lt;/div&gt;
);
}همچنین می تونیم که تو jsx از شرط ها استفاده کنیم مثلا یه متغییر درست می کنیم به نام shownumconst shownum = true;بعد بگیم که اگه shownum درست بود این متن رو نمایش بده:{ shownum ? p&amp;quot&gt; &lt;h4&gt;what is 1 + 1 = {1 + 1}&lt;/h4&gt; : null}همچنین می تونیم متغییر تعریف کنیم که مقدارش بر اساس یه شرطی انfunction App() {
const shownum = true;
let math;
if (shownum) {
math = &lt;h4&gt;{1 + 11}&lt;/h4&gt;;
} else {
math = null;
}
return &lt;div className=&amp;quotApp&amp;quot&gt;{math}&lt;/div&gt;;
}</description>
                <category>taha</category>
                <author>taha</author>
                <pubDate>Thu, 19 Sep 2019 16:10:44 +0430</pubDate>
            </item>
                    <item>
                <title>چه جوری ریکت نصب کردم!</title>
                <link>https://virgool.io/@tahaa/%DA%86%D9%87-%D8%AC%D9%88%D8%B1%DB%8C-%D8%B1%DB%8C%DA%A9%D8%AA-%D9%86%D8%B5%D8%A8-%DA%A9%D8%B1%D8%AF%D9%85-seqg41hxdswd</link>
                <description>من برای کد نویسی از vscode استفاده می کنم.از تب terminal روی گزینه ی new terminal رو انتخاب کنید.بعدش تو ترمینال این دو تا رو چک می کنید. که نصب باشنnpm --version
node --versionاگه نصب نبود هم از این ادرس می تونید دانلود کنید.حالا تو ترمینال npm install -g create-react-appیکم صبر کنید تا نصب شه حالا می تونیم از پکیج نصب شده استفاده کنیم تا اپ مون رو بسازیمcreate-react-app alakiبرای مثال اسم اپ من taha است ...create-react-app tahaخوب صبر می کنیم تا کاراش تموم شهبعد هم برای شروع همون پیشنهاد هاش رو تو ترمینال وارد کنیدcd taha
npm startو از ریکت لذت ببرید:)</description>
                <category>taha</category>
                <author>taha</author>
                <pubDate>Mon, 16 Sep 2019 10:21:48 +0430</pubDate>
            </item>
                    <item>
                <title>Map() js</title>
                <link>https://virgool.io/@tahaa/map-js-bkuc1tmrchvq</link>
                <description>خوب تو ریکت باید خیلی خوب به es6 مسلط باشید منم در این راه داشتم یکم با Filter و Map و Reduce کار می کردم که به نظرم یکی از بهترین راهنما ها این نوشته تو ویرگوله  به نظرم یه سر بهش بزنید.توابع مرتبه بالا(Higher-Order Functions) در جاوا اسکریپتولی یکم تو توضیح Reduce گنگ بود به نظرم!این عکس رو از همون نوشته ور داشتم که اول بهش لینک دادمخوب نگاه کنید ما از filter همونطور که از اسمش پیدا ست زمانی استفاده می کنیم که بخوایم فیلتر کنیم(چقدر خوب توضیح دادم;(  مثلا) شما فکر کنید یه آرایه دارید که یه سری مشخصات توشه مثلا می خواین اون هایی که سنشون بیشتر از 18 پیدا کنید اون موقع از filter  استفاده می کنید برای مثال بیشتر به همون لینک بالا مراجعه کنید.از map هم برای زمانی که بخواین یه کار رو روی تک تک اعضا انجام بدید مثلا بخوایم تک تک اعضا رو به توان دو برسونیم اینا که تکرار از همون مطلب توابع مرتبه بالا(Higher-Order Functions) در جاوا اسکریپت است حالا چیز جدید که می خوام اضافه کنم reduce است.که اگه حال دارید به صورت تصوری ببینید فانکشنال js بدون درد و خونریزی - بخش یک reduce ادی به خوبی توضیح داده.خوب اگه تو دیکشنری بسرچید reduce معنی هاش می شهخرد کردن، کاستن، خرد ساختن، کم کردن، تقلیل دادن، تنزل دادن، مطیع کردن، ساده کردن، استحاله کردندر واقع با reduce  می شه آرایه مون رو کوچیک کرد خرد کرد یا ساده کرد.let alaki=[1,2,3,4,5].reduce((a,b)=&gt;a+b);
console.log(alaki);به نظرم اینجا ادی خیلی خوب توضیح میده می گه که بیاین کنسول لاگ بگیریم از این که reduce چه  جوری کار می کنه .let some =[1,2,3,4,5].reduce((a,b)=&gt;{
console.log(`a is ${a} , b is ${b}`)
return a+b
});این کنسول لاگشهخوب اول میاد عضو صفرم و اول رو با هم جمع می کنه.بعد میاد جمع یک و دو رو می گیره a بعد با دومین (یعنی 3) عضو توی ارایه جمع می کنه می شه 6 بعد باز میاد این  6 رو می گیره a و با سومین عضو جمع می کنه و این ادامه پیدا می کنهfunctional programming جاوااسکریپت javascript reduce فانکشنال پروگرمینگ×</description>
                <category>taha</category>
                <author>taha</author>
                <pubDate>Sun, 15 Sep 2019 12:41:29 +0430</pubDate>
            </item>
                    <item>
                <title>Destructuring در ابجکت ها</title>
                <link>https://virgool.io/@tahaa/destructuring-%D8%AF%D8%B1-%D8%A7%D8%A8%D8%AC%DA%A9%D8%AA-%D9%87%D8%A7-jb5rrpbgl8mk</link>
                <description>خوبDestructuring  در ابجکت ها هم زیاد سخت نیست let obj ={  name:&#x27;taha&#x27;,  age:18,  job:&#x27;dev&#x27;}let {name,age} = obj;console.log(name,age);من عاشق جاوا اسکریپتم و دارم بیشتر یاد می گیرم و در حال یادگیری یه سری یادداشت ها ور می دارم که بعد اگه نیاز شد دوباره مرورشون کنم. دوره آموزشی جاوااسکریپت ES6 که دارم می بینم. </description>
                <category>taha</category>
                <author>taha</author>
                <pubDate>Thu, 12 Sep 2019 22:44:50 +0430</pubDate>
            </item>
                    <item>
                <title>Destructuring در آرایه‌ها</title>
                <link>https://virgool.io/@tahaa/destructuring-%D8%AF%D8%B1-%D8%A2%D8%B1%D8%A7%DB%8C%D9%87%D9%87%D8%A7-allo30o2nxgl</link>
                <description>خوب ما در es5 چی کار می کردیم برای تعریف و دسترسی ؟!let profile = [&quot;taha&quot;,18,&quot;dev&quot;];let a = profile[0];let b = profile[1];console.log(a,b)ولی حالا در es6 به این شکل تعریف می کنیم:let arry = [&#x27;taha&#x27;,29,&#x27;dev&#x27;];let[a,b,c] = arry;console.log(a,b,c);حالا اگه یه اریه که وجود نداره اشاره کنیم مطمنان undefined می گیریمlet arry = [&#x27;taha&#x27;,29,&#x27;dev&#x27;];let[a,b,c,f] = arry;console.log(a,b,c,f);اما یک امکان جدید در es6 اینه که می تونیم مقدار اولیه هم تعریف کنیم:let arry = [&#x27;taha&#x27;,29,&#x27;dev&#x27;];let[a,b,c,f=&#x27;allllkkkiii&#x27;] = arry;console.log(a,b,c,f);من عاشق جاوا اسکریپتم و دارم بیشتر یاد می گیرم و در حال یادگیری یه سری یادداشت ها ور می دارم که بعد اگه نیاز شد دوباره مرورشون کنم. دوره آموزشی جاوااسکریپت ES6 که دارم می بینم.</description>
                <category>taha</category>
                <author>taha</author>
                <pubDate>Thu, 12 Sep 2019 22:36:23 +0430</pubDate>
            </item>
                    <item>
                <title>رشته‌ها در ES6</title>
                <link>https://virgool.io/@tahaa/%D8%B1%D8%B4%D8%AA%D9%87%D9%87%D8%A7-%D8%AF%D8%B1-es6-bdosslm2m14c</link>
                <description>خوب ما در جاواسکریپت es5 وقتی داشتیم یه متغییر تعریف می کردیم نمی تونستیم فاصله تو خود value بزاریم و ارور می گرفت.مثلا:let name = &quot;tahahaaaaa&quot;;let jobtitle =&#x27;blablabla&#x27;;console.log(jobtitle);و ارور می گیریم اما تو es6 ما قبلیت رو داریم که اینتر هم بزنیم حالا می گید چه جوری با از اینا &#x60; از اینا که اسمش رو نمی دونم برای من سمت چپ بالاست اگه اسمش رو می دونید خوشحال می شم کامنت ش کنید.در واقع اگه همین رو اینطوری بنویسیم :let name = &quot;tahahaaaaa&quot;;let jobtitle =&#x60;blablabla&#x60;;console.log(jobtitle);همه چی درسته و برامون کنسول لاگ می گیره .حالا این &#x60; یه قابلیت دیگه هم داره که مثلا ما می خوایم از یه متغییر دیگه هم استفاده کنیممثلا :let name = &quot;tahahaaaaa&quot;;let jobtitle =&#x60;blablabla   ${name} &#x60;;console.log(jobtitle);بعله اینطوری از یه متغییر دیگه هم می شه استفاده کرد.اینم کنسولش &quot;blablabla   tahahaaaaa &quot;من عاشق جاوا اسکریپتم و دارم بیشتر یاد می گیرم و در حال یادگیری یه سری یادداشت ها ور می دارم که بعد اگه نیاز شد دوباره مرورشون کنم. دوره آموزشی جاوااسکریپت ES6 که دارم می بینم.</description>
                <category>taha</category>
                <author>taha</author>
                <pubDate>Thu, 12 Sep 2019 21:46:52 +0430</pubDate>
            </item>
                    <item>
                <title>حلقه for of</title>
                <link>https://virgool.io/@tahaa/%D8%AD%D9%84%D9%82%D9%87-for-of-r6wa1wtczxtp</link>
                <description>خوب for of توی es6 اضافه شده و تقریبا با خود if تفاوت چندانی ندارد:let array = [&quot;taha&quot;,18,&quot;dev&quot;];شمارنده رو تعریف کردیمlet i;for (i of array){  console.log(i)}من عاشق جاوا اسکریپتم و دارم بیشتر یاد می گیرم و در حال یادگیری یه سری یادداشت ها ور می دارم که بعد اگه نیاز شد دوباره مرورشون کنم. دوره آموزشی جاوااسکریپت ES6 که دارم می بینم.</description>
                <category>taha</category>
                <author>taha</author>
                <pubDate>Thu, 12 Sep 2019 21:26:57 +0430</pubDate>
            </item>
                    <item>
                <title>بررسی Object Literal</title>
                <link>https://virgool.io/@tahaa/%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-object-literal-r0dqsntg6xaw</link>
                <description>خوب تو پست قبلی درباره توابع به صورت Arrow یه خلاصه ای نوشتم.در es5 چه جوری یه الجکت تعریف می کردیم؟!var obj = { name : &#x27;taha&#x27;,  age : 18};console.log(obj.name)می تونیم داخل key رو هم به شکل زیر پر کنیم(یعنی داینامیکش کنیم):var name = &#x27;taha&#x27;;var obj = { name,  age : 18};console.log(obj.name)جالبه که خود key رو هم می تونیم یه رشته ش کنیمvar obj = { &quot;name&quot;= &quot;taha&quot;,  age : 18};console.log(obj[&quot;name&quot;]);توی es6 می شه name رو هم به صورت داینامیک تعریفش کرد:(در واقع key رو هم به صورت رشته  تعریف کردیم)let emailAdd = &quot;email&quot;;let obj ={  name:&#x27;taha&#x27;,  [emailAdd]: &quot;taha@taha.com&quot;}console.log(obj[&quot;email&quot;])بدنیست تو babel بزنید و ببینید تو es5 چه جوری می نوشتن این یه تیکه کد رو:)من عاشق جاوا اسکریپتم و دارم بیشتر یاد می گیرم و در حال یادگیری یه سری یادداشت ها ور می دارم که بعد اگه نیاز شد دوباره مرورشون کنم. دوره آموزشی جاوااسکریپت ES6 که دارم می بینم.</description>
                <category>taha</category>
                <author>taha</author>
                <pubDate>Thu, 12 Sep 2019 21:17:15 +0430</pubDate>
            </item>
                    <item>
                <title>تعریف توابع به صورت Arrow</title>
                <link>https://virgool.io/@tahaa/%D8%AA%D8%B9%D8%B1%DB%8C%D9%81-%D8%AA%D9%88%D8%A7%D8%A8%D8%B9-%D8%A8%D9%87-%D8%B5%D9%88%D8%B1%D8%AA-arrow-nwkovrkbqspx</link>
                <description>خوب یادداشت قبلی درباره let , const بود .همانطور که گفتم برای نوشتن کد هام دارم از  jsbin استفاده می کنم.خوب قبلا در es5 ما توابع رو به صورت زیر تعریف می کردیم:function myfunc() { console.log(&#x27;hello world&#x27;);}myfunc();ولی در es6 می تونیم به صورت زیر تعریف کنیم:var firstfunc = () =&gt; {   console.log(&#x27;alaki&#x27;)}فراخونیش هم همون شکلیه که بوده :)firstfunc ();خوب یه مثال به es5function sum(a,b) {   var all = a + b;  return all;}var something = sum(5,6);console.log(something);حالا با es6var sum = (a,b) =&gt; {   var all = a + b;  return all;}console.log(sum(5,5));فرض کنید تابع داریم :var sum = (a,b) =&gt; {   var all = a + b;  return all;}console.log(sum(5,5));تو es6 به ورودی ها می شه مقدار دیفالت دادvar sum = (a,b=5) =&gt; {   var all = a + b;  return all;}console.log(sum(5,5));و باز هم همون نتیجه رو می تونید ببیند...مطمنان با babeljs آشنا هستیداگه همین تیکه کد رو تبدیل به es5 کنیم به این شکل می شه&quot;use strict&quot;;var sum = function sum(a) {  var b = arguments.length &gt; 1 &amp;&amp; arguments[1] !== undefined ? arguments[1] : 5;  var all = a + b;  return all;};console.log(sum(5));درواقع کوتاه تر شده کد نویسی مون.من عاشق جاوا اسکریپتم و دارم تازه یاد می گیرم و در حال یادگیری یه سری یادداشت ها ور می دارم که بعد اگه نیاز شد دوباره مرورشون کنم. دوره آموزشی جاوااسکریپت ES6 که دارم می بینم.</description>
                <category>taha</category>
                <author>taha</author>
                <pubDate>Wed, 11 Sep 2019 15:13:34 +0430</pubDate>
            </item>
                    <item>
                <title>es6در let</title>
                <link>https://virgool.io/justforfun/es6%D8%AF%D8%B1-let-nifb1jbrmvgl</link>
                <description>من برای نوشتن کد هام از jsbin استفاده می کنم.if(true){  var age = 29}console.log(age)خوب اگه از این کد کنسول لاگ بگیرید خارج از if مقدار age رو بهتون برمی گردونه، انتظار همچین چیزی رو هم داریم چون در es5 همین جوری کد می زدیم.اما اگه حالا به جای var از let استفاده کنیم:if(true){  let age = 29}console.log(age)در jsbin با همچین اروری روبه رو خواهیم شد:&quot;ReferenceError: age is not defined    at zowulejiwo.js:4:38    at https://static.jsbin.com/js/prod/runner-4.1.7.min.js:1:13924    at https://static.jsbin.com/js/prod/runner-4.1.7.min.js:1:10866&quot;که داره می گه که age تعریف نشده است.اگه در jsbin  دقیق تر نگاه کنید :هشدار let در jsbin در واقع داره می گه که این let که شما استفاده کردید در es6 ه و ممکن تمام مرورگر ها اون رو نفهمن.فکر کنم تا اینجای کار فهمیده باشید که چرا وقتی کنسول گرفتیم ارور رو دیدیم در واقع در es6 متغییر ها می توانند به صورت محلی و سراسری تعریف بشن.درواقع age در اینجا یک متغییر محلی است.بیاین یه جور دیگه این کد رو بنویسیم:if(true){  let age = 29  console.log(age)}حالا که کنسول رو اوردیم داخل بلاک کد می تونیم اون age رو ببینم.در es5 هیچ مشکلی وجود نداره که شما اول به متغییر مقدار بدید بعد تعیریفش کنید:age = 5;var age;console.log(age);اما اگه همین کار رو با let انجام بدید شما ارور می گیرید:age = 5;let age;console.log(age);و ارورش:&quot;error&quot;&quot;ReferenceError: Cannot access &#x27;age&#x27; before initialization    at zowulejiwo.js:1:10    at https://static.jsbin.com/js/prod/runner-4.1.7.min.js:1:13924    at https://static.jsbin.com/js/prod/runner-4.1.7.min.js:1:10866&quot;اما مقدار دهی بعد از تعریف مشکلی نداره:let age;age = 5;console.log(age);و کار می کنهههههه.اول تعریف بعد مقدار دهی.یه کیبورد دیگه برای تعریف متغییر const است که برای ثابت ها ازش استفاده می کنیم.مقداری که در طول برنامه نویسی تغییر نمی کنه.const a = 29;a = 30;وقتی که سعی کردیم دوباره به اون مقدار بدیم همچین اروری بر خوردیم:&quot;error&quot;&quot;TypeError: Assignment to constant variable.    at zowulejiwo.js:3:3    at https://static.jsbin.com/js/prod/runner-4.1.7.min.js:1:13924    at https://static.jsbin.com/js/prod/runner-4.1.7.min.js:1:10866&quot;من عاشق جاوا اسکریپتم و دارم تازه یادمی گیرم و در حال یادگیری یه سری یادداشت ها ور می دارم که بعد اگه نیاز شد دوباره مرورشون کنم. دوره آموزشی جاوااسکریپت ES6 که دارم می بینم.</description>
                <category>taha</category>
                <author>taha</author>
                <pubDate>Wed, 11 Sep 2019 11:23:51 +0430</pubDate>
            </item>
            </channel>
</rss>