SlideShare a Scribd company logo
1 of 114
Download to read offline
‫ﺍﻟﺮﺣﻴﻢ‬ ‫ﺍﻟﺮﺣﻤﻦ‬ ‫ﷲ‬ ‫ﺑﺴﻢ‬
‫ﺩﻭﺭﺓ‬:ECMAScript 6)‫ﺳﻜﺮﺑﺖ‬ ‫ﻟﻠﺠﺎﻓﺎ‬ ‫ﺗﺤﺪﻳﺪﺍ‬(
‫ﺗﻘﺪﻳﻢ‬:‫ﺣﻤﻴﺪ‬ ‫ﺃﺑﻮ‬ ‫ﺣﻜﻤﺖ‬ ‫ﺃﻧﻴﺲ‬.
‫ﺍﻹﻟﻜﺘﺮﻭﻧﻲ‬ ‫ﺍﻟﺒﺮﻳﺪ‬:nees.com2aneeshikmat@
‫ﺍﻹﻟﻜﺘﺮﻭﻧﻲ‬ ‫ﺍﻟﻤﻮﻗﻊ‬:nees.com2www.
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
‫ﺍﻟﻔﻬﺮﺱ‬
‫ﺍﻟﻤﻘﺪﻣﺔ‬)‫ﺍﻟﻤﻘﺪﻣﺔ‬ ‫ﻫﺬﻩ‬ ‫ﻓﻲ‬ ‫ﻭﺭﺩ‬ ‫ﻣﺎ‬ ‫ﻋﻠﻰ‬ ‫ﺍﻹﻁﻼﻉ‬ ‫ﺗﻨﺴﻰ‬ ‫ﻻ‬(
ECMAScript
ECMAScript & Browsers Support
6Running ECMAScript
let Keyword
KeywordConst
Destruct Values
ValuesDefault Function Arguments
operatorJS spread “…”
Template Strings ` `
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
‫ﺍﻟﻔﻬﺮﺱ‬
Function =>Arrow
Keyword on JSClass
Loopfor of
o” Literal0“
b" Literal0"
Yield Keyword & Fun *()
Set Object
Map Object
JS modules)‫ﻓﻘﻂ‬ ‫ﺳﺮﻳﻌﺔ‬ ‫ﻧﺒﺬﺓ‬(
‫ﺍﻟﺨﺎﺗﻤﺔ‬
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
‫ﺍﻟﻤﻘﺪﻣﺔ‬
‫ﺍﻟﺮﺣﻴﻢ‬ ‫ﺍﻟﺮﺣﻤﻦ‬ ‫ﷲ‬ ‫ﺑﺴﻢ‬
‫ﺃﻧﻮﺍﺭ‬ ‫ﺇﻟﻰ‬ ‫ﻭﺍﻟﻮﻫﻢ‬ ‫ﺍﻟﺠﻬﻞ‬ ‫ﻅﻠﻤﺎﺕ‬ ‫ﻣﻦ‬ ‫ﺑﺎﻹﺳﻼﻡ‬ ‫ﺃﺧﺮﺟﻨﺎ‬ ‫ﺍﻟﺬﻱ‬ ‫ﺤﻤﺪ ہﻠﻟ‬
‫ﻭﺍﻟﺤﻤﺪ ہﻠﻟ‬ ، ‫ﺍﻟﺸﻬﻮﺍﺕ ﺇﻟﻰ ﺟﻨﺎﺕ ﺍﻟﻘﺮﺑﺎﺕ‬ ‫ﻭﻣﻦ ﻭﺣﻮﻝ‬ ، ‫ﻤﻌﺮﻓﺔ ﻭﺍﻟﻌﻠﻢ‬
‫ﻭﺟﻌﻞ‬ ‫ﺍﻹﺳﻼﻡ‬ ‫ﻭﺷﺮﻉ‬ ، ‫ﻋﻮﺟﺎ‬ ‫ﻟﻪ‬ ‫ﻳﺠﻌﻞ‬ ‫ﻭﻟﻢ‬ ‫ﺍﻟﻜﺘﺎﺏ‬ ‫ﻋﺒﺪﻩ‬ ‫ﻋﻠﻰ‬ ‫ﺃﻧﺰﻝ‬ ‫ﺍﻟﺬﻱ‬
، ‫ﺑﻪ‬ ‫ﺗﻤﺴﻚ‬ ‫ﻟﻤﻦ‬ ً‫ﺎ‬‫ﺃﻣﻨ‬ ‫ﻓﺠﻌﻠﻪ‬ ، ‫ﻏﺎﻟﺒﻪ‬ ‫ﻣﻦ‬ ‫ﻋﻠﻰ‬ ‫ﺃﺭﻛﺎﻧﻪ‬ ‫ﻭﺃﻋﺰ‬ ، ً‫ﺎ‬‫ﻣﻨﻬﺠ‬ ‫ﻟﻪ‬
ً‫ﺍ‬‫ﻭﻧﻮﺭ‬ ، ‫ﻋﻨﻪ‬ ‫ﺧﺎﺻﻢ‬ ‫ﻟﻤﻦ‬ ً‫ﺍ‬‫ﻭﺷﺎﻫﺪ‬ ، ‫ﺑﻪ‬ ‫ﺗﻜﻠﻢ‬ ‫ﻟﻤﻦ‬ ً‫ﺎ‬‫ﻭﺑﺮﻫﺎﻧ‬ ، ‫ﺩﺧﻠﻪ‬ ‫ﻟﻤﻦ‬ ً‫ﺎ‬‫ﻭﺳﻠﻤ‬
، ‫ﺗﻮﺳﻢ‬ ‫ﻟﻤﻦ‬ ً‫ﺔ‬‫ﻭﺁﻳ‬ ، ‫ﺗﺪﺑﺮ‬ ‫ﻟﻤﻦ‬ ً‫ﺎ‬‫ﻭﻟﺒ‬ ، ‫ﻋﻘﻞ‬ ‫ﻟﻤﻦ‬ ً‫ﺎ‬‫ﻭﻓﻬﻤ‬ ، ‫ﺑﻪ‬ ‫ﺍﺳﺘﻀﺎء‬ ‫ﻟﻤﻦ‬
‫ﻟﻤﻦ‬ ‫ﻭﺛﻘﺔ‬ ، ‫ﺻﺪﻕ‬ ‫ﻟﻤﻦ‬ ‫ﻭﻧﺠﺎﺓ‬ ، ‫ﺍﺗﻌﻆ‬ ‫ﻟﻤﻦ‬ ‫ﻭﻋﺒﺮﺓ‬ ، ‫ﻋﺰﻡ‬ ‫ﻟﻤﻦ‬ ً‫ﺓ‬‫ﻭﺗﺒﺼﺮ‬
‫ﺻﺒﺮ‬ ‫ﻟﻤﻦ‬ ‫ﻭﺟﻨﺔ‬ ، ‫ﻓﻮﺽ‬ ‫ﻟﻤﻦ‬ ‫ﻭﺭﺍﺣﺔ‬ ، ‫ﺗﻮﻛﻞ‬.)‫ﺍﻟﻨﺎﺑﻠﺴﻲ‬ ‫ﻟﻠﺪﻛﺘﻮﺭ‬ ‫ﺍﻹﺳﻼﻡ‬ ‫ﻓﻲ‬ ‫ﻭﻣﻀﺎﺕ‬ ‫ﻛﺘﺎﺏ‬ ‫ﻣﻘﺪﻣﺔ‬(
‫ﺍﻟﺤﺮﻛﺎﺕ‬ ‫ﻭﻋﺪﺩ‬ ،‫ﻳﻜﻮﻥ‬ ‫ﻣﺎ‬ ‫ﻭﻋﺪﺩ‬ ،‫ﻛﺎﻥ‬ ‫ﻣﺎ‬ ‫ﻋﺪﺩ‬ ،‫ﺍﻟﻌﺎﻟﻤﻴﻦ‬ ‫ﺭﺏ‬ ‫ﺤﻤﺪ ہﻠﻟ‬
‫ﻭﺍﻟﺴﻜﻮﻥ‬.
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
‫ﺍﻟﻤﻘﺪﻣﺔ‬
‫ﺍﻝ‬ ‫ﻭﻫﻮ‬ ،‫ﺟﺪﻳﺪ‬ ‫ﻣﻮﺿﻮﻉ‬ ‫ﻋﻦ‬ ،‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ﺑﺈﺫﻥ‬ ،‫ﺍﻟﻴﻮﻡ‬ ‫ﺳﻨﺘﺤﺪﺙ‬
ECMAScript 6‫ﻋﻦ‬ ‫ﺑﺎﻟﺤﺪﻳﺚ‬ ‫ﺍﻟﻤﻮﺿﻮﻉ‬ ‫ﻫﺬﺍ‬ ‫ﻭﺳﻨﺒﺪﺃ‬ ،
ECMAScript‫ﺍﻟﻤﺰﺍﻳﺎ‬ ‫ﻋﺎﻟﻢ‬ ‫ﺍﻟﻰ‬ ‫ﺳﻮﻳﺎ‬ ‫ﺳﻨﻨﺘﻘﻞ‬ ‫ﺛﻢ‬ ‫ﻭﻣﻦ‬ ،‫ﻣﺨﺘﺼﺮ‬ ‫ﺑﺸﻜﻞ‬
‫ﺍﻟﺠﺪﻳﺪ‬ ‫ﺍﻹﺻﺪﺍﺭ‬ ‫ﻣﻊ‬ ‫ﺗﻘﺪﻳﻤﻬﺎ‬ ‫ﺗﻢ‬ ‫ﺍﻟﺘﻲ‬ ‫ﻭﺍﻟﺨﺼﺎﺋﺺ‬)‫ﺍﻹﺻﺪﺍﺭ‬6(‫ﻣﻮﺿﻮﻉ‬ ‫ﻭﻫﻮ‬
‫ﺍﻟﻤﺘﻮﺍﺿﻌﺔ‬ ‫ﺍﻟﺪﻭﺭﺓ‬ ‫ﻫﺬﻩ‬.
‫ﺗﻬﻢ‬ ‫ﺍﻟﺪﻭﺭﺓ‬ ‫ﻫﺬﻩ‬ ‫ﻁﺒﻌﺎ‬‫ﻭﺍﻟﻤﺒﺮﻣﺠﻴﻦ‬ ‫ﺍﻟﻤﻄﻮﺭﻳﻦ‬ ‫ﺟﻤﻴﻊ‬‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻋﻠﻰ‬ ‫ﻳﻌﻤﻠﻮﻥ‬ ‫ﺍﻟﺬﻳﻦ‬
‫ﻟﻞ‬ ‫ﺍﻷﻫﻤﻴﺔ‬ ‫ﻭﺗﺰﺩﺍﺩ‬ ،‫ﺳﻜﺮﺑﺖ‬FRONT END‫ﻭﺃﻫﻤﻴﺔ‬ ،‫ﻷﻫﻤﻴﺘﻬﺎ‬ ،‫ﻣﻨﻬﻢ‬
‫ﺍﻹﺻﺪﺍﺭ‬ ‫ﻫﺬﺍ‬ ‫ﻓﻲ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﻟﻠﺠﺎﻓﺎ‬ ‫ﺣﺼﻠﺖ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﺘﺤﺪﻳﺜﺎﺕ‬^^‫ﻣﻌﻨﺎ‬ ‫ﻓﻜﻮﻧﻮﺍ‬ ،^_^
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
‫ﺍﻟﻤﻘﺪﻣﺔ‬
‫ﺍﻟﺪﻭﺭﺓ‬ ‫ﻣﺘﻄﻠﺒﺎﺕ‬:
(1HTML
(2CSS
(3JS)‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻓﻲ‬ ‫ﺟﻴﺪﺓ‬ ‫ﻣﻌﺮﻓﺔ‬(
(4‫ﻣﺜﻞ‬ ‫ﻧﺼﻮﺹ‬ ‫ﻣﺤﺮﺭ‬notepad++‫ﺇﻧﺘﺮﻧﺖ‬ ‫ﻣﺘﺼﻔﺢ‬ ‫ﻭ‬:P
*‫ﻣﻼﺣﻈﺔ‬:‫ﻫﺬﺍ‬ ‫ﺑﻞ‬ ،‫ﻗﺒﻠﻪ‬ ‫ﻣﺎ‬ ‫ﻛﻞ‬ ‫ﺣﺬﻑ‬ ‫ﺟﺪﻳﺪﺓ‬ ‫ﺇﺿﺎﻓﺔ‬ ‫ﺃﻭ‬ ‫ﺟﺪﻳﺪ‬ ‫ﺇﺻﺪﺍﺭ‬ ‫ﻳﻌﻨﻲ‬ ‫ﻻ‬
‫ﻳﻜﻮﻥ‬ ‫ﻭﻗﺪ‬ ،‫ﻣﺎ‬ ‫ﻣﻮﺿﻮﻉ‬ ‫ﻓﻲ‬ ‫ﺍﻟﺠﻮﺍﻧﺐ‬ ‫ﺃﺣﺪ‬ ‫ﻋﻠﻰ‬ ‫ﻭﻗﻊ‬ ‫ﺗﺤﺪﻳﺚ‬ ‫ﻫﻨﺎﻙ‬ ‫ﺃﻥ‬ ‫ﻳﻌﻨﻲ‬
‫ﻛﻠﻪ‬ ‫ﻳﻜﻮﻥ‬ ‫ﻭﻗﺪ‬ ،‫ﺟﻠﻪ‬... !
*‫ﻣﻼﺣﻈﺔ‬2:ECMAScript6‫ﺏ‬ ‫ﻟﻬﺎ‬ ‫ﻳﺮﻣﺰ‬:ES6
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
‫ﺍﻟﻤﻘﺪﻣﺔ‬
*‫ﻣﻼﺣﻈﺔ‬3:‫ﺍﻟﺪﻭﺭﺓ‬ ‫ﻫﺬﻩ‬ ‫ﻓﻲ‬ ‫ﺍﻟﺒﺪء‬ ‫ﺗﺎﺭﻳﺦ‬23-09-2015‫ﺍﻟﺘﺎﺭﻳﺦ‬ ‫ﺍﻋﺘﻤﺎﺩ‬ ‫ﻭﺗﻢ‬ ،
01-10-2015‫ﺍﻹﺻﺪﺍﺭ‬ ‫ﺃﻥ‬ ‫ﺍﻋﺘﺒﺎﺭ‬ ‫ﻋﻠﻰ‬ ‫ﺑﺎﻟﺪﻭﺭﺓ‬ ‫ﺍﻷﻣﺜﻠﺔ‬ ‫ﻟﺠﻤﻴﻊ‬ ‫ﻛﺘﺎﺭﻳﺦ‬
‫ﺑﺎﻝ‬ ‫ﺍﻟﺨﺎﺹ‬compiler‫ﻷﻥ‬ ،‫ﻛﺘﺎﺑﺘﻪ‬ ‫ﺣﻴﻦ‬ ‫ﻓﻲ‬ ‫ﺍﻟﺪﻭﺭﺓ‬ ‫ﻫﺬﻩ‬ ‫ﻓﻲ‬ ‫ﻗﻮﻟﻪ‬ ‫ﻳﺘﻢ‬ ‫ﻣﺎ‬ ‫ﻳﺪﻋﻢ‬
‫ﻟﻠﺠﺎﻓﺎ‬ ‫ﺍﻟﺠﺪﻳﺪ‬ ‫ﺑﺎﻹﺻﺪﺍﺭ‬ ‫ﺍﻹﻋﺘﻤﺎﺩ‬ ‫ﺇﻁﻼﻕ‬ ‫ﺑﻌﺪ‬ ‫ﻛﺎﻧﺖ‬ ‫ﺍﻟﺘﺎﺭﻳﺦ‬ ‫ﻫﺬﺍ‬ ‫ﻭﻓﻲ‬ ‫ﺍﻟﺪﻭﺭﺓ‬ ‫ﻫﺬﻩ‬
‫ﺳﻜﺮﺑﺖ‬ES6‫ﺍﻟﻔﻜﺮﺓ‬ ‫ﻭﺳﺘﺘﻀﺢ‬ ،‫ﺑﻌﺪ‬ ‫ﺗﺪﻋﻤﻬﺎ‬ ‫ﻟﻢ‬ ‫ﺍﻟﻤﺘﺼﻔﺤﺎﺕ‬ ‫ﺃﻥ‬ ‫ﺣﻴﻦ‬ ‫ﻓﻲ‬
‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ﺑﺈﺫﻥ‬ ،‫ﺍﻟﻘﺎﺩﻣﺔ‬ ‫ﺑﺎﻟﺸﺮﺍﺋﺢ‬..
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
ECMASCRIPT
‫ﺍﻝ‬ ‫ﻋﻦ‬ ‫ﻗﻠﻴﻼ‬ ‫ﺃﺗﺤﺪﺙ‬ ‫ﻫﻞ‬ ،‫ﻣﺤﺘﺎﺭﺍ‬ ‫ﻛﻨﺖ‬ ،‫ﺍﻟﺪﻭﺭﺓ‬ ‫ﻫﺬﻩ‬ ‫ﺑﺎﺩﺉ‬ ‫ﻓﻲ‬
ECMAScript‫ﷲ‬ ‫ﻫﺪﺍﻧﻲ‬ ‫ﺛﻢ‬ ،‫ﻻ‬ ‫ﺃﻡ‬ ‫ﺑﻬﺎ‬ ‫ﺧﺎﺻﺎ‬ ‫ﺟﺰﺋﺎ‬ ‫ﻟﻬﺎ‬ ‫ﺃﻓﺮﻍ‬ ‫ﻭﻫﻞ‬ ،‫ﻻ‬ ‫ﺃﻡ‬
‫ﻋﻦ‬ ‫ﺍﻟﻜﻠﻤﺔ‬ ‫ﻫﺬﻩ‬ ‫ﻏﻴﺎﺏ‬ ‫ﺍﻟﻰ‬ ‫ﻳﻌﻮﺩ‬ ‫ﻭﺍﻟﺴﺒﺐ‬ ،‫ﻣﻨﻔﺼﻞ‬ ‫ﺟﺰء‬ ‫ﻓﻲ‬ ‫ﺃﺿﻌﻬﺎ‬ ‫ﻷﻥ‬ ‫ﺗﻌﺎﻟﻰ‬
‫ﻣﻨﻬﻢ‬ ‫ﺍﻟﻨﺎﺷﺌﻴﻦ‬ ‫ﻭﺧﺼﻮﺻﺎ‬ ،‫ﻭﺍﻟﻤﻄﻮﺭﻳﻦ‬ ‫ﺍﻟﻤﺒﺮﻣﺠﻴﻦ‬ ‫ﻣﻌﻈﻢ‬..
‫ﺍﻝ‬ECMAScript‫ﺍﻟﻤﻌﺎﻳﻴﺮ‬ ‫ﻭﺿﻊ‬ ‫ﻫﺪﻓﻬﺎ‬ ،‫ﺭﺑﺤﻴﺔ‬ ‫ﻏﻴﺮ‬ ‫ﻋﺎﻟﻤﻴﺔ‬ ‫ﻣﻨﻈﻤﺔ‬ ‫ﻫﻲ‬
‫ﺍﻟﺴﻜﺮﺑﺖ‬ ‫ﺑﻠﻐﺎﺕ‬ ‫ﺍﻟﺨﺎﺻﺔ‬JavaScript, Action Script, JScript
‫ﺍﻟﻰ‬ ‫ﺑﺎﻹﺿﺎﻓﺔ‬ ،‫ﺑﺎﻟﺴﻜﺮﺑﺖ‬ ‫ﺍﻟﺨﺎﺻﺔ‬ ‫ﻭﺍﻟﻘﻮﺍﻋﺪ‬ ‫ﺍﻟﻌﺎﻡ‬ ‫ﺍﻟﻮﺻﻒ‬ ‫ﻭﺿﻊ‬ ‫ﻋﻠﻰ‬ ‫ﻭﺗﻘﻮﻡ‬
‫ﻟﻠﺴﻜﺮﺑﺖ‬ ‫ﺍﻟﺘﻄﻮﻳﺮ‬ ‫ﻋﻦ‬ ‫ﺍﻟﻤﺴﺆﻭﻟﺔ‬ ‫ﺍﻟﺠﻬﺔ‬ ‫ﻫﻲ‬ ‫ﻭﻟﺘﺼﺒﺢ‬ ،‫ﻭﻣﻜﺎﺗﺒﻬﺎ‬ ‫ﺍﻟﻠﻐﺔ‬ ‫ﺗﻄﻮﻳﺮ‬
‫ﺍﻝ‬ ‫ﻣﻊ‬ ‫ﻳﺘﻌﺎﻣﻞ‬ ‫ﺍﻟﺬﻱ‬ ‫ﻟﻠﺠﺎﻧﺐ‬ ‫ﻭﺗﺤﺪﻳﺪﺍ‬Client-Side...‫ﻭﺍﻝ‬ECMA‫ﻫﻲ‬
‫ﻝ‬ ‫ﺇﺧﺘﺼﺎﺭ‬European Computer Manufacturers Association (ECMA)
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
ECMASCRIPT
‫ﻭﺍﻝ‬ECMA‫ﺗﻄﻮﻳﺮ‬ ‫ﻋﻦ‬ ‫ﻭﺍﻟﻤﺴﺆﻭﻟﺔ‬ ‫ﺭﺑﺤﻴﺔ‬ ‫ﺍﻟﻐﻴﺮ‬ ‫ﺍﻟﻤﻨﻈﻤﺔ‬ ‫ﻓﺈﻧﻪ‬ ‫ﻟﻮﺣﺪﻫﺎ‬
‫ﻣﺜﻞ‬ ‫ﺍﻷﺧﺮﻯ‬ ‫ﻭﺍﻷﻣﻮﺭ‬ ‫ﺍﻟﻠﻐﺎﺕ‬ ‫ﻣﻦ‬ ‫ﺍﻟﻌﺪﻳﺪ‬ ‫ﻣﻌﺎﻳﻴﺮ‬ ‫ﻭﻭﺿﻊ‬C++/Cli‫ﺍﻝ‬ ‫ﻭ‬
HVD‫ﺍﻟﻤﻮﺿﻮﻉ‬ ‫ﻟﺘﺨﺼﻴﺺ‬ ‫ﺍﻹﺳﻢ‬ ‫ﺑﻌﺪ‬ ‫ﺑﺎﻟﻤﺠﺎﻝ‬ ‫ﺗﺤﺪﻳﺪﻫﺎ‬ ‫ﻳﺘﻢ‬ ‫ﻟﺬﻟﻚ‬ ،‫ﻭﻏﻴﺮﻫﺎ‬
‫ﻣﻔﻬﻮﻡ‬ ‫ﻋﻦ‬ ‫ﺍﻟﺴﺎﺑﻘﺔ‬ ‫ﺍﻟﺸﺮﻳﺤﺔ‬ ‫ﻓﻲ‬ ‫ﺫﻛﺮﻧﺎ‬ ‫ﻛﻤﺎ‬ECMAScript....
‫ﺷﺮﻛﺔ‬ ‫ﻗﺒﻞ‬ ‫ﻣﻦ‬ ‫ﻁﻮﺭﺕ‬ ،‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﺑﺄﻥ‬ ‫ﻳﻌﻠﻢ‬ ‫ﺟﻤﻴﻌﻨﺎ‬ ‫ﻁﺒﻌﺎ‬Netscape
‫ﺍﻝ‬ ‫ﺍﻟﻰ‬ ‫ﻣﻨﻬﺎ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﺑﻨﻘﻞ‬ ‫ﻗﺎﻣﺖ‬ ‫ﺍﻟﺸﺮﻛﺔ‬ ‫ﻫﺬﻩ‬ ‫ﻟﻜﻦ‬ECMA،‫ﺍﻟﻌﺎﻟﻤﻴﺔ‬
‫ﻋﻠﻴﻬﺎ‬ ‫ﺳﻴﻌﻤﻞ‬ ‫ﻟﻤﻦ‬ ‫ﻋﺎﻟﻤﻴﺎ‬ ‫ﻭﺍﺿﺤﺔ‬ ‫ﻭﻣﻌﺎﻳﻴﺮ‬ ‫ﺃﺳﺲ‬ ‫ﻭﺿﻊ‬ ‫ﻟﻴﺘﻢ‬..‫ﻋﺎﻡ‬ ‫ﻓﻲ‬ ‫ﻫﺬﺍ‬ ‫ﻭﻛﺎﻥ‬
1996‫ﺷﻬﺮ‬ ‫ﻓﻲ‬ ‫ﺇﺻﺪﺍﺭ‬ ‫ﺃﻭﻝ‬ ‫ﻭﺻﺪﺭ‬ ،6‫ﻋﺎﻡ‬1997...
‫ﻣﻬﺎﻡ‬ ‫ﻣﻦ‬ ‫ﺗﻘﺪﻣﻪ‬ ‫ﻭﻣﺎ‬ ،‫ﺗﺸﻴﺮ‬ ‫ﻣﺎﺫﺍ‬ ‫ﻭﺍﻟﻰ‬ ،‫ﺍﻟﻜﻠﻤﺔ‬ ‫ﻫﺬﻩ‬ ‫ﺗﻌﻨﻲ‬ ‫ﻣﺎﺫﺍ‬ ‫ﻋﺮﻓﻨﺎ‬ ‫ﻧﻜﻮﻥ‬ ‫ﻭﺑﻬﺬﺍ‬ ،‫ﻭﺍﻵﻥ‬
‫ﻣﻮﺿﻮﻋﻨﺎ‬ ‫ﻷﻧﻬﺎ‬ ‫ﺧﺼﻮﺻﺎ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﻭﺍﻟﺠﺎﻓﺎ‬ ‫ﻋﻤﻮﻣﺎ‬ ‫ﺍﻟﺴﻜﺮﺑﺖ‬ ‫ﻟﻤﻄﻮﺭﻳﻦ‬^_^
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
ECMASCRIPT&BROWSERS
‫ﻟﻴﺘﻢ‬ ‫ﺯﻣﻨﻴﺔ‬ ‫ﻓﺘﺮﺓ‬ ‫ﻫﻨﺎﻙ‬ ‫ﺃﻥ‬ ‫ﺍﻟﻤﻌﻠﻮﻡ‬ ‫ﻣﻦ‬ ‫ﻓﺈﻧﻪ‬ ،‫ﻣﻜﺘﺒﺔ‬ ‫ﺃﻱ‬ ‫ﺗﺤﺪﻳﺚ‬ ‫ﺃﻭ‬ ‫ﺗﻄﻮﻳﺮ‬ ‫ﻋﻨﺪ‬
‫ﻣﺜﺎﻝ‬ ‫ﻭﺃﻗﺮﺏ‬ ،‫ﺍﻟﻤﻀﺎﻓﺔ‬ ‫ﺍﻟﺠﺪﻳﺪﺓ‬ ‫ﺍﻟﺨﺼﺎﺋﺺ‬ ‫ﺟﻤﻴﻊ‬ ‫ﻟﺘﺨﺪﻡ‬ ‫ﺍﻟﻤﺘﺼﻔﺤﺎﺕ‬ ‫ﺗﻄﻮﻳﺮ‬
‫ﺍﻝ‬ ‫ﻫﻨﺎ‬CSS3‫ﺩﻋﻢ‬ ‫ﺗﺤﺎﻭﻝ‬ ‫ﺍﻟﻤﺘﺼﻔﺤﺎﺕ‬ ‫ﻓﺈﻥ‬ ،‫ﻭﺍﻋﺘﻤﺎﺩﻫﺎ‬ ،‫ﺗﻄﻮﻳﺮﻫﺎ‬ ‫ﻓﻤﻨﺬ‬ ،
‫ﻣﻤﻜﻦ‬ ‫ﺷﻜﻞ‬ ‫ﺑﺄﻛﺒﺮ‬ ‫ﺍﻟﺨﺼﺎﺋﺺ‬..‫ﺟﻞ‬ ‫ﺗﺪﻋﻢ‬ ‫ﻟﻢ‬ ‫ﻣﺘﺼﻔﺤﺎﺕ‬ ‫ﻫﻨﺎﻙ‬ ،‫ﺍﻵﻥ‬ ‫ﻭﺍﻟﻰ‬
‫ﻣﻦ‬ ‫ﻣﺠﻤﻮﻋﺔ‬ ‫ﺗﺪﻋﻢ‬ ‫ﻣﻌﻈﻤﻬﺎ‬ ‫ﻓﻲ‬ ‫ﺍﻟﺮﺋﻴﺴﻴﺔ‬ ‫ﺍﻟﻤﺘﺼﻔﺤﺎﺕ‬ ‫ﻟﻜﻦ‬ ،‫ﺍﻟﺨﺼﺎﺋﺺ‬
‫ﻫﺬﻩ‬ ‫ﺍﻟﻰ‬ ‫ﻭﻭﺻﻮﻻ‬ ،‫ﻭﺍﺳﺘﺨﺪﺍﻣﻬﺎ‬ ‫ﻭﺟﻮﺩﻫﺎ‬ ‫ﺍﻟﺒﺪﺍﻫﺔ‬ ‫ﻣﻦ‬ ‫ﺍﻵﻥ‬ ‫ﺃﺻﺒﺤﺖ‬ ‫ﺍﻟﺨﺼﺎﺋﺺ‬
‫ﺍﻝ‬ ‫ﻳﺴﺘﺨﺪﻡ‬ ‫ﻟﻢ‬ ‫ﻣﻨﺎ‬ ‫ﻣﻦ‬ ،‫ﺍﻟﻠﺤﻈﺔ‬CSS3‫ﺭﺍﺋﻌﺔ‬ ‫ﻭﺧﺪﻣﺎﺕ‬ ‫ﻣﺰﺍﻳﺎ‬ ‫ﻣﻦ‬ ‫ﺗﻘﺪﻣﻪ‬ ‫ﻭﻣﺎ‬..
‫ﻣﺪﻋﻮﻣﺔ‬ ‫ﻟﻴﺴﺖ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﻟﻠﺠﺎﻓﺎ‬ ‫ﺍﻟﺠﺪﻳﺪﺓ‬ ‫ﺍﻟﺨﺼﺎﺋﺺ‬ ‫ﻓﺈﻥ‬ ،‫ﺍﻟﻘﻴﺎﺱ‬ ‫ﻧﻔﺲ‬ ‫ﻭﻋﻠﻰ‬
‫ﻳﻤﻜﻨﻚ‬ ،‫ﺍﻟﺠﺪﻳﺪﺓ‬ ‫ﺍﻟﻤﺰﺍﻳﺎ‬ ‫ﻫﺬﻩ‬ ‫ﺩﻋﻢ‬ ‫ﻭﻟﻀﻤﺎﻥ‬ ،‫ﺍﻟﻤﺘﺼﻔﺤﺎﺕ‬ ‫ﺟﻤﻴﻊ‬ ‫ﻣﻦ‬ ‫ﻛﺎﻣﻞ‬ ‫ﺑﺸﻜﻞ‬
‫ﺍﻝ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬Compiler‫ﻧﻘﻮﻡ‬ ‫ﻛﻤﺎ‬ ،‫ﻟﻪ‬ ‫ﺭﺍﺑﻂ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﻟﻠﺠﺎﻓﺎ‬ ‫ﺍﻟﻘﺎﺭﺉ‬
‫ﺑﺘﻀﻤﻴﻦ‬Font‫ﻣﺜﻼ‬ ‫ﺟﻮﺟﻞ‬ ‫ﻣﻦ‬)‫ﺍﻟﺘﺸﺒﻴﻪ‬ ‫ﻓﺎﺭﻕ‬ ‫ﻣﻊ‬.(
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
ECMASCRIPT&BROWSERS
‫ﻣﻦ‬ ‫ﻣﻌﻴﻨﺔ‬ ‫ﺳﻤﺔ‬ ‫ﺃﻭ‬ ‫ﺧﺎﺻﻴﺔ‬ ‫ﺗﺪﻋﻢ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﻤﺘﺼﻔﺤﺎﺕ‬ ‫ﻋﻠﻰ‬ ‫ﻟﻺﻁﻼﻉ‬ ،‫ﻭﺍﻵﻥ‬
‫ﺍﻝ‬ ‫ﻭﺣﺘﻰ‬ ،‫ﻋﺪﻣﻬﺎ‬Compiler‫ﺧﺼﺎﺋﺺ‬ ‫ﻣﻦ‬ ‫ﻳﺪﻋﻢ‬ ‫ﻛﻢ‬ ‫ﺑﺘﻀﻤﻴﻨﻪ‬ ‫ﺳﻨﻘﻮﻡ‬ ‫ﺍﻟﺬﻱ‬
‫ﺍﻟﺮﺍﺑﻂ‬ ‫ﻫﺬﺍ‬ ‫ﺍﻟﻰ‬ ‫ﺍﻟﺪﺧﻮﻝ‬ ‫ﺳﻮﻯ‬ ‫ﻋﻠﻴﻨﺎ‬ ‫ﻣﺎ‬:
/6table/es-https://kangax.github.io/compat
)‫ﻣﻼﺣﻈﺔ‬:‫ﺍﻟﺠﺪﻭﻝ‬ ‫ﺗﺼﻔﺢ‬ ‫ﻣﻦ‬ ‫ﺗﺘﻤﻜﻦ‬ ‫ﺣﺘﻰ‬ ‫ﻭﻟﻠﻴﺴﺎﺭ‬ ‫ﻟﻠﻴﻤﻴﻦ‬ ‫ﺍﻟﺴﻬﻢ‬ ‫ﺣﺮﻙ‬(
‫ﻟﻠﺨﺼﺎﺋﺺ‬ ‫ﺍﻟﻤﻮﻗﻊ‬ ‫ﻋﻦ‬ ‫ﺻﻮﺭﺓ‬ ‫ﻟﻤﺸﺎﻫﺪﺓ‬ ‫ﺍﻟﺘﺎﻟﻴﺔ‬ ‫ﻟﻠﺸﺮﻳﺤﺔ‬ ‫ﺗﻨﺘﻘﻞ‬ ‫ﺃﻥ‬ ‫ﻗﺒﻞ‬ ‫ﻭﺍﻵﻥ‬
‫ﻓﻲ‬ ‫ﺩﻋﻤﻬﺎ‬ ‫ﺗﻢ‬ ‫ﺍﻟﺮﺋﻴﺴﻴﺔ‬ ‫ﺍﻟﺴﻤﺎﺕ‬ ‫ﺃﻭ‬ ‫ﺍﻟﺮﺋﻴﺴﻴﺔ‬ ‫ﺍﻟﺨﺼﺎﺋﺺ‬ ‫ﻓﺈﻥ‬ ،‫ﺍﻟﻤﺪﻋﻮﻣﺔ‬
‫ﺍﻟﺮﺋﻴﺴﻴﺔ‬ ‫ﺍﻟﻤﺘﺼﻔﺤﺎﺕ‬..‫ﺃﻥ‬ ‫ﻣﺜﻼ‬ ‫ﻓﻼﺣﻆ‬40%‫ﻣﺘﻔﻖ‬ ‫ﻳﻜﻮﻥ‬ ‫ﻗﺪ‬ ‫ﺍﻟﺨﺼﺎﺋﺺ‬ ‫ﻣﻦ‬
‫ﺍﻟﻤﺘﺼﻔﺤﺎﺕ‬ ‫ﺑﻴﻦ‬ ‫ﻣﻦ‬ ‫ﺍﻵﻥ‬ ‫ﻋﻠﻴﻬﺎ‬..‫ﺧﺼﺎﺋﺺ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻓﻲ‬ ‫ﺗﻌﻤﻘﺖ‬ ‫ﻛﻠﻤﺎ‬ ‫ﻟﻜﻦ‬
‫ﻣﺸﻬﻮﺭﺓ‬ ‫ﻏﻴﺮ‬ ‫ﺃﻭ‬ ‫ﺟﺪﻳﺪﺓ‬..‫ﻣﻦ‬ ‫ﻣﺪﻋﻮﻣﺔ‬ ‫ﺃﻭ‬ ،‫ﻣﺪﻋﻮﻣﺔ‬ ‫ﻏﻴﺮ‬ ‫ﺍﻟﺨﺎﺻﺔ‬ ‫ﻓﺴﺘﻜﻮﻥ‬
‫ﺍﻟﻜﻞ‬ ‫ﻣﻦ‬ ‫ﻭﻟﻴﺲ‬ ‫ﻣﺘﺼﻔﺢ‬...
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
ECMASCRIPT&BROWSERS
RUNNING ECMASCRIPT 6
‫ﻣﻦ‬ ‫ﺑﺪﻋﻢ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﺑﺮﻣﺠﺔ‬ ‫ﻓﻲ‬ ‫ﷲ‬ ‫ﺑﺮﻛﺔ‬ ‫ﻋﻠﻰ‬ ‫ﻟﻨﺒﺪء‬ ،‫ﻭﺍﻵﻥ‬ES6^_^
‫ﺍﻝ‬ ‫ﺑﺘﺤﻤﻴﻞ‬ ‫ﻧﻘﻮﻡ‬ ‫ﺃﻭﻻ‬ ‫ﻋﻠﻴﻨﺎ‬ ،‫ﺻﺤﻴﺢ‬ ‫ﺑﺸﻜﻞ‬ ‫ﻟﻨﺒﺪﺃ‬babel‫ﻣﻦ‬ ‫ﺑﺎﻟﻤﺘﺼﻔﺢ‬ ‫ﺍﻟﺨﺎﺹ‬
‫ﺍﻟﺮﺍﺑﻂ‬ ‫ﻫﺬﺍ‬ ‫ﺧﻼﻝ‬) :‫ﺍﻝ‬Babel‫ﺳﻜﺮﺑﺖ‬ ‫ﺟﺎﻓﺎ‬ ‫ﻫﻮ‬compiler: (
https://babeljs.io/docs/setup/#babel_in_browser
‫ﺍﻝ‬ ‫ﻟﺘﺤﻤﻴﻞ‬ ‫ﻁﺒﻌﺎ‬babel‫ﺍﻝ‬ ‫ﺑﺘﺤﻤﻴﻞ‬ ‫ﺗﻘﻮﻡ‬ ‫ﺃﻥ‬ ‫ﻳﺠﺐ‬npm..
‫ﺍﻝ‬ ‫ﺗﺤﻤﻴﻞ‬ ‫ﺛﻢ‬ ‫ﻭﻣﻦ‬ ‫ﺑﺎﻟﺒﺤﺚ‬ ‫ﺗﻘﻮﻡ‬ ‫ﺑﺄﻥ‬ ‫ﻭﺃﻧﺼﺤﻚ‬npm)..‫ﺍﻝ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬npm
‫ﺍﻷﻣﺮ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻳﻤﻜﻨﻨﺎ‬npm‫ﺍﻝ‬ ‫ﻟﺘﻨﺼﻴﺐ‬babel‫ﺍﻷﻣﺮ‬ ‫ﻁﺮﻳﻖ‬ ‫ﻋﻦ‬
npm install babel(‫ﺍﻟﻰ‬ ‫ﺗﺬﻫﺐ‬ ‫ﺛﻢ‬bable-core‫ﺍﻝ‬ ‫ﻣﻠﻒ‬ ‫ﻭﺗﺄﺧﺬ‬
browser.js) ....‫ﺍﻟﺪﻭﺭﺓ‬ ‫ﺑﻬﺬﻩ‬ ‫ﺍﻟﺨﺎﺹ‬ ‫ﺍﻟﻤﺠﻠﺪ‬ ‫ﻓﻲ‬ ‫ﺍﻟﻤﻠﻒ‬ ‫ﺑﻮﺿﻊ‬ ‫ﺳﺄﻗﻮﻡ‬ ‫ﻁﺒﻌﺎ‬
‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ﺑﺈﺫﻥ‬(..
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
RUNNING ECMASCRIPT 6
‫ﺍﻝ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻁﺮﻳﻘﺔ‬Babel‫ﻫﻲ‬:
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
‫ﺍﻝ‬ ‫ﺑﺘﻀﻤﻴﻦ‬ ‫ﺗﻘﻢ‬ ‫ﻟﻢ‬ ‫ﺣﺎﻝ‬ ‫ﻓﻲ‬ ‫ﺍﻟﺨﻄﺄ‬ ‫ﻫﺬﺍ‬ ‫ﺷﺎﻫﺪ‬Babel)‫ﻣﺜﺎﻝ‬ ‫ﺗﻄﺒﻴﻖ‬ ‫ﻟﻨﺎﺗﺞ‬ ‫ﺍﺳﺘﺒﺎﻕ‬ ‫ﻫﺬﺍ‬(
LET KEYWORD
‫ﻛﻠﻤﺔ‬LET‫ﻣﻌﻴﻦ‬ ‫ﻧﻄﺎﻕ‬ ‫ﺗﻌﺮﻳﻒ‬ ‫ﻭﻫﻲ‬ ،‫ﻣﻬﻤﺔ‬ ‫ﺑﻌﻤﻠﻴﺔ‬ ‫ﻟﺘﻘﻮﻡ‬ ‫ﺇﺿﺎﻓﺘﻬﺎ‬ ‫ﺗﻢ‬
)Block Scope(‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻳﺘﻢ‬ ‫ﺍﻟﻤﺘﻐﻴﺮ‬ ‫ﺃﻥ‬ ‫ﺃﻱ‬ ،‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻓﻲ‬ ‫ﻟﻠﻤﺘﻐﻴﺮﺍﺕ‬
‫ﺍﻝ‬ ‫ﻫﺬﺍ‬ ‫ﺩﺍﺧﻞ‬ ‫ﻣﻌﻬﺎ‬ ‫ﻭﺍﻟﺘﻌﺎﻣﻞ‬ ‫ﻗﻴﻤﺘﻪ‬scope‫ﺍﻝ‬ ‫ﺧﺎﺭﺝ‬ ‫ﻭﻳﻌﺘﺒﺮ‬ ،Scope‫ﻏﻴﺮ‬
‫ﻣﻌﺮﻑ‬..^_^‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬:
‫ﺍﺳﺘﺨﺪﻣﺖ‬ ‫ﺃﻧﻨﻲ‬ ‫ﻫﻨﺎ‬ ‫ﻻﺣﻆ‬let
‫ﺍﻝ‬ ‫ﻭﺍﺳﺘﺨﺪﻣﺖ‬var‫ﻭﻻﺣﻆ‬ ،
‫ﺍﻝ‬ ‫ﺃﻥ‬alert‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬scope
‫ﺍﻝ‬ ‫ﻣﻦ‬ ‫ﻛﻞ‬ ‫ﻧﺘﻴﺠﺔ‬ ‫ﺑﺎﻅﻬﺎﺭ‬ ‫ﻗﺎﻣﺖ‬
X‫ﻭﺍﻝ‬Y‫ﺍﻝ‬ ‫ﺧﺎﺭﺝ‬ ‫ﺃﻣﺎ‬ ،scope
‫ﻟﻞ‬ ‫ﺍﻟﻨﺎﺗﺞ‬ ‫ﻓﻜﺎﻥ‬x=undefined
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CONST KEYWORD
‫ﺍﻟﻤﺤﺠﻮﺯﺓ‬ ‫ﺍﻟﻜﻠﻤﺔ‬const‫ﺃﺧﺮﻯ‬ ‫ﻟﻐﺎﺕ‬ ‫ﻓﻲ‬ ‫ﺷﺎﻫﺪﻧﺎﻫﺎ‬ ‫ﻟﻄﺎﻟﻤﺎ‬ ‫ﻛﻠﻤﺎ‬ ،
‫ﻫﻮ‬ ‫ﻭﻛﻤﺎ‬ ،‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻓﻲ‬ ‫ﺍﺳﺘﺨﺪﺍﻣﻬﺎ‬ ‫ﺑﺎﻹﻣﻜﺎﻥ‬ ‫ﻳﻜﻦ‬ ‫ﻟﻢ‬ ‫ﻟﻜﻨﻪ‬ ،‫ﻭﺍﺳﺘﺨﺪﻣﻨﺎﻫﺎ‬
‫ﺍﻝ‬ ‫ﻓﺈﻥ‬ ،‫ﻟﺪﻳﻨﺎ‬ ‫ﻣﻌﺮﻭﻑ‬const‫ﺍﻟﻰ‬ ‫ﺗﺸﻴﺮ‬“‫ﺍﻟﺜﺎﺑﺖ‬”‫ﻳﺠﻮﺯ‬ ‫ﻻ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﻫﺬﻩ‬ ‫ﺃﻥ‬ ‫ﺃﻱ‬ ،
‫ﺍﻟﻀﺮﻳﺒﺔ‬ ‫ﻗﻴﻤﺔ‬ ‫ﻣﺜﻞ‬ ،‫ﺑﻬﺎ‬ ‫ﺍﻟﻤﺴﺎﺱ‬ ‫ﺃﻭ‬ ‫ﺗﻐﻴﻴﺮﻫﺎ‬16) %‫ﺍﻷﺭﺩﻥ‬ ‫ﻓﻲ‬(‫ﻳﻌﻨﻲ‬ ‫ﻭﻫﺬﺍ‬ ،
‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﺳﺘﺘﻢ‬ ،‫ﻟﻬﺎ‬ ‫ﺍﻟﻀﺮﻳﺒﺔ‬ ‫ﺣﺴﺎﺏ‬ ‫ﺳﻴﺘﻢ‬ ‫ﻋﻤﻠﻴﺎﺕ‬ ‫ﻣﻦ‬ ‫ﺗﻨﻔﻴﺬﻩ‬ ‫ﺳﻴﺘﻢ‬ ‫ﻣﺎ‬ ‫ﺟﻤﻴﻊ‬ ‫ﺃﻥ‬
‫ﺗﻐﻴﻴﺮ‬ ‫ﻳﻌﻨﻲ‬ ‫ﻓﻬﺬﺍ‬ ،‫ﺍﻟﻀﺮﻳﺒﺔ‬ ‫ﻗﻴﻤﺔ‬ ‫ﺗﻐﻴﻴﺮ‬ ‫ﺃﺭﺩﺕ‬ ‫ﻟﻮ‬ ‫ﺍﻟﻮﻗﺖ‬ ‫ﻭﺑﺬﺍﺕ‬ ،‫ﺍﻟﻀﺮﻳﺒﺔ‬ ‫ﺛﺎﺑﺖ‬
‫ﺍﻝ‬ ‫ﻗﻴﻤﺔ‬const‫ﺑﺘﻌﺮﻳﻔﻪ‬ ‫ﻗﻤﻨﺎ‬ ‫ﺍﻟﺬﻱ‬*^_....
‫ﺍﻵﻥ‬ ‫ﻭﺍﻟﺴﺆﺍﻝ‬..‫ﺍﻝ‬ ‫ﻗﻴﻤﺔ‬ ‫ﺑﻪ‬ ‫ﻭﻧﻀﻊ‬ ‫ﻣﺘﻐﻴﺮ‬ ‫ﺑﺘﻌﺮﻳﻒ‬ ‫ﻧﻘﻮﻡ‬ ‫ﺃﻥ‬ ‫ﺍﻟﻤﻤﻜﻦ‬ ‫ﻣﻦ‬ ‫ﺍﻟﻴﺲ‬
16%‫ﺍﻝ‬ ‫ﺇﺿﺎﻓﺔ‬ ‫ﺍﻟﻰ‬ ‫ﺍﻟﺤﺎﺟﺔ‬ ‫ﺩﻭﻥ‬const‫؟‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﺇﺻﺪﺍﺭ‬ ‫ﺍﻟﻰ‬
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CONST KEYWORD
‫ﺍﻟﺠﻮﺍﺏ‬:‫ﺣﻤﺎﻳﺔ‬ ‫ﻫﻨﺎﻙ‬ ‫ﻓﻬﻞ‬ ،‫ﻣﺘﻐﻴﺮ‬ ‫ﻋﻦ‬ ‫ﺗﺘﺤﺪﺙ‬ ‫ﺃﻧﻚ‬ ‫ﻁﺎﻟﻤﺎ‬ ‫ﻟﻜﻦ‬ ،‫ﺫﻟﻚ‬ ‫ﻳﻤﻜﻨﻨﺎ‬ ‫ﻧﻌﻢ‬
،‫ﺑﻚ‬ ‫ﺍﻟﺨﺎﺻﺔ‬ ‫ﺍﻟﺒﺮﻣﺠﻴﺔ‬ ‫ﺍﻟﺸﻴﻔﺮﺓ‬ ‫ﻗﺒﻞ‬ ‫ﻣﻦ‬ ‫ﺗﻐﻴﻴﺮ‬ ‫ﺩﻭﻥ‬ ‫ﺛﺎﺑﺘﺔ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﺣﻔﻆ‬ ‫ﻟﻚ‬ ‫ﺗﻀﻤﻦ‬
‫؟‬ ‫ﺛﺎﻟﺚ‬ ‫ﻁﺮﻑ‬ ‫ﻣﻦ‬ ‫ﺃﺧﺮﻯ‬ ‫ﺑﺮﻣﺠﻴﺔ‬ ‫ﺷﻴﻔﺮﺓ‬ ‫ﺃﻭ‬!
‫ﺍﻝ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬const‫ﻭﻣﻦ‬ ‫ﺍﻟﻤﺤﺠﻮﺯﺓ‬ ‫ﺍﻟﻜﻠﻤﺔ‬ ‫ﻫﺬﻩ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻫﻮ‬ ‫ﻓﻌﻠﻪ‬ ‫ﻋﻠﻴﻚ‬ ‫ﻣﺎ‬ ‫ﻛﻞ‬
‫ﺗﻌﺪﻳﻞ‬ ‫ﺃﻱ‬ ‫ﻣﻦ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﻟﻬﺬﻩ‬ ‫ﺍﻟﺤﻤﺎﻳﺔ‬ ‫ﻋﻤﻠﻴﺔ‬ ‫ﺍﻟﺒﺮﻣﺠﻴﺔ‬ ‫ﺍﻵﻟﺔ‬ ‫ﺳﺘﺘﻮﻟﻰ‬ ‫ﺛﻢ‬^_^..
‫ﻣﺜﺎﻻ‬ ‫ﻟﻨﺸﺎﻫﺪ‬ ‫ﻭﺍﻵﻥ‬:
‫ﻣﺜﺎﻝ‬1:
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CONST KEYWORD
‫ﻣﺜﺎﻝ‬2:‫ﺍﻟﺨﻄﺄ‬ ‫ﻫﻨﺎ‬ ‫ﻻﺣﻆ‬..
‫ﺍﻝ‬ ‫ﺑﺄﻥ‬ ‫ﻳﺨﺒﺮﻙ‬ ‫ﺍﻟﺨﻄﺄ‬const
Read only..‫ﻗﻴﻤﺘﻪ‬ ‫ﺗﻐﻴﻴﺮ‬ ‫ﻳﻤﻜﻦ‬ ‫ﻻ‬
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CONST KEYWORD
‫ﻣﺜﺎﻝ‬3:‫ﺍﻝ‬ ‫ﺃﻥ‬ ‫ﻭﻫﻲ‬ ،‫ﻣﻬﻤﺔ‬ ‫ﻟﻨﻘﻄﺔ‬ ‫ﻫﻨﺎ‬ ‫ﺇﻧﺘﺒﻪ‬const‫ﺍﻝ‬ ‫ﻣﺜﻞ‬ ‫ﺗﻌﺮﻳﻔﻪ‬ ‫ﻳﺘﻢ‬ ‫ﻋﻨﺪﻣﺎ‬
tax‫ﺳﻴﻜﻮﻥ‬ ، ‫ﻫﻨﺎ‬Global‫ﻗﻤﻨﺎ‬ ‫ﺍﺫﺍ‬ ‫ﻟﻜﻦ‬ ،‫ﺗﻌﻠﻤﻨﺎ‬ ‫ﻛﻤﺎ‬ ‫ﻗﻴﻤﺘﻪ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻭﻳﻤﻜﻦ‬
‫ﺍﻝ‬ ‫ﺗﻌﺮﻳﻒ‬ ‫ﺑﺈﻋﺎﺩﺕ‬const‫ﺩﺍﺧﻞ‬scope‫ﻫﺬﺍ‬ ‫ﺿﻤﻦ‬ ‫ﺍﻟﺜﺎﺑﺖ‬ ‫ﺑﺎﻧﺸﺎء‬ ‫ﻓﺴﻴﻘﻮﻡ‬ ،
‫ﺍﻝ‬scope‫ﺍﻝ‬ ‫ﻗﻴﻤﺔ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﺃﻭ‬ ‫ﺧﺎﺭﺟﺎ‬ ‫ﻗﻴﻤﺘﻪ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻳﻤﻜﻨﻨﺎ‬ ‫ﻭﻻ‬Global
const‫ﺍﻝ‬ ‫ﻫﺬﺍ‬ ‫ﺩﺍﺧﻞ‬block...
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CONST KEYWORD
‫ﻭﺍﻵﻥ‬..‫ﺑﺎﻝ‬ ‫ﺍﻟﻤﺘﻌﻠﻘﺔ‬ ‫ﺍﻷﻣﺜﻠﺔ‬ ‫ﺟﻤﻴﻊ‬ ‫ﻟﻨﺸﺎﻫﺪ‬const‫ﻋﻠﻰ‬ ‫ﻟﺬﻛﺮﻫﺎ‬ ‫ﺗﻄﺮﻗﻨﺎ‬ ‫ﻭﺍﻟﺘﻲ‬
‫ﷲ‬ ‫ﺑﺮﻛﺔ‬^ _^
‫ﻣﻼﺣﻈﺔ‬:‫ﺍﻟﺸﺮﻁ‬ ‫ﺟﻤﻠﺔ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬if(true)‫ﻣﺠﻤﻮﻋﺔ‬ ‫ﺗﻮﺿﻴﺢ‬ ‫ﻓﻘﻂ‬ ‫ﻣﻨﻪ‬ ‫ﺍﻟﻬﺪﻑ‬
‫ﺿﻤﻦ‬ ‫ﺍﻷﻣﺜﻠﺔ‬block‫ﺍﻟﺘﻨﻮﻳﻪ‬ ‫ﻭﺟﺐ‬ ‫ﻭﻟﺬﻟﻚ‬ ،‫ﺃﺳﻠﻮﺏ‬ ‫ﺑﺄﺳﻬﻞ‬ ‫ﻣﻌﻴﻦ‬_^*
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
DESTRUCT VALUES
‫ﻋﺪﺓ‬ ‫ﻹﺭﺟﺎﻉ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻓﻲ‬ ‫ﻧﺴﺘﺨﺪﻣﻬﺎ‬ ‫ﻛﻨﺎ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﻄﺮﻕ‬ ‫ﻣﻦ‬ ‫ﺍﻟﻜﺜﻴﺮ‬ ‫ﻫﻨﺎﻙ‬
‫ﻣﻦ‬ ‫ﺍﻟﻘﻴﻢ‬function)Function Return Multiple Values(
‫ﺍﻝ‬ ‫ﻣﻔﻬﻮﻡ‬ ‫ﻅﻬﺮ‬ ‫ﻫﻨﺎ‬ ‫ﻭﻣﻦ‬Destruct-‫ﺍﻟﺘﻔﻜﻴﻚ‬-‫ﺑﺠﻌﻞ‬ ‫ﺑﺪﻭﺭﻩ‬ ‫ﻳﻘﻮﻡ‬ ‫ﻭﺍﻟﺬﻱ‬ ،
‫ﺃﺧﺮﻯ‬ ‫ﺑﺮﻣﺠﻴﺔ‬ ‫ﺷﻴﻔﺮﺓ‬ ‫ﺃﻭ‬ ‫ﻟﻤﺘﻐﻴﺮﺍﺕ‬ ‫ﺍﻟﺮﺍﺟﻌﺔ‬ ‫ﺍﻟﻘﻴﻢ‬ ‫ﺍﺳﻨﺎﺩ‬ ‫ﻧﺎﺣﻴﺔ‬ ‫ﻣﻦ‬ ‫ﺍﺳﻬﻞ‬ ‫ﺍﻷﻣﻮﺭ‬
‫ﺍﻟﻘﻴﻢ‬ ‫ﻫﺬﻩ‬ ‫ﺗﺴﺘﻘﺒﻞ‬..‫ﺍﻟﺨﺎﺻﺔ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﺗﺒﺪﻳﻞ‬ ‫ﺧﻼﻟﻬﺎ‬ ‫ﻣﻦ‬ ‫ﺑﺈﻣﻜﺎﻧﻚ‬ ‫ﺃﺻﺒﺢ‬ ‫ﺃﻧﻪ‬ ‫ﻛﻤﺎ‬
‫ﺛﺎﻟﺚ‬ ‫ﻣﺘﻐﻴﺮ‬ ‫ﺗﻌﺮﻳﻒ‬ ‫ﺩﻭﻥ‬ ‫ﺑﻤﺘﻐﻴﺮﻳﻦ‬^_^...‫ﻋﻠﻴﻜﻢ‬ ‫ﻧﻄﻴﻞ‬ ‫ﻻ‬ ‫ﻭﺣﺘﻰ‬..‫ﺩﻋﻮﻧﺎ‬
‫ﺍﻟﻤﻮﺿﻮﻉ‬ ‫ﻋﻠﻰ‬ ‫ﺳﻬﻼ‬ ‫ﻣﺜﺎﻻ‬ ‫ﻧﺸﺎﻫﺪ‬:P_^) :*‫ﻣﺜﺎﻝ‬1( :
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
DESTRUCT VALUES
‫ﻣﺜﺎﻝ‬2:‫ﺍﻟﻰ‬ ‫ﺍﻟﺤﺎﺟﺔ‬ ‫ﺩﻭﻥ‬ ‫ﻣﺘﻐﻴﺮﻳﻦ‬ ‫ﺑﻴﻦ‬ ‫ﻟﻠﻘﻴﻢ‬ ‫ﺗﺒﺪﻳﻞ‬ ‫ﺑﻌﻤﻠﻴﺔ‬ ‫ﺳﻨﻘﻮﻡ‬ ،‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻫﺬﺍ‬ ‫ﻓﻲ‬
‫ﺟﺪﻳﺪ‬ ‫ﺛﺎﻟﺚ‬ ‫ﻣﺘﻐﻴﺮ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬^_^‫ﺍﻟﺘﺎﻟﻲ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻓﻲ‬ ‫ﻛﻤﺎ‬ ‫ﺗﺘﻢ‬ ‫ﺑﺒﺴﺎﻁﺔ‬ ‫ﺍﻟﻌﻤﻠﻴﺔ‬ ‫ﻫﺬﻩ‬ ،:
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
DESTRUCT VALUES
‫ﻣﺜﺎﻝ‬3:،‫ﺭﺍﺋﻌﺔ‬ ‫ﻣﺰﻳﺔ‬ ‫ﺃﻳﻀﺎ‬ ‫ﻓﻬﻨﺎﻙ‬ ،‫ﺍﻟﺴﺎﺑﻘﺔ‬ ‫ﺍﻷﻣﺜﻠﺔ‬ ‫ﻓﻲ‬ ‫ﺫﻛﺮﻧﺎﻩ‬ ‫ﻣﺎ‬ ‫ﺍﻟﻰ‬ ‫ﺑﺎﻹﺿﺎﻓﺔ‬
‫ﺩﺍﺧﻞ‬ ‫ﺍﻟﻤﻮﺟﻮﺩﺓ‬ ‫ﺍﻟﻘﻴﻢ‬ ‫ﺍﺳﻨﺎﺩ‬ ‫ﺇﻣﻜﺎﻧﻴﺔ‬ ‫ﻭﻫﻲ‬obj‫ﺍﻝ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﻣﺘﻐﻴﺮﺍﺕ‬ ‫ﺍﻟﻰ‬
Destruct‫ﺍﻝ‬ ‫ﺍﺳﻢ‬ ‫ﺑﻨﻔﺲ‬ ‫ﺍﻟﻤﺘﻐﻴﺮﺍﺕ‬ ‫ﺍﺳﻢ‬ ‫ﻭﺿﻊ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﻫﺬﺍ‬ ‫ﻭﻳﻜﻮﻥ‬ ،key
‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬ ‫ﺍﻟﻤﻮﺟﻮﺩ‬object..‫ﻣﺎ‬ ‫ﺑﻴﻦ‬ ‫ﻭﻣﻄﺎﺑﻘﺔ‬ ‫ﺑﺤﺚ‬ ‫ﻋﻤﻠﻴﺔ‬ ‫ﻫﻲ‬ ‫ﻭﺍﻟﻌﻤﻠﻴﺔ‬
‫ﺍﻝ‬ ‫ﻭﺑﻴﻦ‬ ‫ﻣﺘﻐﻴﺮﺍﺕ‬ ‫ﻣﻦ‬ ‫ﻭﺿﻌﺘﻪ‬key‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬ ‫ﺍﻟﻤﺴﺘﺨﺪﻣﺔ‬object‫ﻓﺈﻧﻪ‬ ‫ﻭﺑﻬﺬﺍ‬ ،
‫ﺍﻝ‬ ‫ﺗﺸﺎﺑﻪ‬ ‫ﺇﻥ‬key‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﺍﺳﻨﺎﺩ‬ ‫ﻓﻴﺘﻢ‬ ،‫ﺍﻟﻤﺘﻐﻴﺮ‬ ‫ﻭﺍﺳﻢ‬...‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬:
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
DEFAULT FUNCTION
ARGUMENTS VALUES
‫ﻗﻴﻤﺔ‬ ‫ﻭﺿﻊ‬ ‫ﺇﻣﻜﺎﻧﻴﺔ‬ ‫ﻫﻲ‬ ،‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻓﻲ‬ ‫ﻧﻔﺘﻘﺪﻫﺎ‬ ‫ﻛﻨﺎ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻷﻣﻮﺭ‬ ‫ﻣﻦ‬
‫ﻟﻞ‬ ‫ﺇﻓﺘﺮﺍﺿﻴﺔ‬Args‫ﻓﻲ‬ ‫ﺍﻟﻤﺴﺘﺨﺪﻣﺔ‬function‫ﺇﻧﺘﻬﻰ‬ ‫ﺍﻷﻣﺮ‬ ‫ﻫﺬﺍ‬ ‫ﻟﻜﻦ‬ ،‫ﻣﻌﻴﻦ‬
‫ﺃﻭ‬ ،‫ﻣﺒﺎﺷﺮﺓ‬ ‫ﻗﻴﻤﺔ‬ ‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬ ‫ﺇﻓﺘﺮﺍﺿﻴﺔ‬ ‫ﻗﻴﻤﺔ‬ ‫ﺇﺿﺎﻓﺔ‬ ‫ﺍﻵﻥ‬ ‫ﺑﺎﻹﻣﻜﺎﻥ‬ ‫ﻭﺃﺻﺒﺢ‬ ،‫ﺍﻵﻥ‬
‫ﺍﺭﺳﺎﻝ‬ ‫ﺍﻟﻤﻤﻜﻦ‬ ‫ﻣﻦ‬ ‫ﺃﻧﻪ‬ ‫ﻛﻤﺎ‬ ،‫ﺣﺴﺎﺑﻴﺔ‬ ‫ﻋﻤﻠﻴﺔ‬ ‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬undefined‫ﺃﻧﻬﺎ‬ ‫ﻋﻠﻰ‬
‫ﺇﻓﺘﺮﺍﺿﻴﺔ‬ ‫ﻗﻴﻤﺔ‬^_^...‫ﻭﻓﻀﻠﻪ‬ ‫ﻧﻌﻤﻪ‬ ‫ﻋﻠﻰ‬ ‫ﺤﻤﺪ ہﻠﻟ‬^^
‫ﺳﻬﻞ‬ ‫ﺑﺸﻜﻞ‬ ‫ﺍﻹﻓﺘﺮﺍﺿﻴﺔ‬ ‫ﺍﻟﻘﻴﻢ‬ ‫ﻭﺿﻊ‬ ‫ﻳﺘﻢ‬ ‫ﻛﻴﻒ‬ ‫ﻻﺣﻆ‬^_^‫ﻭﺟﻮﺩ‬ ‫ﺃﻳﻀﺎ‬ ‫ﻭﻻﺣﻆ‬ ،
‫ﻋﻤﻠﻴﺔ‬concat‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬ ‫ﺗﺨﺰﻥ‬f‫ﺍﻟﺤﺴﺎﺑﻴﺔ‬ ‫ﺍﻟﻌﻤﻠﻴﺎﺕ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻳﻤﻜﻨﻚ‬ ‫ﺃﻱ‬ ،
‫ﺍﻟﻘﻴﻢ‬ ‫ﻹﺳﻨﺎﺩ‬^^)..‫ﺍﻟﺘﺎﻟﻴﺔ‬ ‫ﺑﺎﻟﺸﺮﻳﺤﺔ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬(
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
DEFAULT FUNCTION
ARGUMENTS VALUES
‫ﻣﺜﺎﻝ‬:
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
JS SPREAD “…” OPERATOR
‫ﺍﻝ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻳﺘﻢ‬Spread Perator‫ﺍﻟﻤﺘﻐﻴﺮﺍﺕ‬ ‫ﻣﻦ‬ ‫ﻧﻬﺎﺋﻲ‬ ‫ﻻ‬ ‫ﻋﺪﺩ‬ ‫ﻟﺘﻌﺮﻳﻒ‬
‫ﻏﻴﺮ‬ ‫ﻋﺪﺩ‬ ‫ﺑﺈﺭﺳﺎﻝ‬ ‫ﺍﻟﻘﻴﺎﻡ‬ ،‫ﺃﺩﻕ‬ ‫ﻭﺑﻤﻌﻨﻰ‬ ،‫ﻣﻌﻴﻨﺔ‬ ‫ﻟﻮﻅﻴﻔﺔ‬ ‫ﺍﺳﺘﺨﺪﺍﻣﻬﺎ‬ ‫ﻳﻤﻜﻨﻨﻲ‬ ‫ﺍﻟﺘﻲ‬
‫ﺍﻝ‬ ‫ﻣﻦ‬ ‫ﻣﻌﻴﻦ‬Args‫ﻋﻤﻠﻴﺔ‬ ‫ﻓﻜﺮﺓ‬ ،‫ﺍﻟﻌﻤﻠﻴﺔ‬ ‫ﻫﺬﻩ‬ ‫ﻟﻤﺜﻞ‬ ‫ﺍﻟﻤﻔﻴﺪﺓ‬ ‫ﺍﻷﻣﺜﻠﺔ‬ ‫ﺃﺷﻬﺮ‬ ‫ﻭﻣﻦ‬ ،
‫ﺟﻤﻌﻬﺎ‬ ‫ﺍﻟﻤﺮﺍﺩ‬ ‫ﺍﻷﺭﻗﺎﻡ‬ ‫ﻋﺪﺩ‬ ‫ﻣﻌﺮﻭﻑ‬ ‫ﺍﻟﻐﻴﺮ‬ ‫ﺍﻟﺠﻤﻊ‬..‫ﻧﻘﻮﻝ‬ ‫ﺍﻟﺤﺎﺳﺒﺔ‬ ‫ﺍﻵﻟﺔ‬ ‫ﻣﺜﻞ‬
5+6+7+55..‫ﺑﺠﻤﻞ‬ ‫ﻗﻤﺖ‬ ‫ﻓﻬﻨﺎ‬4‫ﺑﺠﻤﻊ‬ ‫ﻳﻘﻮﻡ‬ ‫ﻗﺪ‬ ‫ﻭﻏﻴﺮﻱ‬ ،‫ﻗﻴﻢ‬10‫ﻓﻬﻞ‬ ،‫ﻗﻴﻢ‬
‫؟‬ ‫ﺇﺩﺧﺎﻟﻬﺎ‬ ‫ﺍﻟﻤﻤﻜﻦ‬ ‫ﺍﻟﻘﻴﻢ‬ ‫ﺑﻌﺪﺩ‬ ‫ﺩﻭﺍﻝ‬ ‫ﺇﻧﺸﺎء‬ ‫ﺍﻟﻤﻌﻘﻮﻝ‬ ‫ﻣﻦ‬!
‫ﺍﻝ‬ ‫ﻣﻨﻬﺎ‬ ‫ﺃﺧﺮﻯ‬ ‫ﺑﺮﻣﺠﻴﺔ‬ ‫ﺃﻓﻜﺎﺭ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻳﻤﻜﻨﻚ‬ ‫ﻟﻜﻦ‬ ،‫ﻻ‬ ‫ﻁﺒﻌﺎ‬ ‫ﺍﻟﺠﻮﺍﺏ‬
SPREAD^_^‫ﺛﻤﻨﺎ‬ ‫ﺇﺫﺍ‬ ،‫ﺃﻳﻀﺎ‬ ‫ﺑﻬﺎ‬ ‫ﺍﻟﺠﻤﻴﻠﺔ‬ ‫ﻭﺍﻹﺳﺘﺨﺪﺍﻣﺎﺕ‬ ‫ﺍﻷﻓﻜﺎﺭ‬ ‫ﻭﻣﻦ‬ ،
‫ﺑﻮﺿﻊ‬…arrayName‫ﻋﻠﻰ‬ ‫ﻓﺮﻁﺖ‬ ‫ﻭﻛﺄﻧﻬﺎ‬ ‫ﺳﺘﻌﻤﺎﻝ‬ ‫ﺍﻟﻤﺼﻔﻮﻓﺔ‬ ‫ﻫﺬﻩ‬ ‫ﻓﺈﻥ‬
‫ﻣﺜﻞ‬ ‫ﻣﺘﻐﻴﺮﺍﺕ‬ ‫ﺷﻜﻞ‬[a, b]‫ﻭﻛﺄﻧﻬﺎ‬ ‫ﺳﺘﺼﺒﺢ‬a, b‫ﻣﺜﺎﻻ‬ ‫ﻗﻠﻴﻞ‬ ‫ﺑﻌﺪ‬ ‫ﻭﺳﻨﺮﻯ‬
‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ﺑﺈﺫﻥ‬ ‫ﺍﻟﺤﺮﻛﺔ‬ ‫ﻫﺬﻩ‬ ‫ﻣﺜﻞ‬ ‫ﺣﺮﻛﺔ‬ ‫ﺃﻫﻤﻴﺔ‬ ‫ﻳﻮﺿﺢ‬^_^
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
JS SPREAD “…” OPERATOR
‫ﻣﺜﺎﻝ‬1:
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
JS SPREAD “…” OPERATOR
‫ﻣﺜﺎﻝ‬2:‫ﻭﻣﻦ‬ ،‫ﺍﻟﺪﻭﺭﺍﺕ‬ ‫ﻋﻨﺎﻭﻳﻦ‬ ‫ﺗﺤﺘﻮﻱ‬ ‫ﻣﺼﻔﻮﻓﺔ‬ ‫ﺑﺈﻧﺸﺎء‬ ‫ﻗﻤﺖ‬ ‫ﺃﻧﻨﻲ‬ ‫ﻫﻨﺎ‬ ‫ﻻﺣﻆ‬
‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬ ‫ﺃﺭﺳﻠﺘﻬﺎ‬ ‫ﺛﻢ‬Args^_^.
‫ﻣﻼﺣﻈﺔ‬:‫ﺍﻟﻤﺘﻐﻴﺮﺍﺕ‬ ‫ﻋﺪﺩ‬ ‫ﻳﻜﻮﻥ‬ ‫ﺃﻥ‬ ‫ﺍﻟﻀﺮﻭﺭﻱ‬ ‫ﻣﻦ‬ ‫ﻟﻴﺲ‬courses_tow
‫ﺳﻴﺘﻢ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﻤﺘﻐﻴﺮﺍﺕ‬ ‫ﻋﺪﺩ‬ ‫ﻳﺴﺎﻭﻱ‬“‫ﻓﺮﻁﻬﺎ‬“‫ﻗﺒﻞ‬ ‫ﻣﻦ‬…array^_^
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
JS SPREAD “…” OPERATOR
‫ﻣﺜﺎﻝ‬3:‫ﻋﻨﺪﻣﺎ‬ ‫ﺃﻧﻨﻲ‬ ‫ﻭﻫﻲ‬ ،‫ﻣﻬﻤﺔ‬ ‫ﻓﻜﺮﺓ‬ ‫ﻳﻮﺿﺢ‬ ‫ﻓﻬﻮ‬ ،‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻫﺬﺍ‬ ‫ﺃﻫﻤﻴﺔ‬ ‫ﻻﺣﻆ‬
‫ﺍﻝ‬ ‫ﻣﺼﻔﻮﻓﺔ‬ ‫ﺑﺎﺭﺳﺎﻝ‬ ‫ﻗﻤﺖ‬Spread args‫ﺍﻟﻤﺼﻔﻮﻓﺔ‬ ‫ﺍﻋﺘﺒﺮ‬arg‫ﻭﺍﺣﺪ‬
‫ﻋﻠﻰ‬ ‫ﻳﺤﺘﻮﻱ‬6‫ﻋﻨﺎﺻﺮ‬)‫ﻣﺼﻔﻮﻓﺔ‬ ‫ﻧﻮﻋﻬﺎ‬ ‫ﻁﺒﻴﻌﺔ‬ ‫ﻋﻠﻰ‬ ‫ﻋﺎﻣﻠﻬﺎ‬(‫ﺃﻥ‬ ‫ﻭﻳﻤﻜﻨﻪ‬
‫ﺍﻟﻤﺼﻔﻮﻓﺔ‬ ‫ﺑﻔﺮﻁ‬ ‫ﻗﻤﺖ‬ ‫ﺍﻟﺜﺎﻧﻴﺔ‬ ‫ﺍﻟﺤﺎﻟﺔ‬ ‫ﻓﻲ‬ ‫ﺑﻴﻨﻤﺎ‬ ،‫ﻣﺼﻔﻮﻓﺔ‬ ‫ﻣﻦ‬ ‫ﺃﻛﺜﺮ‬ ‫ﻳﺴﺘﻘﺒﻞ‬
‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺗﻄﺒﻴﻖ‬ ‫ﻧﺘﻴﺠﺔ‬ ‫ﻓﻲ‬ ‫ﺟﻠﻴﺎ‬ ‫ﻳﻈﻬﺮ‬ ‫ﻭﻫﺬﺍ‬ ،‫ﻗﻴﻢ‬ ‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬ ‫ﻭﺍﺭﺳﺎﻟﻬﺎ‬^ _^
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
JS SPREAD “…” OPERATOR
‫ﺍﻟﺮﺍﺋﻌﺔ‬ ‫ﺍﻟﻔﻜﺮﺓ‬ ‫ﻫﺬﻩ‬ ‫ﺷﺮﺡ‬ ‫ﻣﻦ‬ ‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ﺑﺈﺫﻥ‬ ‫ﺍﻧﺘﻬﻴﻨﺎ‬ ‫ﻧﻜﻮﻥ‬ ‫ﻭﺑﻬﺬﺍ‬^_^‫ﻟﻜﻨﻨﻲ‬ ،
‫ﻧﺴﺘﺨﺪﻡ‬ ‫ﻛﻨﺎ‬ ،‫ﺳﻜﺮﺑﺖ‬ ‫ﺑﺎﻟﺠﺎﻓﺎ‬ ‫ﺃﻧﻨﺎ‬ ‫ﻭﻫﻲ‬ ،‫ﻧﻘﻄﺔ‬ ‫ﺍﻟﻰ‬ ‫ﺑﺎﻟﺘﻨﻮﻳﻪ‬ ‫ﺃﺭﻏﺐ‬
Array.prototype.slice.call‫ﺍﻝ‬ ‫ﻣﻦ‬ ‫ﻣﻌﺮﻭﻑ‬ ‫ﻏﻴﺮ‬ ‫ﻋﺪﺩ‬ ‫ﻻﺳﺘﻘﺒﺎﻝ‬
args‫ﺍﻝ‬ ‫ﻓﻲ‬ ‫ﻛﻤﺎ‬Spread‫ﻳﻮﺿﺢ‬ ‫ﺑﺴﻴﻂ‬ ‫ﻣﺜﺎﻝ‬ ‫ﻭﻫﺬﺍ‬ ،‫ﻗﻠﻴﻞ‬ ‫ﻗﺒﻞ‬ ‫ﺗﻌﻠﻤﻨﻬﺎ‬ ‫ﺍﻟﺘﻲ‬
‫ﺍﻟﻔﻜﺮﺓ‬^_^
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ﺭﺣﻤﻪ‬ ‫ﺍﻟﺸﺎﻓﻌﻲ‬ ‫ﻟﻺﻣﺎﻡ‬ ‫ﺷﻌﺮ‬
TEMPLATE STRINGS ` `
‫ﺍﻝ‬Template String‫ﻋﻦ‬ ‫ﻋﺒﺎﺭﺓ‬single line‫ﺃﻭ‬multiline‫ﻣﻦ‬
‫ﺍﻝ‬String)‫ﺍﻟﺴﻄﻮﺭ‬ ‫ﻣﻦ‬ ‫ﻣﺠﻤﻮﻋﺔ‬ ‫ﺃﻭ‬ ‫ﺳﻄﺮ‬(‫ﺍﻵﻥ‬ ‫ﺗﻌﺮﻳﻔﻬﺎ‬ ‫ﻳﺘﻢ‬)‫ﺍﻹﺻﺪﺍﺭ‬ ‫ﻣﻦ‬
ES6(‫ﺍﻝ‬ ‫ﺑﺎﺳﺘﺨﺪﺍﻡ‬back-tick)`... (‫ﻣﻦ‬ ‫ﺍﻟﺠﺪﻳﺪﺓ‬ ‫ﺍﻟﻤﺰﻳﺔ‬ ‫ﻫﺬﻩ‬ ‫ﺗﻤﻜﻨﻨﺎ‬ ‫ﻛﻤﺎ‬
‫ﻭﺿﻊ‬expressions‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬template string‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬
‫ﺍﻝ‬${ }^_^..
‫ﻣﻌﺎ‬ ‫ﻣﺜﺎﻻ‬ ‫ﻟﻨﺸﺎﻫﺪ‬ ،‫ﻭﺍﻵﻥ‬:^_^:
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺗﻄﺒﻴﻖ‬ ‫ﻧﺎﺗﺞ‬..‫ﺍﻟﺸﻴﻔﺮﺓ‬
‫ﺍﻟﺘﺎﻟﻴﺔ‬ ‫ﺍﻟﺼﻔﺤﺔ‬ ‫ﻓﻲ‬ ‫ﺍﻟﺒﺮﻣﺠﻴﺔ‬*_*
TEMPLATE STRINGS ` `
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
ARROW FUNCTION =>
‫ﺍﻹﺻﺪﺍﺭ‬ ‫ﻓﻲ‬ES6‫ﻟﺘﻌﺮﻳﻒ‬ ‫ﺟﺪﻳﺪﺓ‬ ‫ﻁﺮﻳﻘﺔ‬ ‫ﺇﺿﺎﻓﺔ‬ ‫ﺗﻢ‬Function
‫ﻭﺍﺳﺘﺨﺪﺍﻣﻪ‬!!
‫ﺃﻫﻢ‬ ‫ﻭﺇﺣﺪﻯ‬ ،‫ﻋﻤﻠﻪ‬ ‫ﺍﻟﻤﺒﺮﻣﺞ‬ ‫ﻋﻠﻰ‬ ‫ﻟﻴﺴﻬﻞ‬ ‫ﺻﻤﻢ‬ ‫ﺍﻟﺘﻌﺮﻳﻒ‬ ‫ﻫﺬﺍ‬ ‫ﻟﻜﻦ‬ ،‫ﺗﺘﻌﺠﺐ‬ ‫ﻻ‬ ‫ﻧﻌﻢ‬
‫ﺍﻝ‬ ‫ﻛﺘﺎﺑﺔ‬ ‫ﻫﻮ‬ ،‫ﺍﻷﺳﻠﻮﺏ‬ ‫ﻫﺬﺍ‬ ‫ﺍﺳﺘﺨﺪﺍﻣﺎﺕ‬function‫ﻭﺍﺣﺪﺍ‬ ‫ﺳﻄﺮﺍ‬ ‫ﻳﺤﺘﻮﻱ‬ ‫ﺍﻟﺬﻱ‬
‫ﺑﻜﺘﺎﺑﺔ‬ ‫ﻓﻴﻬﺎ‬ ‫ﻧﻄﺮ‬ ،‫ﺑﺤﺎﻟﺔ‬ ‫ﻣﺮﺭﻧﺎ‬ ‫ﻭﻟﻄﺎﻟﻤﺎ‬ ،‫ﻟﻠﺘﻨﻔﻴﺬ‬function‫ﺑﻌﻤﻞ‬ ‫ﻳﻘﻮﻡ‬ ‫ﻓﻘﻂ‬
return‫ﻣﻌﻴﻨﺔ‬ ‫ﻟﻘﻴﻤﺔ‬...،‫ﻭﺍﺣﺪ‬ ‫ﺳﻄﺮ‬ ‫ﺗﻨﻔﻴﺬ‬ ‫ﻣﻦ‬ ‫ﺍﻟﻄﺮﻳﻘﺔ‬ ‫ﻫﺬﻩ‬ ‫ﺗﻤﻜﻨﻚ‬ ،‫ﻭﻁﺒﻌﺎ‬
‫ﺳﻄﺮ‬ ‫ﻣﻦ‬ ‫ﻷﻛﺜﺮ‬ ‫ﺃﻭ‬ ،‫ﻟﻪ‬ ‫ﺻﻤﻢ‬ ‫ﻛﻤﺎ‬^_^....‫ﻣﻌﺎ‬ ‫ﻣﺜﺎﻻ‬ ‫ﻭﻟﻨﺸﺎﻫﺪ‬:
‫ﻣﻼﺣﻈﺔ‬1‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺍﻟﻰ‬ ‫ﺍﻹﻧﺘﻘﺎﻝ‬ ‫ﻗﺒﻞ‬:‫ﺍﻝ‬Arrow function‫ﺍﺳﺘﺨﺪﺍﻣﻪ‬ ‫ﻳﻤﻜﻦ‬
‫ﺍﻝ‬ ‫ﻣﻊ‬Expression‫ﺃﻭ‬Statement‫ﺃﻭ‬Lexical this...
‫ﻣﻼﺣﻈﺔ‬2:‫ﺍﻝ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﺣﻮﻝ‬ ‫ﻣﻬﻤﺔ‬ ‫ﻧﻘﺎﻁ‬ ‫ﻫﻨﺎﻙ‬arrow function
‫ﺍﻷﻣﺮ‬ ‫ﻧﺴﻬﻞ‬ ‫ﺣﺘﻰ‬ ‫ﷲ‬ ‫ﺑﺈﺫﻥ‬ ‫ﺍﻷﻣﺜﻠﺔ‬ ‫ﻓﻲ‬ ‫ﻟﻬﺎ‬ ‫ﺳﻨﺘﻄﺮﻕ‬ ،‫ﻭﺃﻫﻤﻴﺘﻬﺎ‬^_^
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
ARROW FUNCTION =>
‫ﻣﺜﺎﻝ‬1:
‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺮﺡ‬:
‫ﺍﻝ‬contactName‫ﺍﻝ‬ ‫ﺇﺳﻢ‬ ‫ﻳﻤﺜﻞ‬function‫ﺑﺎﺳﺘﺪﻋﺎﺋﻪ‬ ‫ﺳﻨﻘﻮﻡ‬ ‫ﺍﻟﺬﻱ‬.
‫ﺍﻝ‬fname, mname‫ﺍﻝ‬ ‫ﺗﻤﺜﻞ‬function parameter
‫ﺍﻝ‬ ‫ﻓﻲ‬console.log‫ﺍﻝ‬ ‫ﺑﺎﺳﺘﺪﻋﺎء‬ ‫ﻗﻤﻨﺎ‬function‫ﺍﻟﻘﻴﻢ‬ ‫ﻭﺍﺭﺳﺎﻝ‬
“anees”‫ﻭ‬“hikmat”‫ﺍﻝ‬ ‫ﻗﺎﻡ‬ ‫ﺛﻢ‬ ‫ﻭﻣﻦ‬function‫ﺑﻴﻦ‬ ‫ﺍﻟﺮﺑﻂ‬ ‫ﺑﻌﻤﻠﻴﺔ‬
‫ﺍﻹﺳﻤﻴﻦ‬^_^...
‫ﺍﻟﺸﻜﻞ‬ ‫ﻫﺬﺍ‬ ‫ﺑﻜﺘﺎﺑﺔ‬ ‫ﻗﻤﻨﺎ‬ ‫ﻛﺄﻧﻨﺎ‬ ‫ﺃﻱ‬:
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
ARROW FUNCTION =>
‫ﻣﺜﺎﻝ‬2:‫ﻛﺘﺎﺑﺔ‬ ‫ﻳﻤﻜﻨﻨﺎ‬multiple statements‫ﺍﻝ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬
Arrow Function‫ﺍﻟﺘﺎﻟﻲ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻓﻲ‬ ‫ﻛﻤﺎ‬:
‫ﻫﻨﺎ‬ ‫ﻻﺣﻆ‬..‫ﻭﺟﻮﺩ‬ ‫ﺣﺎﻟﺔ‬ ‫ﻓﻲ‬multiple statements‫ﺳﻨﻘﻮﻡ‬ ‫ﻣﺒﺎﺷﺮﺓ‬ ‫ﻓﺈﻧﻨﺎ‬
‫ﻧﻄﺎﻕ‬ ‫ﺿﻤﻦ‬ ‫ﺑﺤﺼﺮﻫﺎ‬block‫ﺧﻼﻝ‬ ‫ﻣﻦ‬{}..‫ﺍﻝ‬ ‫ﺳﻨﺴﺘﺨﺪﻡ‬ ‫ﺃﻧﻨﺎ‬ ‫ﻛﻤﺎ‬
Return‫ﺗﻨﻔﻴﺬﻫﺎ‬ ‫ﺍﻟﻤﻄﻠﻮﺏ‬ ‫ﺍﻟﻌﻤﻠﻴﺔ‬ ‫ﻣﻦ‬ ‫ﺍﻟﻨﺎﺗﺠﺔ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﻹﺭﺟﺎﻉ‬^_^
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
ARROW FUNCTION =>
‫ﻣﺜﺎﻝ‬3:‫ﺍﻝ‬ ‫ﺗﻨﻔﻴﺬ‬ ‫ﻧﺎﺗﺞ‬Arrow Function‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬ ‫ﻳﻜﻮﻥ‬obj‫ﻣﻦ‬ ‫ﻧﺎﺗﺞ‬
‫ﺍﻝ‬function‫ﻳﻤﻜﻦ‬ ‫ﺃﻧﻨﺎ‬ ‫ﻭﻫﻲ‬ ،‫ﺟﻤﻴﻠﺔ‬ ‫ﺃﺧﺮﻯ‬ ‫ﻣﻴﺰﺓ‬ ‫ﻟﻨﺎ‬ ‫ﻳﺘﻴﺢ‬ ‫ﻭﻫﺬﺍ‬ ،‫ﺍﻹﻋﺘﻴﺎﺩﻱ‬
‫ﻛﺄﻧﻬﺎ‬ ‫ﺍﻟﺮﺍﺟﻌﺔ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﻧﺴﺘﺨﺪﻡ‬ ‫ﺃﻥ‬regular JavaScript function object
‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬ ‫ﻟﻠﺘﻌﺎﻣﻞ‬ ‫ﻣﻔﻴﺪ‬ ‫ﻭﻫﺬﺍ‬callback function..‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬:
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
ARROW FUNCTION =>
‫ﻣﺜﺎﻝ‬4:‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻓﻲ‬ ‫ﺍﻵﻥ‬2‫ﺍﻝ‬ ‫ﻻﺳﺘﺨﺪﺍﻡ‬ ‫ﻳﻠﺰﻡ‬ ‫ﻛﺎﻥ‬statementsmultiple
‫ﺑﺎﺳﺘﻌﻤﺎﻝ‬ ‫ﻧﻘﻮﻡ‬ ‫ﺃﻥ‬{}‫ﻫﺬﻩ‬ ‫ﻟﻜﻦ‬ ،{}‫ﺇﺭﺳﺎﻝ‬ ‫ﻓﻲ‬ ‫ﺭﻏﺒﻨﺎ‬ ‫ﺣﺎﻝ‬ ‫ﻓﻲ‬ ‫ﻣﺸﻜﻠﺔ‬ ‫ﻟﻨﺎ‬ ‫ﺳﺘﺴﺒﺐ‬
literalobj...-_-
^_^‫ﻭﻣﺘﻮﻓﺮ‬ ‫ﻭﺑﺴﻴﻂ‬ ‫ﺳﻬﻞ‬ ‫ﻓﺎﻟﺤﻞ‬ ،‫ﺗﻘﻠﻖ‬ ‫ﻻ‬ ‫ﻟﻜﻦ‬:P‫ﺍﻝ‬ ‫ﺇﺣﺎﻁﺔ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﻭﻳﻜﻮﻥ‬
{}‫ﺍﻝ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬.. ()‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬:
‫ﺍﻝ‬ ‫ﺃﺭﺳﻠﺖ‬ ‫ﺃﻧﻨﻲ‬ ‫ﻫﻨﺎ‬ ‫ﻻﺣﻆ‬id
‫ﺍﻝ‬ ‫ﻳﺘﻐﻴﺮ‬ ‫ﻟﻢ‬ ‫ﻭﻟﻬﺬﺍ‬ ،‫ﻓﻘﻂ‬name
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
ARROW FUNCTION =>
‫ﻣﺜﺎﻝ‬5:‫ﺑﻤﻜﺎﻥ‬ ‫ﺍﻷﻫﻤﻴﺔ‬ ‫ﻣﻦ‬ ‫ﻭﺍﻟﻤﺜﺎﻝ‬ ‫ﺍﻷﺧﻴﺮ‬ ‫ﻭﺍﻟﻤﺜﺎﻝ‬:P،
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
ARROW FUNCTION =>
‫ﺍﻝ‬ ‫ﻣﻮﺿﻮﻉ‬ ‫ﻣﻦ‬ ‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ﺑﺈﺫﻥ‬ ‫ﺍﻧﺘﻬﻴﻨﺎ‬ ‫ﻧﻜﻮﻥ‬ ‫ﺑﻬﺬﺍ‬Arrow Function،
‫ﺍﻟﺴﺎﺑﻘﺔ‬ ‫ﻟﻸﻣﺜﻠﺔ‬ ‫ﺗﻄﺒﻴﻖ‬ ‫ﻟﻨﺸﺎﻫﺪ‬ ،‫ﻭﺍﻵﻥ‬:
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
‫ﺍﻟﻨﻮﺍﺱ‬ ‫ﺃﺑﻮ‬ ‫ﺷﻌﺮ‬ ‫ﻣﻦ‬
CLASS KEYWORD ON JS
‫ﻫﻮ‬ ‫ﻭﻣﺘﻰ‬ ،‫ﻟﻜﻢ‬ ‫ﻋﺮﺿﻪ‬ ‫ﻁﺮﻳﻘﺔ‬ ‫ﻓﻲ‬ ‫ﺟﺪﺍ‬ ‫ﻣﺤﺘﺎﺭﺍ‬ ‫ﺟﻌﻠﻨﻲ‬ ‫ﺍﻟﻤﻮﺿﻮﻉ‬ ‫ﻫﺬﺍ‬ ‫ﺣﻘﻴﻘﺔ‬
‫ﻓﻲ‬ ‫ﻭﻓﻘﻨﺎ‬ ‫ﻧﻜﻮﻥ‬ ‫ﺃﻥ‬ ‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ﻭﻧﺴﺄﻝ‬ ،‫ﺍﻟﻤﻮﺿﻮﻉ‬ ‫ﻫﺬﺍ‬ ‫ﻟﺸﺮﺡ‬ ‫ﺍﻟﻤﻨﺎﺳﺐ‬ ‫ﺍﻟﻮﻗﺖ‬
‫ﺍﻝ‬ ‫ﻟﻌﺮﺽ‬ ‫ﺍﻟﺘﻮﻗﻴﺖ‬ ‫ﻫﺬﺍ‬ ‫ﺍﺧﺘﻴﺎﺭ‬Class Keyword‫ﻧﻮﻓﻖ‬ ‫ﺃﻥ‬ ‫ﻭﻧﺴﺄﻟﻪ‬ ،‫ﻋﻠﻴﻜﻢ‬
‫ﺍﻟﺸﺮﺡ‬ ‫ﻓﻲ‬.
‫ﺍﻟﻤﻔﺎﻫﻴﻢ‬ ‫ﻣﻦ‬ ‫ﻣﺠﻤﻮﻋﺔ‬ ‫ﺑﺸﺮﺡ‬ ‫ﺳﺄﺑﺪﺃ‬ ‫ﺍﻧﻲ‬ ‫ﺍﻋﺘﻘﺪ‬ ‫ﺻﺤﻴﺤﺔـ‬ ‫ﺍﻟﺒﺪﺍﻳﺔ‬ ‫ﺗﻜﻮﻥ‬ ‫ﺣﺘﻰ‬
‫ﺍﻝ‬ ‫ﻋﻦ‬ ‫ﺍﻟﺤﺪﻳﺚ‬ ‫ﻗﺒﻞ‬ ،‫ﻭﺍﻟﻤﻬﻤﺔ‬ ‫ﺍﻷﺳﺎﺳﻴﺔ‬Class‫ﺍﻝ‬ ‫ﺍﻟﺤﺪﻳﺚ‬ ‫ﻭﺳﻴﻜﻮﻥ‬ ،
JS Object Oriented Programming^_^‫ﻓﻌﻼ‬ ‫ﻳﻮﺟﺪ‬ ‫ﻭﻫﻞ‬ ،
CLASS‫؟‬ ‫ﺍﻟﻤﺨﺘﻠﻔﺔ‬ ‫ﺍﻟﺒﺮﻣﺠﺔ‬ ‫ﻟﻐﺎﺕ‬ ‫ﻓﻲ‬ ‫ﻛﻤﺎ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻓﻲ‬!
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CLASS KEYWORD ON JS
‫ﺍﻝ‬ ‫ﻣﻔﻬﻮﻡ‬obj‫ﺍﻷﺧﺮﻯ‬ ‫ﺍﻟﻠﻐﺎﺕ‬ ‫ﻓﻲ‬ ‫ﺍﻟﻤﺒﺮﻣﺠﻴﻦ‬ ‫ﺑﻴﻦ‬ ‫ﺍﻟﻤﻌﺮﻭﻑ‬ ‫ﺑﺸﻜﻠﻪ‬
)‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻏﻴﺮ‬(‫ﺍﻝ‬ ‫ﻋﻦ‬ ‫ﻳﺨﺘﻠﻒ‬obj،‫ﺳﻜﺮﺑﺖ‬ ‫ﺑﺎﻟﺠﺎﻓﺎ‬ ‫ﺍﻟﻤﻮﺟﻮﺩ‬
‫ﺍﻟﻰ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻣﻦ‬ ‫ﻳﻨﺘﻘﻞ‬ ‫ﻣﻦ‬ ‫ﻳﺘﻌﺠﺐ‬ ‫ﻛﺎﻥ‬ ‫ﻓﻤﺜﻼ‬ ،‫ﺑﺎﻟﺒﻨﺎء‬ ‫ﻫﻨﺎ‬ ‫ﺍﻟﻤﻔﺎﻫﻴﻤﻲ‬ ‫ﻭﺍﻹﺧﺘﻼﻑ‬
‫ﻫﻮ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺑﺎﻟﺠﺎﻓﺎ‬ ‫ﻧﺴﺘﺨﺪﻣﻪ‬ ‫ﻣﺎ‬ ‫ﺃﻥ‬ ‫ﻛﻴﻒ‬ ،‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬obj‫ﺳﺆﺍﻝ‬ ‫ﻭﺃﻭﻝ‬ ،
‫ﺍﻝ‬ ‫ﺃﻳﻦ‬ ‫ﺑﺒﺎﻟﻪ‬ ‫ﻳﺨﻄﺮ‬Class‫؟‬..‫ﺍﻝ‬ ‫ﺗﻌﺮﻳﻒ‬ ‫ﻷﻥ‬obj‫ﻋﻠﻰ‬ ‫ﻳﺆﺷﺮ‬ ‫ﺃﻥ‬ ‫ﻳﻠﺰﻣﻪ‬
class!!‫ﻳﻮﺟﺪ‬ ‫ﻟﻢ‬ ‫ﺫﻛﺮ‬ ‫ﺍﻟﺬﻱ‬ ‫ﺑﺎﻟﺸﻜﻞ‬ ‫ﺍﻟﻤﻔﻬﻮﻡ‬ ‫ﻭﻫﺬﺍ‬ ،)..‫ﺍﻝ‬ ‫ﻣﻔﻬﻮﻡ‬ ‫ﻳﻮﺟﺪ‬ ‫ﻟﻢ‬
class‫ﺃﺑﺪﺍ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻓﻲ‬ ‫ﺍﻟﺸﻜﻞ‬ ‫ﺑﻬﺬﺍ‬.. (‫ﻳﻘﻮﻝ‬ ‫ﻟﺬﻟﻚ‬
Narayan Prusty‫ﻛﺘﺎﺏ‬ ‫ﻣﺆﻟﻒ‬Learning ECMAScript 6
“JavaScript never had the concept of classes,
although it's an object-oriented programming
language.”
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CLASS KEYWORD ON JS
‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﺑﻤﻔﻬﻮﻡ‬ ‫ﺍﻟﻜﻼﺱ‬ ‫ﻋﻦ‬ ‫ﻟﻠﺤﺪﻳﺚ‬ ‫ﻧﻨﺘﻘﻞ‬ ،‫ﺍﻟﺒﺴﻴﻄﺔ‬ ‫ﺍﻟﻤﻘﺪﻣﺔ‬ ‫ﻫﺬﻩ‬ ‫ﺑﻌﺪ‬ ‫ﻭﺍﻵﻥ‬
‫ﺳﻜﺮﺑﺖ‬^_^‫ﻋﻦ‬ ‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ﺑﺈﺫﻥ‬ ‫ﻭﺳﻨﺘﺤﺪﺙ‬ ،:
(1‫ﺍﻝ‬ ‫ﺇﻧﺸﺎء‬object‫ﺍﻟﺘﻘﻠﻴﺪﻳﺔ‬ ‫ﺑﺎﻟﻄﺮﻳﻘﺔ‬) .‫ﺍﻝ‬ ‫ﺳﺒﻖ‬ ‫ﻟﻤﺎ‬ ‫ﻭﺷﺮﺡ‬ ‫ﻣﺮﺍﺟﻌﺔ‬
ES6(
(2‫ﺍﻝ‬ ‫ﻫﻲ‬ ‫ﻣﺎ‬classes‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻓﻲ‬
(3‫ﺍﻝ‬ ‫ﺇﻧﺸﺎء‬object‫ﺍﻝ‬ ‫ﺑﺎﺳﺘﺨﺪﺍﻡ‬classes
(4‫ﺍﻟﻮﺭﺍﺛﺔ‬)inheritance in classes(
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CLASS KEYWORD ON JS
(1‫ﺇﻧﺸﺎء‬JS Object‫ﺍﻟﺘﻘﻠﻴﺪﻳﺔ‬ ‫ﺑﺎﻟﻄﺮﻳﻘﺔ‬:
*‫ﻣﻼﺣﻈﺔ‬:‫ﺍﻝ‬ ‫ﻟﻔﻬﻢ‬ ‫ﻣﻬﻤﺔ‬ ‫ﺍﻟﻤﺮﺍﺟﻌﺔ‬ ‫ﻫﺬﻩ‬js object‫ﻣﺘﺎﺑﻌﺔ‬ ‫ﻭﻟﺘﺴﺘﻄﻴﻊ‬
‫ﺍﻟﻘﺎﺩﻣﺔ‬ ‫ﺍﻟﺸﺮﺍﺋﺢ‬...
‫ﺃﻱ‬ ‫ﻹﻧﺸﺎء‬Object)‫ﺍﻟﺘﻘﻠﻴﺪﻳﺔ‬ ‫ﺑﺎﻟﻄﺮﻳﻘﺔ‬(‫ﻟﺬﻟﻚ‬ ‫ﺇﺳﻠﻮﺑﻴﻦ‬ ‫ﻫﻨﺎﻙ‬:
1(object literal:‫ﻹﻧﺸﺎء‬ ‫ﺍﻟﻄﺮﻳﻘﺔ‬ ‫ﻫﺬﻩ‬ ‫ﻭﺗﺴﺘﺨﺪﻡ‬object‫ﺛﺎﺑﺖ‬
)fixed... (‫ﻣﺜﻞ‬:
var person = {fname:“anees", mname:“hikmat”}
2(constructor:‫ﻹﻧﺸﺎء‬ ‫ﺍﻟﻄﺮﻳﻘﺔ‬ ‫ﻫﺬﻩ‬ ‫ﻭﺗﺴﺘﺨﺪﻡ‬object
Dynamically‫ﺍﻝ‬ ‫ﺃﺛﻨﺎء‬runtime‫ﻟﻠﻌﻤﻞ‬ ‫ﺍﻟﻔﻌﺎﻟﺔ‬ ‫ﺍﻟﻄﺮﻳﻘﺔ‬ ‫ﻭﻫﻲ‬
Dynamic^_^
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CLASS KEYWORD ON JS
‫ﺍﻵﺗﻲ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬:
‫ﺍﻝ‬ ‫ﻟﺪﻳﻨﺎ‬object literal‫ﺍﻟﻤﺴﻤﻰ‬Employee‫ﺍﻝ‬ ‫ﻫﺬﺍ‬ ‫ﺃﻥ‬ ‫ﻭﻻﺣﻆ‬ ،
object‫ﻫﻨﺎﻟﻚ‬ ‫ﻛﺎﻥ‬ ‫ﻟﻮ‬ ‫ﻣﺎﺫﺍ‬ ‫ﻟﻜﻦ‬ ،‫ﺃﻧﻴﺲ‬ ‫ﻫﻮ‬ ‫ﻭﺍﺣﺪ‬ ‫ﺷﺨﺺ‬ ‫ﻳﺨﺪﻡ‬100‫ﻣﻮﻅﻒ؟‬
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CLASS KEYWORD ON JS
‫ﺇﻧﺸﺎء‬ ‫ﺍﻟﻰ‬ ‫ﻣﺜﻼ‬ ‫ﺳﻨﺤﺘﺎﺝ‬ ‫ﺑﺄﻧﻨﺎ‬ ‫ﺍﻟﺴﺎﺑﻖ‬ ‫ﺍﻷﺳﻠﻮﺏ‬ ‫ﻓﻲ‬ ‫ﺍﻟﻤﺸﻜﻠﺔ‬ ‫ﺗﻜﻤﻦ‬100obj
‫ﺍﻝ‬ ‫ﻋﺪﺩ‬ ‫ﻛﺎﻥ‬ ‫ﻟﻮ‬ ‫ﻣﺎﺫﺍ‬ ‫ﺍﺫﻥ‬ ،‫ﻳﺠﻮﺯ‬ ‫ﻻ‬ ‫ﺍﻟﻜﻼﻡ‬ ‫ﻭﻫﺬﺍ‬ ،‫ﻟﻠﻤﻮﻅﻔﻴﻦ‬employee
‫ﻣﺘﻐﻴﺮ‬^_^...‫؟‬!
‫ﺍﻝ‬ ‫ﻭﻫﻮ‬ ‫ﺍﻟﺜﺎﻧﻲ‬ ‫ﻟﻠﺸﻜﻞ‬ ‫ﺍﻟﺤﺎﺟﺔ‬ ‫ﺗﻜﻤﻦ‬ ‫ﻭﻫﻨﺎ‬constructor،‫ﺃﻭﻝ‬ ‫ﻫﻨﺎ‬ ‫ﻭﻣﻦ‬
‫ﺍﻝ‬ ‫ﺃﻥ‬ ‫ﺗﻌﻠﻤﻬﺎ‬ ‫ﺃﻥ‬ ‫ﻳﺠﺐ‬ ‫ﻣﻌﻠﻮﻣﺔ‬constructor‫ﻫﻮ‬ ‫ﺍﻟﻮﺍﻗﻊ‬ ‫ﻓﻲ‬function
‫ﻛﻠﻤﺔ‬ ‫ﻟﻪ‬ ‫ﻣﻀﺎﻑ‬new^_^‫ﺍﻝ‬ ‫ﻫﺬﺍ‬ ‫ﻭﻳﻘﻮﻡ‬ ،constructor‫ﻭﺇﺭﺟﺎﻉ‬ ‫ﺑﺎﻧﺸﺎء‬
object_^*‫ﺍﻝ‬ ‫ﺃﻥ‬ ‫ﻛﻤﺎ‬ ،this‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬constructor‫ﺍﻝ‬ ‫ﺍﻟﻰ‬ ‫ﺗﺸﻴﺮ‬
object‫ﺍﻝ‬ ‫ﻣﻦ‬ ‫ﺍﻟﺘﻨﻔﻴﺬ‬ ‫ﺇﻧﺘﻬﺎء‬ ‫ﻳﺘﻢ‬ ‫ﻭﻋﻨﺪﻣﺎ‬ ،‫ﺑﺎﻧﺸﺎﺋﻪ‬ ‫ﻧﻘﻮﻡ‬ ‫ﺍﻟﺬﻱ‬ ‫ﺍﻟﺠﺪﻳﺪ‬
constructor‫ﺍﻝ‬ ‫ﺍﺭﺟﺎﻉ‬ ‫ﻋﻠﻰ‬ ‫ﻳﻘﻮﻡ‬object‫ﺑﺸﻜﻞ‬dynamic*_*
‫ﻭﺍﻵﻥ‬..‫ﺫﻛﺮﻧﺎﻩ‬ ‫ﻣﺎ‬ ‫ﻳﻮﺿﺢ‬ ‫ﻣﺜﺎﻻ‬ ‫ﻟﻨﺸﺎﻫﺪ‬ ،‫ﺑﺴﻴﻂ‬ ‫ﺍﻟﻜﻼﻡ‬ ‫ﻫﺬﺍ‬ ‫ﻭﺑﻌﺪ‬^_^
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CLASS KEYWORD ON JS
‫ﺍﻟﻤﺜﺎﻝ‬)‫ﺍﻟﺘﺎﻟﻴﺔ‬ ‫ﺑﺎﻟﺸﺮﻳﺤﺔ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺮﺡ‬(‫ﻣﻮﺟﻮﺩ‬ ‫ﻟﻮﻥ‬ ‫ﻟﻜﻞ‬ ‫ﺍﻧﺘﺒﻪ‬ ‫ﻟﻜﻦ‬ ،:
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CLASS KEYWORD ON JS
‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺮﺡ‬:
‫ﺍﻝ‬ ‫ﺃﻥ‬ ‫ﻫﻲ‬ ‫ﻣﻼﺣﻈﺔ‬ ‫ﻭﺃﻫﻢ‬ ‫ﺃﻭﻝ‬employeeName‫ﺗﻼﺣﻆ‬ ‫ﻛﻤﺎ‬function
‫ﺟﻌﻠﻪ‬ ‫ﻣﺎ‬ ‫ﻟﻜﻦ‬ ،‫ﻁﺒﻴﻌﻲ‬constructor‫ﻭﺟﻮﺩ‬ ‫ﻫﻮ‬
new employeeName‫ﺍﻝ‬ ‫ﺗﻌﺮﻳﻒ‬ ‫ﻋﻨﺪ‬object،‫ﺃﻳﻀﺎ‬ ‫ﺗﻼﺣﻆ‬ ‫ﻭﻛﻤﺎ‬ ،
‫ﺍﻝ‬ ‫ﻓﺈﻥ‬prototype،‫ﺍﻟﺨﺼﺎﺋﺺ‬ ‫ﺃﻭ‬ ‫ﺍﻟﺪﻭﺍﻝ‬ ‫ﻣﻦ‬ ‫ﺃﻱ‬ ‫ﻹﺿﺎﻓﺔ‬ ‫ﺍﺳﺘﺨﺪﻣﺖ‬
‫ﺍﻝ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﻳﺘﻢ‬ ‫ﺍﻟﺪﺍﻟﺔ‬ ‫ﻟﻬﺬﻩ‬ ‫ﺍﻟﻮﺻﻮﻝ‬ ‫ﻭﻛﺎﻥ‬ ،‫ﺍﻹﺳﻢ‬ ‫ﻁﺒﺎﻋﺔ‬ ‫ﺩﺍﻟﺔ‬ ‫ﺃﺿﻔﻨﺎ‬ ‫ﻭﺑﻤﺜﺎﻟﻨﺎ‬
Object‫ﺑﺈﻧﺸﺎﺋﻪ‬ ‫ﻗﻤﻨﺎ‬ ‫ﺍﻟﺬﻱ‬...
‫ﺑﻤﻔﺎﺟﺄﺓ‬ ‫ﺳﺄﺧﺒﺮﻛﻢ‬ ‫ﻭﺍﻵﻥ‬^_^:P‫ﺃﻱ‬ ‫ﺃﻥ‬ ‫ﺗﺨﻴﻞ‬ ،Object Letiral‫ﻓﻲ‬
‫ﻫﻮ‬ ‫ﺍﻟﻮﺍﻗﻊ‬constructor!!،‫ﻧﻌﻢ‬ ،constructor‫ﺍﻝ‬ ‫ﻟﻜﻦ‬pointer
‫ﻋﻠﻰ‬ ‫ﻳﺆﺷﺮ‬ ‫ﺑﻪ‬ ‫ﺍﻟﺨﺎﺹ‬Global Constructor Object^^
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CLASS KEYWORD ON JS
‫ﺳﻜﺮﺑﺖ‬ ‫ﺑﺎﻟﺠﺎﻓﺎ‬ ‫ﺍﻟﻮﺭﺍﺛﺔ‬ ‫ﻣﻔﻬﻮﻡ‬ ‫ﺍﻟﻰ‬ ‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ﺑﺈﺫﻥ‬ ‫ﺳﻨﺘﻄﺮﻕ‬ ،‫ﻭﺍﻵﻥ‬
)Understanding inheritance(‫ﺃﻥ‬ ‫ﻫﻮ‬ ‫ﻣﻌﺮﻓﺘﻪ‬ ‫ﻣﻨﻚ‬ ‫ﺃﺭﻳﺪ‬ ‫ﻣﺎ‬ ‫ﻭﺃﻭﻝ‬ ،
‫ﺍﻝ‬ ‫ﺟﻤﻴﻊ‬object‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬ ‫ﺍﻟﻤﻮﺟﻮﺩﺓ‬js‫ﻟﺪﻳﻬﺎ‬“‫ﺧﺎﺻﻴﺔ‬property“‫ﺗﺴﻤﻰ‬
prototype‫ﺍﻟﺨﺎﺻﻴﺔ‬ ‫ﻫﺬﻩ‬ ‫ﺗﻘﻮﻡ‬ ،“property”‫ﻋﻠﻰ‬ ‫ﺑﺎﻟﺘﺄﺷﻴﺮ‬object
‫ﻳﺪﻋﻰ‬ ‫ﺁﺧﺮ‬prototype)‫ﺍﻟﺴﺎﺑﻖ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻓﻲ‬ ‫ﺷﺎﻫﺪﻧﺎ‬ ‫ﻛﻤﺎ‬.. (
‫ﺍﻝ‬ ‫ﻫﺬﺍ‬ ‫ﺍﻵﻥ‬prototype object‫ﺃﻳﻀﺎ‬ ‫ﻳﻤﻠﻚ‬ ‫ﺑﺬﺍﺗﻪ‬ ‫ﻫﻮ‬ ‫ﺍﻟﻴﻪ‬ ‫ﻭﺻﻠﻨﺎ‬ ‫ﺍﻟﺬﻱ‬
Prototype‫ﻭﺍﻝ‬ ،null‫ﺍﻝ‬ ‫ﻓﻲ‬ ‫ﺗﻌﻨﻲ‬prototype‫ﻭﺟﻮﺩﻩ‬ ‫ﻋﺪﻡ‬
)‫ﻭﺟﻮﺩ‬ ‫ﻋﺪﻡ‬–‫ﻟﻞ‬ ‫ﻗﻴﻤﺔ‬ ‫ﺍﺳﻨﺎﺩ‬prototype.. (‫ﻧﺼﻞ‬ ‫ﻋﻨﺪﻣﺎ‬ ،‫ﺍﻟﻮﺍﻗﻊ‬ ‫ﻭﻓﻲ‬
‫ﺍﻝ‬ ‫ﻗﻴﻤﺔ‬ ‫ﺃﻥ‬ ‫ﻓﻴﻬﺎ‬ ‫ﻧﺠﺪ‬ ‫ﻟﻤﺮﺣﺔ‬prototype‫ﺗﺴﺎﻭﻱ‬null‫ﺃﻧﻨﺎ‬ ‫ﻳﻌﻨﻲ‬ ‫ﻓﻬﺬﺍ‬
‫ﺍﻟﺤﻠﻘﺔ‬ ‫ﻧﻬﺎﻳﺔ‬ ‫ﺍﻟﻰ‬ ‫ﻭﺻﻠﻨﺎ‬^_^..‫؟‬ ‫ﺍﻧﺘﻬﺖ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﺤﻠﻘﺔ‬ ‫ﻫﺬﻩ‬ ‫ﻫﻲ‬ ‫ﻣﺎ‬ ‫ﻟﻜﻦ‬
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CLASS KEYWORD ON JS
‫ﺳﻜﺮﺑﺖ‬ ‫ﺑﺎﻟﺠﺎﻓﺎ‬ ‫ﺍﻟﻮﺭﺍﺛﺔ‬ ‫ﻣﻔﻬﻮﻡ‬ ‫ﻫﻲ‬ ‫ﻋﻨﻬﺎ‬ ‫ﻭﺳﻨﺘﺤﺪﺙ‬ ‫ﺍﻧﺘﻬﺖ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﺤﻠﻘﺔ‬ ‫ﺇﻥ‬)
‫ﻟﻢ‬ ،‫ﺍﻹﺻﺪﺍﺭ‬ ‫ﻫﺬﺍ‬ ‫ﺗﺴﺒﻖ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻣﻔﺎﻫﻴﻢ‬ ‫ﻋﻦ‬ ‫ﻧﺘﺤﺪﺙ‬ ‫ﺃﻧﻨﺎ‬ ‫ﻻﺣﻆ‬
‫ﺑﻌﺪ‬ ‫ﺍﻟﺠﺪﻳﺪ‬ ‫ﻋﻦ‬ ‫ﻧﺘﺤﺪﺙ‬“‫ﻛﻤﻔﺎﻫﻴﻢ‬”‫ﻣﻌﺎ‬ ‫ﻛﻠﻴﻬﻤﺎ‬ ‫ﻋﻦ‬ ‫ﻧﺘﺤﺪﺙ‬ ‫ﻓﻘﺪ‬ ‫ﻭﺧﺼﺎﺋﺺ‬ ‫ﻛﺪﻭﺍﻝ‬ ‫ﺃﻣﺎ‬ ،(
‫ﻫﻲ‬ ‫ﺍﻟﺤﻠﻘﺔ‬:‫ﺍﻟﻰ‬ ‫ﺍﻟﻮﺻﻮﻝ‬ ‫ﻧﺤﺎﻭﻝ‬ ‫ﻋﻨﺪﻣﺎ‬property‫ﺩﺍﺧﻞ‬object‫ﻭﻛﺎﻧﺖ‬ ،
‫ﻫﺬﻩ‬property‫ﺍﻝ‬ ‫ﻫﺬﺍ‬ ‫ﺑﺪﺍﺧﻞ‬ ‫ﻣﻮﺟﻮﺩﺓ‬ ‫ﻏﻴﺮ‬object‫ﺍﻝ‬ ‫ﺳﻴﻘﻮﻡ‬ ،
property‫ﺍﻝ‬ ‫ﻋﻦ‬ ‫ﺑﺎﻟﺒﺤﺚ‬property‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬prototype‫ﻟﻢ‬ ‫ﺇﺫﺍ‬ ،
‫ﺍﻝ‬ ‫ﻫﺬﻩ‬ ‫ﺃﻳﻀﺎ‬ ‫ﻳﺠﺪ‬property‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬prototype‫ﺩﺍﺧﻞ‬ ‫ﺑﺎﻟﺒﺤﺚ‬ ‫ﺳﻴﻘﻮﻡ‬ ،
‫ﺍﻝ‬prototype‫ﺑﺎﻝ‬ ‫ﺍﻟﺨﺎﺹ‬prototype object‫ﺍﻟﺴﻠﺴﻠﺔ‬ ‫ﺗﺘﻢ‬ ‫ﻭﻫﻜﺬﺍ‬ ،
‫ﺍﻝ‬ ‫ﻧﺘﻴﺠﺔ‬ ‫ﻛﺎﻧﺖ‬ ‫ﻁﺎﻟﻤﺎ‬prototype‫ﺗﺴﺎﻭﻱ‬null‫ﻓﻲ‬ ‫ﺍﻟﻮﺭﺍﺛﺔ‬ ‫ﻣﺒﺪﺃ‬ ‫ﻫﻮ‬ ‫ﻭﻫﺬﺍ‬ ،
‫ﺃﺭﻳﺪ‬ ‫ﻣﺎ‬ ‫ﺃﺟﺪ‬ ‫ﺣﺘﻰ‬ ‫ﺍﻟﺨﺼﺎﺋﺺ‬ ‫ﺑﻮﺭﺍﺛﺔ‬ ‫ﺃﺳﺘﻤﺮ‬ ‫ﺗﻼﺣﻆ‬ ‫ﻛﻤﺎ‬ ،‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬
‫ﺃﻭﺃﻧﺘﻬﻲ‬^_^
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CLASS KEYWORD ON JS
‫ﻣﻬﻤﺔ‬ ‫ﻣﻼﺣﻈﺔ‬:‫ﺍﻝ‬JS Object‫ﻳﻤﻠﻚ‬ ‫ﺃﻥ‬ ‫ﺑﺈﻣﻜﺎﻧﻪ‬prototype،‫ﻓﻘﻂ‬ ‫ﻭﺍﺣﺪ‬
‫ﻓﻘﻂ‬ ‫ﺍﻷﺣﺎﺩﻳﺔ‬ ‫ﺍﻟﻮﺭﺍﺛﺔ‬ ‫ﺗﺪﻋﻢ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﻭﺍﻟﺠﺎﻓﺎ‬)single inheritance(
‫ﺍﻟﺨﺎﺻﻴﺔ‬ ‫ﺇﺳﺘﺨﺪﺍﻡ‬ ‫ﻳﻤﻜﻨﻨﺎ‬__proto__‫ﺍﻟﺪﺍﻟﺔ‬ ‫ﺃﻭ‬
Object.setPrototypeOf()‫ﺍﻝ‬ ‫ﻹﺳﻨﺎﺩ‬prototype‫ﺍﻝ‬ ‫ﺍﻟﻰ‬obj
‫ﺍﻝ‬ ‫ﺗﺪﻋﻢ‬ ‫ﻛﻤﺎ‬js‫ﺍﻟﺪﺍﻟﺔ‬Object.create()‫ﻹﻧﺸﺎء‬new object‫ﻳﺤﺘﻮﻱ‬
prototype‫ﺑﺘﺤﺪﻳﺪﻩ‬ ‫ﻧﺤﻦ‬ ‫ﻗﻤﻨﺎ‬ ‫ﻣﻌﻴﻦ‬...
‫ﻭﺍﻵﻥ‬..‫ﷲ‬ ‫ﺑﺈﺫﻥ‬ ‫ﺍﻵﻥ‬ ‫ﺳﺘﺘﻀﺢ‬ ‫ﻟﻜﻨﻬﺎ‬ ،‫ﻣﺎ‬ ‫ﻧﻮﻋﺎ‬ ‫ﺿﺒﺎﺑﻴﺔ‬ ‫ﺗﻜﻮﻥ‬ ‫ﻗﺪ‬ ‫ﺍﻟﻔﻜﺮﺓ‬ ‫ﺃﻥ‬ ‫ﺃﻋﻠﻢ‬
‫ﺑﺎﻟﺸﺮﺡ‬ ‫ﺍﻟﺨﺎﺻﺔ‬ ‫ﻭﺍﻟﺼﻮﺭﺓ‬ ،‫ﺍﻟﺘﺎﻟﻴﺔ‬ ‫ﺍﻟﺸﺮﻳﺤﺔ‬ ‫ﻓﻲ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻋﻠﻰ‬ ‫ﺍﻹﻁﻼﻉ‬ ‫ﺑﻌﺪ‬ ‫ﺗﻌﺎﻟﻰ‬
‫ﺍﻟﺘﺎﻟﻴﺔ‬ ‫ﺑﻌﺪ‬ ‫ﺍﻟﺸﺮﻳﺤﺔ‬ ‫ﻓﻲ‬...
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CLASS KEYWORD ON JS
‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬:
__proto__‫ﺧﺎﺻﻴﺔ‬deprecated‫ﻓﻲ‬ ‫ﻣﺪﻋﻮﻣﺔ‬ ‫ﻣﺎﺯﺍﻟﺖ‬ ‫ﻟﻜﻨﻬﺎ‬ ،
‫ﺑﺎﻷﺩﺍء‬ ‫ﺗﻬﺘﻢ‬ ‫ﻛﺎﻧﺖ‬ ‫ﺇﺫﺍ‬ ‫ﺧﺼﻮﺻﺎ‬ ،‫ﺑﺎﺳﺘﺨﺪﺍﻣﻬﺎ‬ ‫ﻳﻨﺼﺢ‬ ‫ﻻ‬ ‫ﻟﻜﻦ‬ ،‫ﺍﻟﻤﺘﺼﺤﻔﺎﺕ‬^_^
‫ﺍﻝ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻭﺑﺈﻣﻜﺎﻧﻚ‬create()‫ﻣﻨﻬﺎ‬ ‫ﺑﺪﻻ‬^_^...
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CLASS KEYWORD ON JS
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
‫ﺍﻝ‬ ‫ﻓﻜﺮﺓ‬ ‫ﺷﺎﻫﺪ‬ ،‫ﻭﺍﻵﻥ‬inheritance‫ﺑﺒﺎﻟﻲ‬ ‫ﺗﻜﻦ‬ ‫ﻟﻢ‬ ‫ﻭﺣﻘﻴﻘﺔ‬ ،‫ﻋﻨﻬﺎ‬ ‫ﺗﺤﺪﺛﻨﺎ‬ ‫ﺍﻟﺘﻲ‬
‫ﺍﻟﻤﻮﺿﻮﻉ‬ ‫ﻫﺬﺍ‬ ‫ﻓﻲ‬ ‫ﺍﻟﺒﺤﺚ‬ ‫ﺃﺛﻨﺎء‬ ‫ﻓﻲ‬ ‫ﻣﺼﺎﺩﻓﺔ‬ ‫ﻭﺟﺪﺗﻬﺎ‬ ‫ﺣﺘﻰ‬ ‫ﺍﻟﺼﻮﺭﺓ‬ ‫ﻫﺬﻩ‬^_^
CLASS KEYWORD ON JS
‫ﻣﺜﺎﻝ‬2:‫ﺍﻟﻮﺭﺍﺛﺔ‬ ‫ﻣﺒﺪﺃ‬ ‫ﻋﻠﻰ‬ ‫ﻋﻤﻠﻴﺔ‬ ‫ﻓﻜﺮﺓ‬ ‫ﻳﻮﺿﺢ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻫﺬﺍ‬:
‫ﻓﻲ‬ ‫ﺗﻜﻤﻦ‬ ‫ﺍﻟﻔﻜﺮﺓ‬ ‫ﺃﻥ‬ ‫ﻻﺣﻆ‬
‫ﺍﻝ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬school‫ﻣﻦ‬
‫ﺍﻝ‬ ‫ﺧﻼﻝ‬student،
‫ﺑﺎﻟﻨﻬﺎﻳﺔ‬ ‫ﺃﻧﻨﻲ‬ ‫ﻛﻴﻒ‬ ‫ﻭﻻﺣﻆ‬
‫ﺍﻝ‬ ‫ﺍﺳﺘﺨﺪﻣﺖ‬student
‫ﻣﻦ‬ ‫ﻛﻞ‬ ‫ﻟﻄﺒﺎﻋﺔ‬ ‫ﺃﻭﺑﺠﻴﻜﺖ‬
‫ﺍﻟﻤﺪﺭﺳﺔ‬ ‫ﻭﺍﺳﻢ‬ ‫ﺍﻟﻄﺎﻟﺐ‬ ‫ﺍﺳﻢ‬
‫ﺍﻝ‬ ‫ﻣﻦ‬)School.. (
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
ِ‫ﻪ‬‫ﻴ‬َ‫ﻠ‬َ‫ﻋ‬ ُ ‫ﱠ‬‫ﷲ‬ ‫ﻰ‬‫ﱠ‬‫ﻠ‬َ‫ﺻ‬ ِ ‫ﱠ‬‫ﷲ‬ ‫ﻮﻝ‬ُ‫ﺳ‬َ‫ﺭ‬ ‫ﺃﻥ‬ ُ‫ﻪ‬‫ﻨ‬َ‫ﻋ‬ ُ ‫ﱠ‬‫ﷲ‬ َ‫ﻲ‬ِ‫ﺿ‬َ‫ﺭ‬ ‫ﻨﻴﻒ‬ُ‫ﺣ‬ ‫ﺑﻦ‬ ‫ﺳﻬﻞ‬ ‫ﻭﻋﻦ‬
‫ﻗﺎﻝ‬ ‫ﻢ‬‫ﱠ‬‫ﻠ‬َ‫ﺳ‬َ‫ﻭ‬:
‫ﺭﻭﺍﻩ‬‫ﻣﺴﻠﻢ‬
CLASS KEYWORD ON JS
‫ﺍﻝ‬ ‫ﺍﻟﻰ‬ ‫ﻣﻌﺎ‬ ‫ﻧﺄﺗﻲ‬ ،‫ﻭﺍﻵﻥ‬CLASS‫ﺍﻟﻴﻬﺎ‬ ‫ﻭﺻﻠﻨﺎ‬ ‫ﺣﺘﻰ‬ ‫ﺍﻧﺘﻈﺎﺭﻧﺎ‬ ‫ﻁﺎﻝ‬ ‫ﺍﻟﺘﻲ‬^_^
‫ﺍﻝ‬ ‫ﺃﻥ‬ ‫ﻛﻴﻒ‬ ،‫ﺍﻟﺴﺎﺑﻘﺔ‬ ‫ﺑﺎﻟﺸﺮﺍﺋﺢ‬ ‫ﺷﺎﻫﺪﻧﺎ‬js object model‫ﺃﻣﺮﻳﻦ‬ ‫ﻋﻠﻰ‬ ‫ﻳﻌﺘﻤﺪ‬
‫ﺍﻝ‬ ‫ﻭﻫﻤﺎ‬ ‫ﺭﺋﻴﺴﻴﻴﻦ‬constructors‫ﻭﺍﻝ‬prototype‫ﻓﻲ‬ ‫ﻟﻪ‬ ‫ﺗﻄﺮﻗﻨﺎ‬ ‫ﺍﻟﺘﻲ‬
‫ﺍﻝ‬ ‫ﻟﻜﺘﺎﺑﺔ‬ ‫ﺟﺪﻳﺪﺓ‬ ‫ﻭﺳﻴﻠﺔ‬ ‫ﻋﻦ‬ ‫ﺳﻨﺘﺤﺪﺙ‬ ،‫ﻭﺍﻵﻥ‬ ،‫ﺍﻟﻮﺭﺍﺛﺔ‬ ‫ﻣﻮﺿﻮﻉ‬syntax
‫ﺑﺎﻝ‬ ‫ﺍﻟﺨﺎﺹ‬js object model‫ﻗﻠﺖ‬ ‫ﺃﻧﻨﻲ‬ ‫ﻭﻻﺣﻆ‬ ،)‫ﺟﺪﻳﺪﺓ‬ ‫ﻭﺳﻴﻠﺔ‬(‫ﻓﺎﻝ‬ ،
classes‫ﻟﻞ‬ ‫ﺟﺪﻳﺪ‬ ‫ﻣﻔﻬﻮﻡ‬ ‫ﺑﺈﻧﺸﺎء‬ ‫ﺗﻘﻮﻡ‬ ‫ﻻ‬js object model_^*‫ﻭﻫﺬﺍ‬ ،
‫ﺍﻝ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﺑﺎﺳﺘﺨﺪﺍﻣﻪ‬ ‫ﺳﻨﻘﻮﻡ‬ ‫ﻭﺍﻟﺬﻱ‬ ‫ﺍﻷﺳﻠﻮﺏ‬Class‫ﺗﺄﻛﻴﺪ‬ ‫ﺑﻜﻞ‬ ‫ﻣﻦ‬ ‫ﺳﻴﻜﻮﻥ‬ ،
‫ﺍﻝ‬ ‫ﺧﺼﺎﺋﺺ‬ ‫ﻣﻦ‬ES6‫ﺍﻟﺠﺪﻳﺪﺓ‬^_^‫ﺭﺅﻳﺔ‬ ‫ﻫﻮ‬ ‫ﺍﻷﺳﻠﻮﺏ‬ ‫ﻫﺬﺍ‬ ‫ﻳﻘﺪﻣﻪ‬ ‫ﻣﺎ‬ ‫ﻭﺃﻫﻢ‬ ،
‫ﻭﺍﻟﺘﺘﺒﻊ‬ ‫ﻟﻠﻔﻬﻢ‬ ‫ﻭﺃﻭﺿﺢ‬ ‫ﻭﻣﺮﻭﻧﺔ‬ ‫ﺳﻬﻮﻟﺔ‬ ‫ﺫﺍﺕ‬ ‫ﺍﻟﺒﺮﻣﺠﻴﺔ‬ ‫ﻟﻠﺸﻴﻔﺮﺓ‬ ‫ﺗﺮﻛﻴﺒﻴﺔ‬ ‫ﺑﻨﻴﺔ‬..
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CLASS KEYWORD ON JS
‫ﻣﻼﺣﻈﺔ‬:‫ﺍﻝ‬class‫ﻫﻮ‬ ‫ﺍﻟﻮﺍﻗﻊ‬ ‫ﻓﻲ‬function‫؟‬!‫ﺫﻭ‬ ‫ﻟﻜﻨﻪ‬ ،syntax‫ﺟﺪﻳﺪ‬
‫ﺍﻝ‬ ‫ﻹﻧﺸﺎء‬Function‫ﺍﻝ‬ ‫ﻳﺴﺘﺨﺪﻡ‬ ‫ﺍﻟﺬﻱ‬constructors‫ﺗﻘﻢ‬ ‫ﻻ‬ ‫ﻟﺬﻟﻚ‬ ،
‫ﺑﺎﻧﺸﺎء‬Class‫ﺍﻝ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻓﻲ‬ ‫ﺗﻔﻜﺮ‬ ‫ﻻ‬ ‫ﻛﻨﺖ‬ ‫ﺇﺫﺍ‬constructing objects
‫ﺍﻝ‬ ‫ﻟﺘﻌﺮﻳﻒ‬ ‫ﺇﺛﻨﺘﻴﻦ‬ ‫ﻁﺮﻳﻘﺘﻴﻦ‬ ‫ﻫﻨﺎﻙ‬Classً‫ﻭﻫﻦ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻓﻲ‬:
(1class declaration
(2class expression
‫ﺑﺎﻝ‬ ‫ﺍﻵﻥ‬ ‫ﻭﻟﻨﺒﺪﺃ‬class declaration_^*
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CLASS KEYWORD ON JS
1(The class declaration:‫ﻟﺘﻌﺮﻳﻒ‬Class‫ﺍﻟﻄﺮﻳﻘﺔ‬ ‫ﻫﺬﻩ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬
)Class Declaration(‫ﺍﻟﻤﺤﺠﻮﺯﺓ‬ ‫ﺍﻟﻜﻠﻤﺔ‬ ‫ﺑﺎﺳﺘﺨﺪﺍﻡ‬ ‫ﺍﻟﻘﻴﺎﻡ‬ ‫ﻳﻠﺰﻣﻚ‬
“ class “‫ﺛﻢ‬ ‫ﻭﻣﻦ‬“‫ﺍﻟﻜﻼﺱ‬ ‫ﺍﺳﻢ‬“....‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬:
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CLASS KEYWORD ON JS
2(The class expression:‫ﻟﻜﻦ‬ ،‫ﺍﻷﻭﻝ‬ ‫ﺑﺎﻷﺳﻠﻮﺏ‬ ‫ﺷﺒﻴﻪ‬ ‫ﺍﻷﺳﻠﻮﺏ‬ ‫ﻫﺬﺍ‬
‫ﺍﻟﻜﻼﺱ‬ ‫ﺍﺳﻢ‬ ‫ﻛﺘﺎﺑﺔ‬ ‫ﺍﻟﻰ‬ ‫ﺗﺤﺘﺎﺝ‬ ‫ﻟﻦ‬ ‫ﻫﻨﺎ‬...‫ﺍﻝ‬ ‫ﻛﺘﺎﺑﺔ‬ ‫ﻁﺮﻳﻘﺔ‬ ‫ﻭﺗﺒﻘﻰ‬ ،body‫ﻭﺍﻝ‬
Method‫ﺫﺍﺗﻬﺎ‬ ‫ﻫﻲ‬^_^...‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬:
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CLASS KEYWORD ON JS
‫ﺍﻝ‬ ‫ﻣﻮﺿﻮﻉ‬ ‫ﺍﻟﻰ‬ ‫ﻧﻌﻮﺩ‬ ،‫ﻭﺍﻵﻥ‬Prototype‫ﻣﺠﺪﺩﺍ‬^_^..‫ﺳﻬﻮﻟﺔ‬ ‫ﺷﺎﻫﺪ‬ ‫ﻟﻜﻦ‬
‫ﺍﻵﻥ‬ ‫ﺍﻷﻣﺮ‬ ‫ﻫﺬﺍ‬^_^..
‫ﺍﻝ‬ ‫ﺃﻥ‬ ‫ﻫﻮ‬ ‫ﺍﻵﻥ‬ ‫ﻣﻌﺮﻓﺘﻪ‬ ‫ﻣﻨﻚ‬ ‫ﺃﺭﻳﺪ‬ ‫ﻣﺎ‬prototype methods‫ﺃﻱ‬ ‫ﻫﻲ‬
Method‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬ ‫ﻭﺿﻌﻬﺎ‬ ‫ﻳﺘﻢ‬Class Body^_^...‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬:
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CLASS KEYWORD ON JS
The Set & Get Method:‫ﻣﻦ‬ ‫ﻳﻤﻜﻨﻨﺎ‬ ‫ﺩﻭﺍﻝ‬ ‫ﻹﻧﺸﺎء‬ ‫ﺍﻟﺪﻭﺍﻝ‬ ‫ﻫﺬﻩ‬ ‫ﺗﺴﺘﺨﺪﻡ‬
‫ﺍﻝ‬ ‫ﻧﻄﺎﻕ‬ ‫ﺿﻤﻦ‬ ‫ﺗﺴﺘﺨﺪﻡ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﻘﻴﻢ‬ ‫ﺍﻟﻰ‬ ‫ﺍﻟﻮﺻﻮﻝ‬ ‫ﺧﻼﻟﻬﺎ‬class‫ﻗﻴﻤﺘﻬﺎ‬ ‫ﺗﻐﻴﻴﺮ‬ ‫ﺃﻭ‬
‫ﺍﻝ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﺍﺳﻨﺎﺩﻫﺎ‬ ‫ﺗﻢ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺃﻭ‬ ‫ﺍﻟﺤﺎﻟﻴﺔ‬constructor..‫ﺳﻬﻞ‬ ‫ﺍﻟﻤﻮﺿﻮﻉ‬
‫ﺍﻝ‬ ‫ﻋﻦ‬ ‫ﻳﺨﺘﻠﻒ‬ ‫ﻭﻟﻢ‬ES5‫ﺍﻝ‬ ‫ﻓﻲ‬ ‫ﺍﻟﻤﺮﺓ‬ ‫ﻫﺬﻩ‬ ‫ﺳﻨﺴﺘﺨﺪﻣﻬﺎ‬ ‫ﺃﻧﻨﺎ‬ ‫ﺳﻮﻯ‬ ،class^^
‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬)‫ﺍﻟﺘﺎﻟﻴﺔ‬ ‫ﺍﻟﺸﺮﻳﺤﺔ‬ ‫ﻓﻲ‬:(‫ﻻﺳﺘﻌﺮﺍﺽ‬ ‫ﺍﻹﻧﺘﻘﺎﻝ‬ ‫ﻗﺒﻞ‬ ‫ﻟﻠﻨﺘﺎﺋﺞ‬ ‫ﻭﺍﻧﺘﺒﻪ‬
‫ﺑﺎﻟﻨﺘﺎﺋﺞ‬ ‫ﺍﻟﺨﺎﺻﺔ‬ ‫ﺍﻟﺒﺮﻣﺠﻴﺔ‬ ‫ﺍﻟﺸﻴﻔﺮﺓ‬:
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CLASS KEYWORD ON JS
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CLASS KEYWORD ON JS
Implementing inheritance in classes:‫ﻋﻦ‬ ‫ﺗﺤﺪﺛﻨﺎ‬ ‫ﻟﻘﺪ‬
‫ﺍﻝ‬ ‫ﻟﺘﺘﺒﻊ‬ ‫ﻣﺰﻋﺠﺎ‬ ‫ﺍﻷﻣﺮ‬ ‫ﻛﺎﻥ‬ ‫ﻛﻢ‬ ‫ﺳﻮﻳﺎ‬ ‫ﻭﺷﺎﻫﺪﻧﺎ‬ ،‫ﺍﻟﻤﻮﺿﻮﻉ‬ ‫ﻫﺬﺍ‬ ‫ﻓﻲ‬ ‫ﺍﻟﻮﺭﺍﺛﺔ‬
Function‫ﺍﻵﺧﺮ‬ ‫ﻣﻨﻬﻤﺎ‬ ‫ﻛﻞ‬ ‫ﻭﻭﺭﺍﺛﺔ‬..‫ﺑﺎﻝ‬ ‫ﺗﻄﻮﺭ‬ ‫ﺍﻷﺳﻠﻮﺏ‬ ‫ﻫﺬﺍ‬ ‫ﻟﻜﻦ‬ ،‫ﺍﻟﺦ‬
ES6‫ﻭﻫﻲ‬ ‫ﻣﺤﺠﻮﺯﺓ‬ ‫ﻛﻠﻤﺔ‬ ‫ﻟﺪﻳﻨﺎ‬ ‫ﻓﺄﺻﺒﺢ‬ ،extends‫ﻟﻨﺎ‬ ‫ﻟﺘﻘﺪﻡ‬ ‫ﻭﺟﺪﺕ‬ ،
‫ﺍﻟﻮﺭﺍﺛﺔ‬ ‫ﻋﺎﻟﻢ‬ ‫ﻓﻲ‬ ‫ﺧﺪﻣﺎﺗﻬﺎ‬_^*‫ﺍﻝ‬ ‫ﻫﺬﻩ‬ ‫ﺗﺄﺗﻲ‬ ‫ﻟﻢ‬ ‫ﻟﻜﻦ‬ ،extends‫ﺑﻞ‬ ،‫ﻟﻮﺣﺪﻫﺎ‬
‫ﺍﻟﻤﺤﺠﻮﺯﺓ‬ ‫ﺍﻟﻜﻠﻤﺔ‬ ‫ﻫﻨﺎﻙ‬ ‫ﺃﻳﻀﺎ‬super‫ﺑﺮﻣﺠﺔ‬ ‫ﻟﻐﺔ‬ ‫ﻓﻲ‬ ‫ﺧﺒﺮﺓ‬ ‫ﺃﻱ‬ ‫ﻟﺪﻳﻪ‬ ‫ﻭﺍﻟﺬﻱ‬ ،
‫ﻋﻦ‬ ‫ﺷﻲء‬ ‫ﻳﻌﻠﻢ‬ ‫ﻻ‬ ‫ﺍﻟﺬﻱ‬ ‫ﺃﻣﺎ‬ ،‫ﻭﺃﻫﻤﻴﺘﻬﺎ‬ ‫ﺍﻟﻜﻠﻤﺎﺕ‬ ‫ﻫﺬﻩ‬ ‫ﺭﻭﻋﺔ‬ ‫ﻣﺪﻯ‬ ‫ﺳﻴﻌﻠﻢ‬ ،‫ﺃﺧﺮﻯ‬
‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ﺑﺈﺫﻥ‬ ‫ﺍﻵﻥ‬ ‫ﺭﻭﻋﺘﻬﺎ‬ ‫ﻓﺴﺘﺪﺭﻙ‬ ،‫ﺍﻟﻜﻠﻤﺎﺕ‬ ‫ﻫﺬﻩ‬^_^...
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CLASS KEYWORD ON JS
extends:‫ﺍﻝ‬ ‫ﺗﺴﺘﺨﺪﻡ‬extends‫ﺍﻟﺨﺼﺎﺋﺺ‬ ‫ﻟﻮﺭﺍﺛﺔ‬
OR staticnon-static‫ﺃﻱ‬ ‫ﻣﻦ‬Constructor،‫ﺁﺧﺮ‬
‫ﺍﻝ‬ ‫ﻋﻦ‬ ‫ﺍﻟﻨﻈﺮ‬ ‫ﻭﺑﻐﺾ‬Constructor‫ﺿﻤﻦ‬ ‫ﻭﺟﺪ‬ ‫ﻫﻞ‬class keyword
‫ﺿﻤﻦ‬ ‫ﻳﻮﺟﺪ‬ ‫ﻟﻢ‬ ‫ﺃﻡ‬class‫ﺍﻟﻮﺭﺍﺛﺔ‬ ‫ﺳﺘﺘﻢ‬ ‫ﻓﺈﻧﻪ‬ ،_^*
super:‫ﺍﻝ‬ ‫ﺗﺴﺘﺨﺪﻡ‬super‫ﺍﺛﻨﻴﻦ‬ ‫ﻷﻣﺮﻳﻦ‬:
(1‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬ ‫ﺗﺴﺘﺨﺪﻡ‬Constructor‫ﺩﺍﺧﻞ‬ ‫ﺍﻟﻤﻮﺟﻮﺩ‬class‫ﺍﻝ‬ ‫ﻹﺳﺘﺪﻋﺎء‬ ،
Parent Constructor)‫ﺍﻝ‬Constructor‫ﺑﺎﻟﻜﻼﺱ‬ ‫ﺍﻟﺨﺎﺹ‬
‫ﻭﺭﺍﺛﺘﻪ‬ ‫ﺗﻢ‬ ‫ﺍﻟﺬﻱ‬.(
(2‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬ ‫ﺗﺴﺘﺨﺪﻡ‬method‫ﺍﻝ‬ ‫ﻻﺳﺘﺪﻋﺎء‬ ،‫ﻛﻼﺱ‬ ‫ﺩﺍﺧﻞ‬ ‫ﺍﻟﻤﻮﺟﻮﺩ‬
static or non-static method‫ﺍﻝ‬ ‫ﻣﻦ‬class‫ﻭﺭﺍﺛﺘﻪ‬ ‫ﺗﻢ‬ ‫ﺍﻟﺬﻱ‬
‫ﺍﻟﺘﺎﻟﻴﺔ‬ ‫ﺑﺎﻟﺸﺮﻳﺤﺔ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬:
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CLASS KEYWORD ON JS
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
CLASS KEYWORD ON JS
‫ﺍﻝ‬ ‫ﻣﻮﺿﻮﻉ‬ ‫ﻣﻦ‬ ‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ﺑﻔﻀﻞ‬ ‫ﺍﻧﺘﻬﻴﻨﺎ‬ ‫ﻧﻜﻮﻥ‬ ‫ﻭﻫﻜﺬﺍ‬Class‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻓﻲ‬
‫ﻫﻮ‬ ‫ﻋﻨﻪ‬ ‫ﺗﺤﺪﺛﻨﺎ‬ ‫ﻣﺎ‬ ‫ﻭﻣﻠﺨﺺ‬ ،‫ﺳﻜﺮﺑﺖ‬)‫ﻟﻺﺻﺪﺍﺭ‬ES6‫ﺍﻝ‬ ‫ﻁﺮﻳﻘﺔ‬ ‫ﻣﺜﻞ‬ ‫ﻗﺒﻞ‬ ‫ﻭﻣﺎ‬
inherit‫ﺍﻝ‬ ‫ﻗﺒﻞ‬ES6‫ﺑﺎﻝ‬ ‫ﻟﺸﺮﺣﻬﺎ‬ ‫ﺍﻟﺘﻄﺮﻕ‬ ‫ﺛﻢ‬ ‫ﻭﻣﻦ‬ES6: (
(1CLASS
(2Extends
(3Super
(4Get & Set Method
(5Object in javascript
(6Prototype
(7Constructor
(8Inheritance
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
‫ﻫﻨﺎ‬ ‫ﻣﻦ‬ ‫ﻭﻏﻴﺮﻫﺎ‬ ‫ﺗﻄﺒﻴﻘﻬﺎ‬ ‫ﺗﻢ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻷﻣﺜﻠﺔ‬ ‫ﺟﻤﻴﻊ‬ ‫ﺷﺎﻫﺪ‬
‫ﻣﻜﺎﻥ‬ ‫ﻛﻞ‬ ‫ﻓﻲ‬ ‫ﺍﻟﺤﻖ‬ ‫ﺃﻫﻞ‬ ‫ﺍﻧﺼﺮ‬ ‫ﺍﻟﻠﻬﻢ‬
‫ﺍﺳﻤﻚ‬ ‫ﻓﻴﻪ‬ ‫ُﺬﻛﺮ‬‫ﻳ‬
‫ﺭﺍﻳﺘﻚ‬ ‫ﻭﺭﻓﻊ‬ ‫ﻛﻠﻤﺘﻚ‬ ‫ﻹﻋﻼء‬ ‫ﻓﻴﻪ‬ ‫ُﺠﺎﻫﺪ‬‫ﻳ‬‫ﻭ‬
‫ﻋﺒﺎﺩﻙ‬ ‫ﻣﻦ‬ ‫ﻭﺍﻟﻤﺴﺘﻀﻌﻔﻴﻦ‬ ‫ﺍﻟﺤﻖ‬ ‫ﻷﻫﻞ‬ ‫ﻓﻴﻪ‬ ‫ُﻨﺘﺼﺮ‬‫ﻳ‬‫ﻭ‬
‫ﻣﻜﺎﻥ‬ ‫ﻛﻞ‬ ‫ﻓﻲ‬ ‫ﺍﻟﺤﻖ‬ ‫ﻷﻫﻞ‬ ‫ﻛﻦ‬ ‫ﺍﻟﻠﻬﻢ‬...
‫ﺟﻬﻠﻨﺎﻫﻢ‬ ‫ﻭﺇﻥ‬ ‫ﺍﻟﺤﻖ‬ ‫ﺃﻫﻞ‬ ‫ﺍﻧﺼﺮ‬ ‫ﺍﻟﻠﻬﻢ‬
‫ﻭﺃﺷﻜﺎﻟﻬﻢ‬ ‫ﺃﺳﻤﺎﺅﻫﻢ‬ ‫ﻏﺮﺗﻨﺎ‬ ‫ﻭﺇﻥ‬ ‫ﺍﻟﺒﺎﻁﻞ‬ ‫ﺑﺄﻫﻞ‬ ‫ﻭﻋﻠﻴﻚ‬
‫ﺫﻟﻚ‬ ‫ﺩﻭﻥ‬ ‫ﺗﺠﻌﻠﻨﺎ‬ ‫ﻭﻻ‬ ‫ﻟﻠﺤﻖ‬ ‫ﻧﺼﺮﺍ‬ ‫ﺍﺟﻌﻠﻨﺎ‬ ‫ﺍﻟﻠﻬﻢ‬
‫ﺁﻣﻴﻦ‬ ‫ﺍﻟﻠﻬﻢ‬
FOR OF LOOP
‫ﺍﻝ‬For Of Loop‫ﺍﻹﺻﺪﺍﺭ‬ ‫ﻣﻦ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﺍﻟﻰ‬ ‫ﺇﺿﺎﻓﺘﻪ‬ ‫ﺗﻢ‬ ‫ﺟﺪﻳﺪ‬ ‫ﺃﺳﻠﻮﺏ‬
‫ﺍﻝ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻭﻳﺘﻢ‬ ،‫ﺍﻟﺴﺎﺩﺱ‬for...of‫ﺍﻟﻌﻨﺎﺻﺮ‬ ‫ﻋﻠﻰ‬ ‫ﺗﺪﻭﺭ‬ ‫ﺩﻭﺭﺍﻥ‬ ‫ﺣﻠﻘﺔ‬ ‫ﻹﻧﺸﺎء‬
‫ﺳﻜﺮﺑﺖ‬ ‫ﺟﺎﻓﺎ‬ ‫ﺩﺍﺧﻞ‬ ‫ﻣﻮﺟﻮﺩﺓ‬ ‫ﻓﺌﺔ‬ ‫ﺃﻭ‬ ‫ﻣﺠﻤﻮﻋﺔ‬ ‫ﺃﻱ‬ ‫ﻓﻲ‬ ‫ﺍﻟﻤﻮﺟﻮﺩﺓ‬)object,
array, map...‫ﺍﻟﺦ‬(‫ﺑﺮﻣﺠﻴﺔ‬ ‫ﺟﻤﻠﺔ‬ ‫ﺗﻨﻔﻴﺬ‬ ‫ﻣﻦ‬ ‫ﻳﻤﻜﻨﻨﺎ‬ ‫ﺍﻷﺳﻠﻮﺏ‬ ‫ﻫﺬﺍ‬ ‫ﺃﻥ‬ ‫ﻛﻤﺎ‬ ،
‫ﺧﺼﺎﺋﺼﻪ‬ ‫ﻣﻦ‬ ‫ﺃﻱ‬ ‫ﻋﻠﻰ‬ ‫ﻟﻠﺘﻌﺪﻳﻞ‬ ‫ﺣﺪﻯ‬ ‫ﻋﻠﻰ‬ ‫ﺟﻠﺒﻪ‬ ‫ﺗﻢ‬ ‫ﻋﻨﺼﺮ‬ ‫ﻛﻞ‬ ‫ﻋﻠﻰ‬_^*
)Invoking Custom Hook With Statement(
‫ﺍﻟﻌﺎﻣﺔ‬ ‫ﺍﻟﺼﻴﻐﺔ‬:
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
FOR OF LOOP
‫ﺍﻟﻌﺎﻣﺔ‬ ‫ﺍﻟﺼﻴﻐﺔ‬ ‫ﺷﺮﺡ‬:
Variable:‫ﺍﻟﺨﺼﺎﺋﺺ‬ ‫ﻣﻦ‬ ‫ﺟﻠﺒﻬﺎ‬ ‫ﻳﺘﻢ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﻘﻴﻢ‬ ،‫ﺩﻭﺭﺍﻥ‬ ‫ﻋﻤﻠﻴﺔ‬ ‫ﻛﻞ‬ ‫ﻓﻲ‬
)property(‫ﻟﻞ‬object
‫ﺍﻝ‬Object:‫ﻋﻠﻰ‬ ‫ﻭﺍﺣﺪﺓ‬ ‫ﻛﻞ‬ ‫ﺍﻟﺪﻭﺭﺍﻥ‬ ‫ﺃﺛﻨﺎء‬ ‫ﻣﻨﻪ‬ ‫ﺍﻟﻌﻨﺎﺻﺮ‬ ‫ﺃﺧﺬ‬ ‫ﻳﺘﻢ‬ ‫ﺍﻟﺬﻱ‬ ‫ﺍﻟﻜﺎﺋﻦ‬
‫ﺣﺪﺓ‬_^*
‫ﺍﻟﻌﺮﺑﻴﺔ‬ ‫ﺍﻟﻠﻐﺔ‬ ‫ﻓﻲ‬ ‫ﻣﻼﺣﻈﺔ‬:“‫ﺣﺪﻯ‬“‫ﺃﻭ‬“‫ﺣﺪﺍ‬“‫ﻭﺍﻟﺼﺤﻴﺢ‬ ،‫ﺧﺎﻁﺌﺔ‬ ‫ﻛﺘﺎﺑﺔ‬ ‫ﻫﻲ‬
‫ﺍﻟﻤﺮﺑﻮﻁﺔ‬ ‫ﺑﺎﻟﺘﺎء‬ ‫ﻛﺘﺎﺑﻬﺎ‬“‫ﺣﺪﺓ‬“
‫ﻣﻌﺠﻢ‬ ‫ﻓﻲ‬ ‫ﺟﺎء‬)‫ﺍﻟﻠﻐﺔ‬ ‫ﻣﺘﻦ‬/‫ﻭﺣﺪ‬:(
»ً‫ﺓ‬َ‫ﺪ‬ِ‫ﻭﺣ‬ ً‫ﺍ‬‫ﺪ‬ْ‫ﺣ‬َ‫ﻭ‬ ُ‫ﺪ‬ِ‫ﺤ‬َ‫ﻳ‬ َ‫ﺪ‬َ‫ﺣ‬َ‫ﻭ‬:‫ﻩ‬َ‫ﺪ‬ْ‫ﺣ‬َ‫ﻭ‬ ‫ﺻﺎﺭ‬«.‫ﻓﻴﻪ‬ ‫ﻭﺟﺎء‬:
»ُ‫ﺓ‬َ‫ﺪ‬ِ‫ﺍﻟﺤ‬:‫ﺓ‬َ‫ﺪ‬ِ‫ﻌ‬‫ﻛﺎﻟ‬)‫ﺪﺭ‬ْ‫ﺼ‬َ‫ﻣ‬.(‫ﺗﻘﻮﻝ‬:ُ‫ﻩ‬َ‫ﺪ‬ْ‫ﺣ‬َ‫ﻭ‬ ً‫ﺍ‬‫ﻔﺮﺩ‬ْ‫ﻨ‬ُ‫ﻣ‬ ‫ﺃﻱ‬ ،ٍ‫ﺓ‬َ‫ﺪ‬ِ‫ﺣ‬ ‫ﻋﻠﻰ‬ ‫ﻪ‬َ‫ﻠ‬َ‫ﻌ‬َ‫ﺟ‬.‫ﻭﺗﻘﻮﻝ‬:‫ﻪ‬َ‫ﻠ‬َ‫ﻌ‬َ‫ﻓ‬
‫ﺫﺍﺕ‬ ‫ﻭﻣﻦ‬ ‫ﻪ‬ِ‫ﺴ‬ْ‫ﻔ‬َ‫ﻧ‬ ‫ﺫﺍﺕ‬ ‫ﻣﻦ‬ ‫ﺃﻱ‬ ،‫ﻪ‬ِ‫ﺗ‬َ‫ﺪ‬ِ‫ﺣ‬ ‫ﺫﻱ‬ ‫ﻭﻣﻦ‬ ‫ﻪ‬ِ‫ﺗ‬َ‫ﺪ‬ِ‫ﺣ‬ ‫ﺫﺍﺕ‬ ‫ﻭﻋﻠﻰ‬ ،ِ‫ﻪ‬ِ‫ﺗ‬َ‫ﺪ‬ِ‫ﺣ‬ ‫ﺫﺍﺕ‬ ‫ﻣﻦ‬
‫ﺭﺃﻳﻪ‬.‫ﻭﺗﻘﻮﻝ‬:‫ﱠ‬‫ﻦ‬ِ‫ﻬ‬ِ‫ﺗ‬َ‫ﺪ‬ِ‫ﺣ‬ ‫ﻭﻋﻠﻰ‬ ،‫ﻬﻢ‬ِ‫ﺗ‬َ‫ﺪ‬ِ‫ﺣ‬ ‫ﻭﻋﻠﻰ‬ ،‫ﻬﻤﺎ‬ِ‫ﺗ‬َ‫ﺪ‬ِ‫ﺣ‬ ‫ﻭﻋﻠﻰ‬ ،‫ﻪ‬ِ‫ﺗ‬َ‫ﺪ‬ِ‫ﺣ‬ ‫ﻋﻠﻰ‬ َ‫ﺲ‬َ‫ﻠ‬َ‫ﺟ‬.«
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
FOR OF LOOP
‫ﺍﻝ‬ ‫ﻋﻦ‬ ‫ﺍﻟﺤﺪﻳﺚ‬ ‫ﻗﺒﻞ‬For Of‫ﻋﻠﻰ‬ ‫ﺃﻣﺜﻠﺔ‬ ‫ﻧﺸﺎﻫﺪ‬ ‫ﺩﻋﻮﻧﺎ‬For Loop‫ﻧﺴﺘﺨﺪﻣﻬﺎ‬
‫ﻣﺜﻞ‬For In‫ﺃﻭ‬For‫ﺃﻭ‬
For each‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬:
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
FOR OF LOOP
،‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﺃﺳﺎﺳﻴﺎﺕ‬ ‫ﻣﻦ‬ ‫ﻓﺘﻠﻚ‬ ،‫ﺍﻟﺴﺎﺑﻖ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺮﺡ‬ ‫ﻋﻦ‬ ‫ﺃﺗﺤﺪﺙ‬ ‫ﻟﻦ‬ ،‫ﻭﺍﻵﻥ‬
‫ﺍﻝ‬ ‫ﺃﺟﻠﻬﺎ‬ ‫ﻣﻦ‬ ‫ﺟﺎﺋﺖ‬ ‫ﺍﻟﺘﻲ‬ ‫ﻭﺍﻟﻤﺸﻜﻠﺔ‬ ،‫ﺍﻷﺳﺎﻟﻴﺐ‬ ‫ﺗﻠﻚ‬ ‫ﺳﻠﺒﻴﺎﺕ‬ ‫ﻫﻮ‬ ‫ﺳﺄﺫﻛﺮﻩ‬ ‫ﻣﺎ‬ ‫ﻟﻜﻦ‬
For OF_^*
1(For In:
*‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻳﻤﻜﻨﻚ‬ ‫ﻻ‬break, continue
*‫ﺟﻤﻴﻊ‬ ‫ﻋﻠﻰ‬ ‫ﺑﺎﻟﺪﻭﺭﺍﻥ‬ ‫ﺗﻘﻮﻡ‬“‫ﺍﻟﺨﺼﺎﺋﺺ‬“‫ﻟﻠﻌﺪ‬ ‫ﺍﻟﻘﺎﺑﻠﺔ‬)‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻻﺣﻆ‬
‫ﺍﻟﺴﺎﺑﻖ‬(
*‫ﻣﺎ‬ ‫ﻓﺈﻥ‬ ،‫ﺭﻗﻢ‬ ‫ﻛﺎﻥ‬ ‫ﻟﻮ‬ ‫ﻭﺣﺘﻰ‬ ،‫ﻧﺼﻲ‬ ‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬ ‫ﺍﻟﺒﻴﺎﻧﺎﺕ‬ ‫ﺍﺭﺟﺎﻉ‬ ‫ﻋﻠﻰ‬ ‫ﺗﻘﻮﻡ‬
‫ﻫﻮ‬ ‫ﺍﺭﺟﺎﻋﻪ‬ ‫ﻳﺘﻢ‬“1”‫ﺗﺼﺒﺢ‬ ‫ﺍﻟﺠﻤﻊ‬ ‫ﻭﻋﻨﺪ‬“1”+“2”=“3”‫ﻭﻫﺬﻩ‬
‫ﺳﻴﺌﺔ‬ ‫ﻋﻤﻠﻴﺔ‬
*،‫ﻣﺎ‬ ‫ﻟﺴﺒﺐ‬ ‫ﺍﻟﺘﻜﺮﺍﺭ‬ ‫ﻳﺰﻳﺪ‬ ‫ﻗﺪ‬ ‫ﺍﻟﻈﺮﻭﻑ‬ ‫ﺑﻌﺾ‬ ‫ﻓﻲ‬ ‫ﺃﻧﻬﺎ‬ ‫ﻣﺸﺎﻛﻠﻬﺎ‬ ‫ﺇﺣﺪﻯ‬ ‫ﻣﻦ‬
‫ﺍﻟﺨﺎﺹ‬ ‫ﺍﻟﺘﺮﺗﻴﺐ‬ ‫ﻳﻀﻤﻦ‬ ‫ﻣﺎ‬ ‫ﻳﻮﺟﺪ‬ ‫ﻻ‬ ‫ﺃﻧﻪ‬ ‫ﻛﻤﺎ‬ ،‫ﻛﺜﻴﺮﺓ‬ ‫ﻣﺸﺎﻛﻞ‬ ‫ﻳﺴﺒﺐ‬ ‫ﻭﻫﺬﺍ‬
‫ﺍﻟﻤﺼﻔﻮﻓﺔ‬ ‫ﺩﺍﺧﻞ‬ ‫ﺭﺗﺒﺖ‬ ‫ﻛﻤﺎ‬ ‫ﺗﻈﻬﺮ‬ ‫ﺃﻥ‬ ‫ﺑﺎﻟﻨﺘﺎﺋﺞ‬...
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
FOR OF LOOP
2(Foreach:
*‫ﺍﻝ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻳﻤﻜﻦ‬ ‫ﻻ‬break, continue
*‫ﺍﻝ‬ ‫ﻣﻊ‬ ‫ﻓﻘﻂ‬ ‫ﺍﺳﺘﺨﺪﺍﻣﻬﺎ‬ ‫ﻳﻤﻜﻦ‬Array Objects
3(Default For Loop:
*‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﺍﻟﻤﺼﻔﻮﻓﺔ‬ ‫ﻋﻨﺎﺻﺮ‬ ‫ﻋﺪﺩ‬ ‫ﺑﻤﻌﺮﻓﺔ‬ ‫ﻭﺗﻠﺰﻣﻨﻲ‬ ،‫ﻣﺎ‬ ‫ﻧﻮﻋﺎ‬ ‫ﻁﻮﻳﻠﺔ‬
‫ﺍﻟﺪﺍﻟﺔ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﺃﻭ‬ ‫ﺭﻗﻢ‬length...
*‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﺍﻟﻰ‬ ‫ﻓﺴﺘﺤﺘﺎﺝ‬ ،‫ﺧﻼﻟﻬﺎ‬ ‫ﻣﻦ‬ ‫ﻣﺒﺎﺷﺮﺓ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﺍﻟﻰ‬ ‫ﺍﻟﻮﺻﻮﻝ‬ ‫ﻳﻤﻜﻦ‬ ‫ﻻ‬
‫ﻭﺍﻝ‬ ‫ﺍﻟﻤﺼﻔﻮﻓﺔ‬index‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﻋﻠﻰ‬ ‫ﻟﻠﺤﺼﻮﻝ‬ ‫ﻓﻴﻪ‬ ‫ﺍﻟﻤﺘﻮﺍﺟﺪ‬..
‫ﺍﻝ‬ ‫ﻓﻜﺮﺓ‬ ،‫ﺍﻵﻥ‬For Of‫ﻭﺭﺩﺕ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﻤﺸﺎﻛﻞ‬ ‫ﻫﺬﻩ‬ ‫ﺑﺤﻞ‬ ‫ﻟﺘﻘﻮﻡ‬ ‫ﺃﺗﺖ‬_^*
‫ﻣﺜﺎﻻ‬ ‫ﻟﻨﺸﺎﻫﺪ‬ ،‫ﻭﻋﻠﻴﻬﺎ‬^ _^
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
FOR OF LOOP
‫ﻣﺜﺎﻝ‬1:
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
FOR OF LOOP
‫ﻣﺜﺎﻝ‬2:‫ﺗﺤﺘﻮﻱ‬ ‫ﻣﺼﻔﻮﻓﺔ‬ ‫ﻋﻠﻰ‬ ‫ﺑﺎﻟﺪﻭﺭﺍﻥ‬ ‫ﺳﻨﻘﻮﻡ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻫﺬﺍ‬ ‫ﻓﻲ‬object
‫ﺍﻝ‬ ‫ﻫﺬﺍ‬ ‫ﻗﻴﻢ‬ ‫ﺍﻟﻰ‬ ‫ﺍﻟﻮﺻﻮﻝ‬ ‫ﻳﻤﻜﻨﻨﻲ‬ ‫ﻭﻛﻴﻒ‬ ،‫ﺑﺪﺍﺧﻠﻬﺎ‬object‫ﺑﺴﻬﻮﻟﺔ‬^_^
‫ﻣﻼﺣﻈﺔ‬:‫ﺃﻥ‬ ‫ﺇﻧﺘﺒﻪ‬empInfo‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﺗﻌﺮﻳﻔﻬﺎ‬ ‫ﻳﺘﻢ‬ ‫ﻟﻢ‬ ‫ﺍﺫﺍ‬let‫ﺃﻭ‬var‫ﻗﺒﻞ‬
‫ﺧﻄﺄ‬ ‫ﻟﻚ‬ ‫ﺳﻴﻈﻬﺮ‬ ‫ﺍﻹﺳﺘﺨﺪﺍﻡ‬ ‫ﺃﺛﻨﺎء‬ ‫ﺃﻭ‬ ‫ﺍﻹﺳﺘﺨﺪﺍﻡ‬empInfo is not defined
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
“0O” LITERAL
‫ﺍﻝ‬0o‫ﺍﻟﺜﻤﺎﻧﻲ‬ ‫ﺍﻟﻨﻈﺎﻡ‬ ‫ﻣﻦ‬ ‫ﺍﻷﺭﻗﺎﻡ‬ ‫ﻟﺘﻌﺮﻑ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻓﻲ‬ ‫ﺟﺪﻳﺪﺓ‬ ‫ﻁﺮﻳﻘﺔ‬ ‫ﻫﻲ‬
)octal(‫ﻣﻊ‬ ‫ﻟﻠﺘﻌﺎﻣﻞ‬ ‫ﻋﻤﻠﻬﻢ‬ ‫ﺍﻟﻤﺒﺮﻣﺠﻴﻦ‬ ‫ﻋﻠﻰ‬ ‫ﻟﻴﺴﻬﻞ‬ ‫ﺟﺎء‬ ‫ﺍﻷﺳﻠﻮﺏ‬ ‫ﻭﻫﺬﺍ‬ ،
‫ﺍﻟﺜﻤﺎﻧﻲ‬ ‫ﺍﻟﻨﻈﺎﻡ‬.
‫ﺩﺍﺧﻠﻲ‬ ‫ﺑﺸﻜﻞ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﺑﻪ‬ ‫ﻳﻘﻮﻡ‬ ‫ﻣﺎ‬ ‫ﺇﻥ‬)‫ﺗﺪﺧﻠﻨﺎ‬ ‫ﺩﻭﻥ‬(‫ﺍﻟﺜﻤﺎﻧﻲ‬ ‫ﺍﻟﻨﻈﺎﻡ‬ ‫ﺗﺤﻮﻳﻞ‬
‫ﺃﻧﻬﺎ‬ ‫ﻋﻠﻰ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﺣﻔﻆ‬ ‫ﺛﻢ‬ ‫ﻭﻣﻦ‬ ‫ﺍﻟﻌﺸﺮﻱ‬ ‫ﺍﻟﻨﻈﺎﻡ‬ ‫ﺍﻟﻰ‬binary.^_^.
‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬:
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
"0b” LITERAL
0b‫ﺍﻝ‬ ‫ﻫﺬﺍ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻳﺘﻢ‬Literal‫ﻹﻧﺸﺎء‬)‫ﺭﻗﻢ‬(‫ﺍﻝ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬binary
‫ﻣﺒﺎﺷﺮﺓ‬^_^‫ﺑﺎﻟﺸﻜﻞ‬ ‫ﺍﻷﺭﻗﺎﻡ‬ ‫ﺑﺘﻌﺮﻳﻒ‬ ‫ﺍﻟﻤﺒﺮﻣﺠﻴﻦ‬ ‫ﻳﻘﻮﻡ‬ ،‫ﺍﻹﻓﺘﺮﺍﺿﻴﺔ‬ ‫ﺍﻟﺤﺎﻟﺔ‬ ‫ﻓﻲ‬ ،
‫ﺍﻝ‬ ‫ﻳﻘﻮﻡ‬ ‫ﺛﻢ‬ ‫ﻭﻣﻦ‬ ،‫ﺍﻟﻌﺸﺮﻱ‬js‫ﺍﻟﻰ‬ ‫ﺍﻟﺮﻗﻢ‬ ‫ﻫﺬﺍ‬ ‫ﺑﺘﺤﻮﻳﻞ‬binary‫ﻳﺘﻢ‬ ‫ﺛﻢ‬ ‫ﻭﻣﻦ‬
‫ﻫﺬﺍ‬ ‫ﻟﻜﻦ‬ ،‫ﺍﻟﺬﺍﻛﺮﺓ‬ ‫ﻓﻲ‬ ‫ﺣﻔﻈﻪ‬Literal‫ﺍﻟﺮﻗﻢ‬ ‫ﺣﻔﻆ‬ ‫ﻣﻦ‬ ‫ﺳﻴﻤﻜﻨﻚ‬binary
‫ﻣﺒﺎﺷﺮﺓ‬^_^...
‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬:
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
‫ﻛﺘﺎﺏ‬:100،‫ﺍﻹﺳﻼﻡ‬ ‫ﻋﻈﻤﺎء‬ ‫ﻣﻦ‬ ‫ﻋﻈﻴﻢ‬
‫ﺍﻟﺘﺎﺭﻳﺦ‬ ‫ﻣﺠﺮﻯ‬ ‫ﻏﻴﺮﻭ‬
YIELD KEYWORD & FUN *()
‫ﻣﻦ‬ ‫ﺍﻟﺴﺎﺩﺱ‬ ‫ﺍﻹﺻﺪﺍﺭ‬ ‫ﻓﻲ‬ECMAScript‫ﻟﻠﺠﺎﻓﺎ‬ ‫ﺟﺪﻳﺪﺓ‬ ‫ﻣﻴﺰﺓ‬ ‫ﺇﺩﺭﺍﺝ‬ ‫ﺗﻢ‬
‫ﺗﺴﻤﻰ‬ ،‫ﺳﻜﺮﺑﺖ‬JavaScript Generator‫ﺍﻝ‬ ‫ﻫﺬﺍ‬ ‫ﻭﻳﺘﻜﻮﻥ‬ ،
Generator‫ﺍﻟﻤﺤﺠﻮﺯﺓ‬ ‫ﺍﻟﻜﻠﻤﺔ‬ ‫ﺑﺎﺳﺘﺨﺪﺍﻡ‬Yield‫ﺍﻝ‬ ‫ﻭﺍﺳﺘﺨﺪﺍﻡ‬
function*()‫ﺍﻟﺒﺮﻣﺠﻴﺔ‬ ‫ﺍﻟﺸﻴﻔﺮﺓ‬ ‫ﻓﻲ‬^_^
Yield keyword + functon * () syntax used => JS Generator
‫ﺍﻝ‬ ‫ﻳﻘﺪﻣﻬﺎ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﻮﻅﻴﻔﺔ‬ ‫ﻓﺈﻥ‬ ،‫ﻭﺑﺎﺧﺘﺼﺎﺭ‬JS Generator‫ﺇﺿﺎﻓﺔ‬ ‫ﻫﻲ‬
‫ﻟﻞ‬ ‫ﺟﺪﻳﺪﺓ‬ ‫ﻁﺮﻳﻘﺔ‬function‫ﻻﺭﺟﺎﻉ‬)return(‫ﻗﻴﻢ‬ ‫ﻣﻦ‬ ‫ﻣﺠﻤﻮﻋﺔ‬
)Collection(‫ﺟﺪﻳﺪ‬ ‫ﺍﺳﻠﻮﺏ‬ ‫ﺑﺈﺿﺎﻓﺔ‬ ‫ﺗﻘﻮﻡ‬ ‫ﻛﻤﺎ‬ ،-‫ﻣﻨﻄﻘﻲ‬-‫ﺍﻟﺪﻭﺭﺍﻥ‬ ‫ﺟﻤﻠﺔ‬ ‫ﻓﻲ‬
‫ﺍﻝ‬ ‫ﻣﻦ‬ ‫ﺍﺳﺘﺮﺟﺎﻋﻬﺎ‬ ‫ﺳﻴﺘﻢ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﻘﻴﻢ‬ ‫ﻻﺳﺘﻘﺒﺎﻝ‬Collection‫ﺑﺎﻝ‬ ‫ﺍﻟﻤﻮﺟﻮﺩﺓ‬
function* ()...
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
YIELD KEYWORD & FUN *()
‫ﺍﻝ‬ ‫ﻫﺬﻩ‬ ‫ﻣﻤﻴﺰﺍﺕ‬ ‫ﺃﻫﻢ‬ ‫ﻣﻦ‬Generator‫ﺍﻟﺘﻮﻗﻒ‬ ‫ﺇﻣﻜﺎﻧﻴﺔ‬ ‫ﻫﻮ‬ ‫ﺍﻧﺸﺎﺋﻬﺎ‬ ‫ﺳﻴﺘﻢ‬ ‫ﺍﻟﺘﻲ‬
‫ﻣﻦ‬ ‫ﺍﻟﺨﺎﻣﺲ‬ ‫ﻟﻠﻌﻨﺼﺮ‬ ‫ﺃﺻﻞ‬ ‫ﺃﻥ‬ ‫ﻳﻤﻜﻨﻨﻲ‬ ‫ﻣﺜﻼ‬ ،‫ﺍﺳﺘﺨﺪﺍﻣﻬﺎ‬ ‫ﻳﻤﻜﻦ‬ ‫ﺍﻟﺘﻲ‬ ‫ﻭﺍﻹﺳﺘﻤﺮﺍﺭ‬
‫ﺍﻝ‬Generator‫ﺍﻟﻌﻤﻠﻴﺔ‬ ‫ﺃﺗﺎﺑﻊ‬ ‫ﺛﻢ‬ ‫ﻭﻣﻦ‬ ،‫ﺃﺧﺮﻯ‬ ‫ﺑﺮﻣﺠﻴﺔ‬ ‫ﺷﻴﻔﺮﺓ‬ ‫ﻟﺘﻨﻔﻴﺬ‬ ‫ﺃﺫﻫﺐ‬ ‫ﺛﻢ‬
‫ﺍﻟﻤﺮﻭﺭ‬ ‫ﺃﻭ‬ ‫ﻣﺜﻼ‬ ‫ﺍﻟﺪﻭﺭﺍﻥ‬ ‫ﺇﻋﺎﺩﺓ‬ ‫ﺍﻟﻰ‬ ‫ﺍﻟﺤﺎﺟﺔ‬ ‫ﺩﻭﻥ‬ ‫ﻣﺒﺎﺷﺮﺓ‬ ‫ﺍﻟﺴﺎﺩﺱ‬ ‫ﺍﻟﻌﻨﺼﺮ‬ ‫ﺑﺄﺧﺬ‬
‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﻫﺬﺍ‬ ‫ﻭﻳﺘﻢ‬ ،‫ﺍﻟﻘﻴﻢ‬ ‫ﺟﻤﻴﻊ‬ ‫ﻋﻠﻰ‬next()‫ﺍﻟﺸﺮﺍﺋﺢ‬ ‫ﻓﻲ‬ ‫ﺳﻨﺸﺎﻫﺪ‬ ‫ﻛﻤﺎ‬
‫ﺍﻟﻘﺎﺩﻣﺔ‬..‫ﺍﻝ‬ ‫ﺃﻥ‬ ‫ﻛﻤﺎ‬ ،Generator‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﺑﺎﺭﺟﺎﻉ‬ ‫ﺗﺘﻤﻴﺰ‬)value(‫ﻭ‬
)done(‫ﺍﻝ‬ ‫ﺗﻜﻮﻥ‬ ‫ﺑﺤﻴﺚ‬value‫ﺍﺭﺟﺎﻋﻬﺎ‬ ‫ﺍﻟﻤﺮﺍﺩ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﻫﻲ‬)‫ﻣﺎ‬ ‫ﺃﻱ‬ ‫ﻭﺗﻜﻮﻥ‬
‫ﺍﻝ‬ ‫ﻗﺒﻞ‬ ‫ﻣﻦ‬ ‫ﺍﺭﺟﺎﻋﻪ‬ ‫ﻳﻤﻜﻦ‬yield(‫ﻭﺍﻝ‬ ،done‫ﻳﻤﺜﻞ‬Boolean‫ﺍﻟﻰ‬ ‫ﻳﺸﻴﺮ‬
‫ﻟﻠﺪﺍﻟﺔ‬ ‫ﻻ‬ ‫ﺃﻡ‬ ‫ﺍﻹﺭﺟﺎﻉ‬ ‫ﻋﻤﻠﻴﺔ‬ ‫ﺍﻧﺘﻬﺎء‬
‫ﺍﻟﻤﻮﺿﻮﻉ‬ ‫ﻋﻠﻰ‬ ‫ﻋﻤﻠﻴﺔ‬ ‫ﺃﻣﺜﻠﺔ‬ ‫ﻟﻨﺸﺎﻫﺪ‬ ‫ﻭﺍﻵﻥ‬^_^
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
YIELD KEYWORD & FUN *()
‫ﺳﺎﺑﻘﺎ‬)‫ﺍﻝ‬ ‫ﻗﺒﻞ‬ES6:(‫ﻣﺠﻤﻮﻋﺔ‬ ‫ﺍﺳﺘﻘﺒﺎﻝ‬ ‫ﻛﻴﻔﻴﺔ‬ ‫ﻋﻠﻰ‬ ‫ﺍﻟﺘﻘﻠﻴﺪﻱ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻫﺬﺍ‬ ‫ﺷﺎﻫﺪ‬
‫ﺟﺪﺍ‬ ‫ﺑﺴﻴﻄﺔ‬ ‫ﻁﺮﻳﻘﺔ‬ ،‫ﺍﻟﻘﻴﻢ‬ ‫ﻣﻦ‬..‫ﺍﻟﺘﺎﻟﻴﺔ‬ ‫ﺍﻟﺸﺮﻳﺤﺔ‬ ‫ﺍﻟﻰ‬ ‫ﻟﻨﻨﺘﻘﻞ‬ ‫ﺍﻵﻥ‬_^*
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
YIELD KEYWORD & FUN *()
‫ﺍﻝ‬ ‫ﺑﺎﺳﺘﺨﺪﺍﻡ‬ ‫ﻣﺜﺎﻝ‬JS Generator:
‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻫﺬﺍ‬ ‫ﺷﺎﻫﺪ‬
‫ﻟﻜﻞ‬ ‫ﺟﻴﺪﺍ‬ ‫ﻭﺍﻧﺘﺒﻪ‬
‫ﻣﻠﻮﻥ‬ ‫ﻫﻮ‬ ‫ﻣﺎ‬^_^
‫؟‬ ‫ﺍﻧﺘﻬﻴﺖ‬ ‫ﻫﻞ‬
‫ﺑﺘﻨﻔﻴﺬ‬ ‫ﻗﻤﺖ‬ ‫ﻫﻞ‬
‫؟‬ ‫ﺍﻟﺒﺮﻣﺠﻴﺔ‬ ‫ﺍﻟﺸﻴﻔﺮﺓ‬
‫ﺧﻄﺄ‬ ‫ﻟﻚ‬ ‫ﻅﻬﺮ‬ ‫ﻫﻞ‬
‫ﻓﻲ‬ ‫ﻣﻮﺟﻮﺩ‬ ‫ﻫﻮ‬ ‫ﻛﻤﺎ‬
‫؟‬ ‫ﺍﻟﺼﻮﺭﺓ‬ ‫ﺃﺳﻔﻞ‬
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
YIELD KEYWORD & FUN *()
‫ﺍﻝ‬ ‫ﻗﺪﺭﺓ‬ ‫ﺑﻌﺪﻡ‬ ‫ﺗﺨﺒﺮﻙ‬ ‫ﻫﺬﻩ‬ ‫ﺍﻟﺨﻄﺄ‬ ‫ﺭﺳﺎﻟﺔ‬browsers.js‫ﺑﺎﺳﺘﺨﺪﺍﻣﻪ‬ ‫ﻗﻤﻨﺎ‬ ‫ﺍﻟﺬﻱ‬
‫ﺍﻝ‬ ‫ﺗﺤﻤﻴﻞ‬ ‫ﺑﻌﺪ‬babel compiler‫ﺍﻝ‬ ‫ﺗﻨﻔﻴﺬ‬ ‫ﻋﻠﻰ‬Generator‫ﺍﻝ‬ ‫ﺃﺛﻨﺎء‬
Runtime...‫؟‬ ‫ﺍﻟﺤﻞ‬ ‫ﻣﺎ‬ ‫ﺍﺫﺍ‬
‫ﺍﻝ‬ ‫ﺗﻀﻤﻴﻦ‬ ‫ﺃﻭ‬ ‫ﺑﺎﺳﺘﺨﺪﺍﻡ‬ ‫ﻫﻮ‬ ‫ﺍﻟﺤﻞ‬browser-polyfill.js‫ﺑﺎﻝ‬ ‫ﺃﻳﻀﺎ‬ ‫ﺍﻟﺨﺎﺹ‬
Babel_^*‫ﺍﻝ‬ ‫ﺗﻀﻤﻴﻦ‬ ‫ﻋﻠﻰ‬ ‫ﻫﺬﺍ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻣﻠﻒ‬ ‫ﻭﻳﻘﻮﻡ‬ ،runtime
‫ﻭﺍﻝ‬core js‫ﺍﻝ‬ ‫ﻣﻦ‬ ‫ﺃﻱ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﺣﺎﻝ‬ ‫ﻓﻲ‬ ‫ﺗﻠﻘﺎﺋﻲ‬ ‫ﺑﺸﻜﻞ‬Babel node‫ﺃﻭ‬
Babel register‫ﺗﻀﻤﻴﻨﻪ‬ ‫ﻳﺘﻢ‬ ‫ﺃﻥ‬ ‫ﻳﺠﺐ‬ ‫ﺍﻟﻤﻠﻒ‬ ‫ﻫﺬﺍ‬ ‫ﺃﻥ‬ ‫ﻭﺍﻧﺘﺒﻪ‬ ،“‫ﺃﻱ‬ ‫ﻗﺒﻞ‬
‫ﺏ‬ ‫ﺧﺎﺻﺔ‬ ‫ﺑﺮﻣﺠﻴﺔ‬ ‫ﺷﻴﻔﺮﺓ‬Babel...”
This needs to be included before all your compiled Babel code.
)‫ﺍﻝ‬ ‫ﺑﺎﺳﺘﺨﺪﺍﻡ‬ ‫ﻗﻤﺖ‬ ‫ﺣﺎﻟﺔ‬ ‫ﻓﻲ‬ ‫ﺍﻟﻤﻠﻒ‬ ‫ﻫﺬﺍ‬ ‫ﺍﺳﺘﺪﻋﺎء‬ ‫ﻋﻦ‬ ‫ﺍﻹﺳﺘﻐﻨﺎء‬ ‫ﻳﻤﻜﻨﻚ‬ ‫ﻁﺒﻌﺎ‬babel‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬
babel/polyfill
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
YIELD KEYWORD & FUN *()
‫ﺍﻟﻜﺎﻣﻞ‬ ‫ﺑﺸﻜﻠﻪ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻟﻨﺸﺎﻫﺪ‬ ‫ﻭﺍﻵﻥ‬:
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
YIELD KEYWORD & FUN *()
‫ﻣﺜﺎﻝ‬2:‫ﺍﻝ‬ ‫ﺩﻭﺭ‬ ‫ﻫﻨﺎ‬ ‫ﻻﺣﻆ‬next^_^..‫ﻗﻤﺖ‬ ‫ﻟﻤﺎﺫﺍ‬ ،‫ﻫﺬﺍ‬ ‫ﻗﺒﻞ‬ ‫ﻻﺣﻆ‬ ‫ﻭﻟﻜﻦ‬
‫ﺑﺘﺨﺰﻳﻦ‬collection_name()‫؟‬ ‫ﻣﺘﻐﻴﺮ‬ ‫ﺩﺍﺧﻞ‬!
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
YIELD KEYWORD & FUN *()
‫ﺍﻝ‬ ‫ﺑﺘﺨﺰﻳﻦ‬ ‫ﻧﻘﻢ‬ ‫ﻟﻢ‬ ‫ﻟﻮ‬ ،‫ﺍﻟﺴﺎﺑﻖ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻓﻲ‬collection_name()‫ﺩﺍﺧﻞ‬
‫ﻗﻴﻤﺔ‬ ‫ﺃﻭ‬ ‫ﺩﺍﺋﻤﺎ‬ ‫ﺳﻴﻜﻮﻥ‬ ‫ﺍﻟﻨﺎﺗﺞ‬ ‫ﻓﺈﻥ‬ ،‫ﻣﺘﻐﻴﺮ‬Yield....
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
YIELD KEYWORD & FUN *()
‫ﻣﺜﺎﻝ‬3:‫ﺍﻝ‬ ‫ﺑﺎﺳﺘﺪﻋﺎء‬ ‫ﻗﻤﺖ‬ ‫ﻫﻨﺎ‬value‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬ ‫ﻣﺒﺎﺷﺮﺓ‬console‫ﺃﻧﻨﻲ‬ ‫ﻛﻤﺎ‬ ،
‫ﺍﻝ‬ ‫ﺃﺣﺪ‬ ‫ﺩﺍﺧﻞ‬ ‫ﻣﺼﻔﻮﻓﺔ‬ ‫ﺑﺤﻔﻆ‬ ‫ﻗﻤﺖ‬yield‫ﺍﺳﺘﺪﻋﺎﺋﻬﺎ‬ ‫ﺛﻢ‬ ‫ﻭﻣﻦ‬ ،..
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
YIELD KEYWORD & FUN *()
‫ﻣﺜﺎﻝ‬4:‫ﺍﻝ‬ ‫ﺍﺳﺘﺨﺪﻣﺖ‬ ‫ﺃﻧﻨﻲ‬ ‫ﻻﺣﻆ‬ ،‫ﺍﻟﺠﻤﻴﻞ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻫﺬﺍ‬ ‫ﻓﻲ‬yield‫ﻭﻛﺄﻧﻬﺎ‬
return‫ﻭﺃﻧﻮﺍﻋﻬﺎ‬ ‫ﺍﻟﺒﻴﺎﻧﺎﺕ‬ ‫ﻣﺨﺘﻠﻒ‬ ‫ﺍﺭﺟﺎﻉ‬ ‫ﺍﺳﺘﻄﻌﺖ‬ ‫ﻭﺑﻬﺬﺍ‬ ،)data type(
‫ﺍﻝ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬yield...
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
YIELD KEYWORD & FUN *()
‫ﺍﻟﺪﻭﺭﺓ‬ ‫ﻫﺬﻩ‬ ‫ﻓﻲ‬ ‫ﺃﺧﺮﻯ‬ ‫ﺟﺰﺋﻴﺔ‬ ‫ﺍﻟﻰ‬ ‫ﻧﻨﺘﻘﻞ‬ ،‫ﺍﻟﻤﻮﺿﻮﻉ‬ ‫ﻫﺬﺍ‬ ‫ﻭﺑﻌﺪ‬ ،‫ﻭﺍﻵﻥ‬
‫ﺍﻷﻣﺜﻠﺔ‬ ‫ﺟﻤﻴﻊ‬ ‫ﻟﻨﺸﺎﻫﺪ‬ ،‫ﺍﻟﺠﺪﻳﺪ‬ ‫ﺍﻟﻤﻮﺿﻮﻉ‬ ‫ﺍﻟﻰ‬ ‫ﺍﻹﻧﺘﻘﺎﻝ‬ ‫ﻭﻗﺒﻞ‬ ‫ﻟﻜﻦ‬ ،‫ﺍﻟﻤﺘﻮﺍﺿﻌﺔ‬
‫ﺍﻟﻤﻮﺿﻮﻉ‬ ‫ﻫﺬﺍ‬ ‫ﻓﻲ‬ ‫ﺑﻌﺮﺿﻬﺎ‬ ‫ﻗﻤﻨﺎ‬ ‫ﺍﻟﺘﻲ‬)..‫ﺍﻟﻤﻬﻢ‬ ‫ﻫﻮ‬ ‫ﺍﻟﺘﻄﺒﻴﻖ‬ ‫ﺃﻥ‬ ‫ﺗﻨﺴﻰ‬ ‫ﻭﻻ‬(
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
‫ﺍﻟﺮﺟﻴﻢ‬ ‫ﺍﻟﺸﻴﻄﺎﻥ‬ ‫ﻣﻦ‬ ‫ﻮﺫ ﺑﺎہﻠﻟ‬
َ ‫ﱠ‬‫ﷲ‬ ‫ﱠ‬‫ﻥ‬ِ‫ﺇ‬ َ ‫ﱠ‬‫ﷲ‬ ‫ﻮﺍ‬ُ‫ﻘ‬‫ﱠ‬‫ﺗ‬‫ﺍ‬َ‫ﻭ‬ ٍ‫ﺪ‬َ‫ﻐ‬ِ‫ﻟ‬ ْ‫ﺖ‬َ‫ﻣ‬‫ﱠ‬‫ﺪ‬َ‫ﻗ‬ ‫ﺎ‬‫ﱠ‬‫ﻣ‬ ٌ‫ﺲ‬ْ‫ﻔ‬َ‫ﻧ‬ ْ‫ﺮ‬ُ‫ﻈ‬‫ﻨ‬َ‫ﺘ‬ْ‫ﻟ‬َ‫ﻭ‬ َ ‫ﱠ‬‫ﷲ‬ ‫ﻮﺍ‬ُ‫ﻘ‬‫ﱠ‬‫ﺗ‬‫ﺍ‬ ‫ﻮﺍ‬ُ‫ﻨ‬َ‫ﻣ‬‫ﺁ‬ َ‫ﻳﻦ‬ِ‫ﺬ‬‫ﱠ‬‫ﺍﻟ‬ ‫ﺎ‬َ‫ﻬ‬‫ﱡ‬‫ﻳ‬َ‫ﺃ‬ ‫ﺎ‬َ‫ﻳ‬
َ‫ﻮﻥ‬ُ‫ﻠ‬َ‫ﻤ‬ْ‫ﻌ‬َ‫ﺗ‬ ‫ﺎ‬َ‫ﻤ‬ِ‫ﺑ‬ ٌ‫ﺮ‬‫ﻴ‬ِ‫ﺒ‬َ‫ﺧ‬
‫ﺍﻟﻌﻈﻴﻢ‬ ‫ﷲ‬ ‫ﺻﺪﻕ‬
‫ﺍﻟﺤﺸﺮ‬ ‫ﺳﻮﺭﺓ‬–‫ﺍﻵﻳﺔ‬:18
SET OBJECT
‫ﻫﻨﺎﻙ‬ ‫ﻳﻜﻦ‬ ‫ﻟﻢ‬ ،‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻣﻦ‬ ‫ﺍﻟﺨﺎﻣﺲ‬ ‫ﻟﻺﺻﺪﺍﺭ‬ ‫ﻭﺻﻮﻻ‬collection
‫ﺍﻝ‬ ‫ﺳﻮﻯ‬Array‫ﺑﺘﻌﺮﻳﻒ‬ ‫ﺭﻏﺒﻨﺎ‬ ‫ﺍﺫﺍ‬ ‫ﻭﻛﻨﺎ‬ ،index‫ﺍﻝ‬ ‫ﻧﺴﺘﺨﺪﻡ‬ ‫ﺭﻗﻤﻲ‬ ‫ﻏﻴﺮ‬
object‫ﺍﻝ‬ ‫ﻓﻈﻬﺮﻣﻔﻬﻮﻡ‬ ،‫ﺍﻟﻴﻮﻡ‬ ‫ﺑﻌﺪ‬ ‫ﻳﻜﻔﻲ‬ ‫ﻳﻌﺪ‬ ‫ﻟﻢ‬ ‫ﺍﻷﻣﺮ‬ ‫ﻫﺬﺍ‬ ‫ﻟﻜﻦ‬ ،“SET”
‫ﻟﻺﺻﺪﺍﺭ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺑﺎﻟﺠﺎﻓﺎ‬6)‫ﺍﻟﻤﻬﺎﻡ‬ ‫ﻟﺘﺤﻘﻴﻖ‬ ‫ﺃﺩﺍء‬ ‫ﻭﺃﻓﻀﻞ‬ ‫ﺍﺣﺘﺮﺍﻓﻴﺔ‬ ‫ﺃﻛﺜﺮ‬ ‫ﺍﻟﻬﺪﻑ‬(
‫ﺍﻝ‬ ‫ﻁﺒﻌﺎ‬SET‫ﻣﻌﺮﻭﻓﺔ‬ ‫ﻓﻬﻲ‬ ،‫ﺍﻟﺒﺮﻣﺠﺔ‬ ‫ﻟﻐﺎﺕ‬ ‫ﻋﻠﻰ‬ ‫ﺟﺪﻳﺪﺍ‬ ‫ﻣﻔﻬﻮﻣﺎ‬ ‫ﻟﻴﺴﺖ‬
‫ﺍﻝ‬ ‫ﻟﻤﺒﺮﻣﺠﻴﻦ‬python‫ﻭﺍﻟﺠﺎﻓﺎ‬..‫ﺍﻝ‬ ‫ﺗﻌﺮﻳﻒ‬ ‫ﺃﻣﺎ‬ ،‫ﺍﻟﺦ‬SET‫ﻓﻬﻮ‬:
‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﻘﻴﻢ‬ ‫ﻣﻦ‬ ‫ﻣﺮﺗﺒﺔ‬ ‫ﻗﺎﺋﻤﺔ‬،‫ﺗﻜﺮﺍﺭﻫﺎ‬ ‫ﻳﻤﻜﻦ‬ ‫ﻻ‬‫ﺍﻟﻘﻴﻢ‬ ‫ﻫﺬﻩ‬ ‫ﻛﺎﻧﺖ‬ ‫ﺳﻮﺍء‬
primitive‫ﺃﻭ‬object...^_^.
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
SET OBJECT
‫ﺍﻝ‬ ‫ﻣﻦ‬ ‫ﺍﻟﺒﺴﻴﻄﺔ‬ ‫ﺍﻟﺼﻴﻐﺔ‬ ‫ﻳﻮﺿﺢ‬ ‫ﻣﺜﺎﻻ‬ ‫ﻟﻨﺸﺎﻫﺪ‬ ‫ﻭﺍﻵﻥ‬Set‫ﻳﻤﻜﻨﻨﺎ‬ ‫ﻭﺍﻟﺘﻲ‬
‫ﺍﺳﺘﺨﺪﺍﻣﻬﺎ‬^_^:
‫ﺃﻥ‬ ‫ﺍﻟﺒﺴﻴﻂ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻫﺬﺍ‬ ‫ﻓﻲ‬ ‫ﻻﺣﻆ‬
‫ﺍﻝ‬Set()‫ﺍﻝ‬ ‫ﺣﺮﻑ‬ ‫ﻓﻴﻬﺎ‬ ‫ﻳﻜﺘﺐ‬
S Capital...
‫ﺍﻝ‬ ‫ﺃﻣﺎ‬add:‫ﻟﻠﻤﺼﻔﻮﻓﺔ‬ ‫ﺟﺪﻳﺪﺓ‬ ‫ﻋﻨﺎﺻﺮ‬ ‫ﺇﺿﺎﻓﺔ‬ ‫ﻋﻦ‬ ‫ﺍﻟﻤﺴﺆﻭﻟﺔ‬ ‫ﺍﻟﺪﺍﻟﺔ‬ ‫ﻓﻬﻲ‬.
‫ﺍﻝ‬size:‫ﺍﻝ‬ ‫ﺣﺠﻢ‬ ‫ﺗﺤﺪﻳﺪ‬ ‫ﻋﻦ‬ ‫ﺍﻟﻤﺴﺆﻭﻟﺔ‬ ‫ﺍﻟﺪﺍﻟﺔ‬ ‫ﻫﻲ‬Set_^*
‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺑﺘﻨﻔﻴﺬ‬ ‫ﻗﻢ‬..‫ﺍﻟﺘﺎﻟﻴﺔ‬ ‫ﻟﻠﺸﺮﻳﺤﺔ‬ ‫ﺍﻧﺘﻘﻞ‬ ‫ﺛﻢ‬..
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
SET OBJECT
‫ﻣﺜﺎﻝ‬1:
‫ﻟﻠﺮﻗﻢ‬ ‫ﺍﻹﺿﺎﻓﺔ‬ ‫ﻋﻤﻠﻴﺔ‬ ،‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻫﺬﺍ‬ ‫ﻓﻲ‬ ‫ﺍﻟﻤﻬﻤﺔ‬ ‫ﺍﻟﻔﻜﺮﺓ‬ ‫ﻻﺣﻆ‬24‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬ ‫ﻛﺎﻧﺖ‬
‫ﻧﺼﻲ‬ ‫ﺷﻜﻞ‬ ‫ﻭﻋﻠﻰ‬ ،‫ﻭﺍﻟﺜﺎﻧﻲ‬ ‫ﺍﻷﻭﻝ‬ ‫ﻓﻲ‬ ‫ﺭﻗﻤﻲ‬“24”‫ﻟﻜﻦ‬ ،‫ﺍﻟﺜﺎﻟﺚ‬ ‫ﺍﻟﺴﻄﺮ‬ ‫ﻓﻲ‬
‫ﺍﻝ‬ ‫ﻟﺤﺠﻢ‬ ‫ﺍﻟﻨﻬﺎﺋﻴﺔ‬ ‫ﺍﻟﻨﺘﻴﺠﺔ‬Set‫ﺳﻴﻜﻮﻥ‬3‫؟‬!‫؟‬ ‫ﺑﺮﺃﻳﻚ‬ ‫ﻟﻤﺎﺫﺍ‬
‫ﺍﻝ‬ ‫ﺑﺄﻥ‬ ‫ﻳﻜﻤﻦ‬ ‫ﺍﻟﺠﻮﺍﺏ‬Set‫ﻳﺘﻢ‬ ‫ﺍﻟﺘﻜﺮﺍﺭ‬ ‫ﻓﺈﻥ‬ ‫ﻭﻟﺬﻟﻚ‬ ،‫ﺫﻛﺮﻧﺎ‬ ‫ﻛﻤﺎ‬ ‫ﺍﻟﺘﻜﺮﺍﺭ‬ ‫ﺗﻤﻨﻊ‬
‫ﻗﻴﻤﺔ‬ ‫ﺑﻴﻦ‬ ‫ﻣﻴﺰ‬ ‫ﺍﻟﻮﻗﺖ‬ ‫ﺑﺬﺍﺕ‬ ‫ﻟﻜﻨﻪ‬ ،‫ﺗﺠﺎﻫﻠﻪ‬24‫ﻭﺍﻝ‬ ‫ﺍﻟﺮﻗﻤﻴﺔ‬24‫ﺍﻟﻨﺼﻴﺔ‬^_^
‫ﺍﻟﺸﻜﻞ‬ ‫ﻳﺼﺒﺢ‬ ‫ﻭﺑﻬﺬﺍ‬ ،‫ﻓﻘﻂ‬ ‫ﺍﺩﺧﻠﺖ‬ ‫ﻗﻴﻤﺔ‬ ‫ﺃﻭﻝ‬ ‫ﺍﻋﺘﻤﺎﺩ‬ ‫ﻭﻳﺘﻢ‬24-”24”-”anees”
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
SET OBJECT
‫ﻣﺜﺎﻝ‬2:‫ﻟﻞ‬ ‫ﺍﺑﺘﺪﺍﺋﻴﺔ‬ ‫ﻗﻴﻤﺔ‬ ‫ﺗﻌﺮﻳﻒ‬ ‫ﻳﻤﻜﻨﻨﺎ‬Set‫ﺩﻭﻥ‬ ‫ﻣﺒﺎﺷﺮﺓ‬ ‫ﺑﺎﻧﺸﺎﺋﻬﺎ‬ ‫ﻧﺮﻏﺐ‬ ‫ﺍﻟﺘﻲ‬
‫ﺍﻟﺪﺍﻟﺔ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬add()‫ﻣﺼﻔﻮﻓﺔ‬ ‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬ ‫ﺍﻟﻘﻴﻢ‬ ‫ﺍﺭﺳﺎﻝ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﺫﻟﻚ‬ ‫ﻭﻳﻜﻮﻥ‬ ،
‫ﺍﻟﻰ‬constructor^_^..‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻟﻨﺸﺎﻫﺪ‬:
،‫ﺗﻠﻘﺎﺋﻲ‬ ‫ﺑﺸﻜﻞ‬ ‫ﺗﺘﻢ‬ ‫ﺍﻟﺘﻜﺮﺍﺭ‬ ‫ﺗﺠﺎﻫﻞ‬ ‫ﻋﻤﻠﻴﺔ‬ ‫ﺃﻥ‬ ‫ﻫﻨﺎ‬ ‫ﻻﺣﻆ‬)‫ﺍﻟﻤﻘﺎﺭﻧﺔ‬ ‫ﻋﻤﻠﻴﺔ‬ ‫ﺑﺎﻟﻤﻨﺎﺳﺒﺔ‬
‫ﺍﻟﺘﺎﻟﻲ‬ ‫ﺑﺎﻟﺸﻜﻞ‬ ‫ﺗﺘﻢ‬( ===‫ﺗﻜﻮﻥ‬ ‫ﺃﻥ‬ ‫ﻳﻤﻜﻦ‬ ‫ﺍﺭﺳﺎﻟﻬﺎ‬ ‫ﺗﻢ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﻘﻴﻢ‬ ‫ﺃﻥ‬ ‫ﻛﻢ‬ ،obj‫ﺃﻭ‬
‫ﻋﺎﺩﻱ‬ ‫ﺭﻗﻢ‬ ‫ﺃﻭ‬ ‫ﻣﺼﻔﻮﻓﺔ‬..‫ﺍﻟﺦ‬
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
SET OBJECT
‫ﻣﺜﺎﻝ‬3:
‫ﺗﺪﻋﻰ‬ ‫ﺟﺪﻳﺪﺓ‬ ‫ﻟﺪﺍﻟﺔ‬ ‫ﺗﻄﺮﻗﻨﺎ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻫﺬﺍ‬ ‫ﻓﻲ‬has‫ﻣﻦ‬ ‫ﺍﻟﺘﺄﻛﺪ‬ ‫ﻋﻠﻰ‬ ‫ﺗﻘﻮﻡ‬ ‫ﺍﻟﺪﺍﻟﺔ‬ ‫ﻫﺬﻩ‬ ،
‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬ ‫ﻣﻮﺟﻮﺩﺓ‬ ‫ﻣﺎ‬ ‫ﻗﻴﻤﺔ‬ ‫ﺃﻥ‬set‫ﺑﺎﺭﺟﺎﻉ‬ ‫ﺫﻟﻚ‬ ‫ﻋﻠﻰ‬ ‫ﺑﻨﺎﺋﺎ‬ ‫ﻭﺗﻘﻮﻡ‬ ،‫ﻻ‬ ‫ﺃﻡ‬
True or False^_^
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
SET OBJECT
‫ﻣﺜﺎﻝ‬4:
‫ﺍﻟﺪﺍﻟﺔ‬ ‫ﺗﺴﺘﺨﺪﻡ‬delete‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬ ‫ﻣﻮﺟﻮﺩ‬ ‫ﻋﻨﺼﺮ‬ ‫ﻟﺤﺬﻑ‬set‫ﺍﻟﻨﺘﺎﺋﺞ‬ ‫ﻫﻨﺎ‬ ‫ﺷﺎﻫﺪ‬ ،
‫ﺍﻟﺤﺬﻑ‬ ‫ﻋﻤﻠﻴﺔ‬ ‫ﺑﻌﺪ‬ ‫ﺗﻐﻴﺮﺕ‬ ‫ﻛﻴﻒ‬...
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
SET OBJECT
‫ﻣﺜﺎﻝ‬5:
‫ﺍﻟﺪﺍﻟﺔ‬ ‫ﺑﺎﺳﺘﺨﺪﺍﻡ‬ ‫ﻗﻤﻨﺎ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻫﺬﺍ‬ ‫ﻓﻲ‬clear()‫ﺟﻤﻴﻊ‬ ‫ﺣﺬﻑ‬ ‫ﻋﻠﻰ‬ ‫ﺗﻘﻮﻡ‬ ‫ﺍﻟﺪﺍﻟﺔ‬ ‫ﻫﺬﻩ‬ ،
‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬ ‫ﺍﻟﻤﻮﺟﻮﺩﺓ‬ ‫ﺍﻟﻘﻴﻢ‬Set..
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
SET OBJECT
‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬ ‫ﺍﻟﻤﻮﺟﻮﺩﺓ‬ ‫ﺍﻟﻌﻨﺎﺻﺮ‬ ‫ﻁﺒﺎﻋﺔ‬ ‫ﻳﻤﻜﻨﻨﺎ‬ ‫ﻛﻴﻒ‬ ،‫ﻭﺍﻵﻥ‬Set‫؟‬
‫ﺍﻟﺠﻮﺍﺏ‬:‫ﺍﻝ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬For of‫ﺳﺎﺑﻘﺎ‬ ‫ﺗﻌﻠﻤﻨﺎﻫﺎ‬ ‫ﺍﻟﺘﻲ‬^_^
‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻟﻨﺸﺎﻫﺪ‬6:
‫ﺍﻝ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﺍﻟﻰ‬ ‫ﺗﺪﻋﻮﻧﺎ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﻨﻘﺎﻁ‬ ‫ﺃﻫﻢ‬ ‫ﻣﻦ‬Set‫ﺃﻱ‬ ‫ﻭﺟﻮﺩ‬ ‫ﻋﺪﻡ‬ ‫ﻧﻀﻤﻦ‬ ‫ﺍﻧﻨﺎ‬
‫ﻳﺒﻘﻰ‬ ‫ﻭﺍﻟﺮﻗﻤﻲ‬ ،‫ﻧﺼﻲ‬ ‫ﻳﺒﻘﻰ‬ ‫ﻓﺎﻟﻨﺼﻲ‬ ،‫ﺍﺭﺳﺎﻟﻬﺎ‬ ‫ﻳﺘﻢ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﺒﻴﺎﻧﺎﺕ‬ ‫ﻧﻮﻉ‬ ‫ﻋﻠﻰ‬ ‫ﺗﻌﺪﻳﻞ‬
‫ﻣﺼﻔﻮﻓﺔ‬ ‫ﺗﺒﻘﻰ‬ ‫ﻭﺍﻟﻤﺼﻔﻮﻓﺔ‬ ،‫ﺭﻗﻤﻴﺎ‬...‫ﺍﻟﺦ‬
‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
Ecmascript 6 (ES6) جافا سكربت (6)
Ecmascript 6 (ES6) جافا سكربت (6)
Ecmascript 6 (ES6) جافا سكربت (6)
Ecmascript 6 (ES6) جافا سكربت (6)
Ecmascript 6 (ES6) جافا سكربت (6)
Ecmascript 6 (ES6) جافا سكربت (6)
Ecmascript 6 (ES6) جافا سكربت (6)
Ecmascript 6 (ES6) جافا سكربت (6)
Ecmascript 6 (ES6) جافا سكربت (6)
Ecmascript 6 (ES6) جافا سكربت (6)
Ecmascript 6 (ES6) جافا سكربت (6)
Ecmascript 6 (ES6) جافا سكربت (6)
Ecmascript 6 (ES6) جافا سكربت (6)
Ecmascript 6 (ES6) جافا سكربت (6)

More Related Content

What's hot

Cisco ASA Firewall Lab WorkBook
Cisco ASA Firewall Lab WorkBookCisco ASA Firewall Lab WorkBook
Cisco ASA Firewall Lab WorkBookRHC Technologies
 
Introducción a HTML - CSS - JS
Introducción a HTML - CSS - JS Introducción a HTML - CSS - JS
Introducción a HTML - CSS - JS Alejandro Miguel
 
Web Server Technologies I: HTTP & Getting Started
Web Server Technologies I: HTTP & Getting StartedWeb Server Technologies I: HTTP & Getting Started
Web Server Technologies I: HTTP & Getting StartedPort80 Software
 
Introducción a aplicaciones web.
Introducción a aplicaciones web.Introducción a aplicaciones web.
Introducción a aplicaciones web.camilaml
 
Ad, dns, dhcp, file server
Ad, dns, dhcp, file serverAd, dns, dhcp, file server
Ad, dns, dhcp, file serverTola LENG
 
Data Centre Design for Canadian Small & Medium Sized Businesses
Data Centre Design for Canadian Small & Medium Sized BusinessesData Centre Design for Canadian Small & Medium Sized Businesses
Data Centre Design for Canadian Small & Medium Sized BusinessesCisco Canada
 
Brkarc 3470 - cisco nexus 7000-7700 switch architecture (2016 las vegas) - 2 ...
Brkarc 3470 - cisco nexus 7000-7700 switch architecture (2016 las vegas) - 2 ...Brkarc 3470 - cisco nexus 7000-7700 switch architecture (2016 las vegas) - 2 ...
Brkarc 3470 - cisco nexus 7000-7700 switch architecture (2016 las vegas) - 2 ...kds850
 
Programacion web c5 programacion del lado servidor
Programacion web c5 programacion del lado servidorProgramacion web c5 programacion del lado servidor
Programacion web c5 programacion del lado servidorAlejandro Hernandez
 
AAA Best Practices
AAA Best PracticesAAA Best Practices
AAA Best PracticesSagar Gor
 
ADA Compliance & Website Accessibility
ADA Compliance & Website AccessibilityADA Compliance & Website Accessibility
ADA Compliance & Website AccessibilitySilverTech
 
Terminologia web
Terminologia webTerminologia web
Terminologia webAlan Ortega
 
Installing and configuring a dhcp on windows server 2016 step by step
Installing and configuring a dhcp on windows server 2016 step by stepInstalling and configuring a dhcp on windows server 2016 step by step
Installing and configuring a dhcp on windows server 2016 step by stepAhmed Abdelwahed
 
Ejercicios redes
Ejercicios redesEjercicios redes
Ejercicios redesStudent
 
IIS internet information service
IIS internet information serviceIIS internet information service
IIS internet information serviceJACKELIN SORALUZ
 
Ass4276 network designassignment
Ass4276 network designassignmentAss4276 network designassignment
Ass4276 network designassignmentharinathinfotech
 

What's hot (20)

Cisco ASA Firewall Lab WorkBook
Cisco ASA Firewall Lab WorkBookCisco ASA Firewall Lab WorkBook
Cisco ASA Firewall Lab WorkBook
 
Comandos show
Comandos showComandos show
Comandos show
 
Introducción a HTML - CSS - JS
Introducción a HTML - CSS - JS Introducción a HTML - CSS - JS
Introducción a HTML - CSS - JS
 
EMEA Airheads- Instant AP- APP REF and Mixed IAP Cluster deployments
EMEA Airheads- Instant AP- APP REF and Mixed IAP Cluster deploymentsEMEA Airheads- Instant AP- APP REF and Mixed IAP Cluster deployments
EMEA Airheads- Instant AP- APP REF and Mixed IAP Cluster deployments
 
Web Server Technologies I: HTTP & Getting Started
Web Server Technologies I: HTTP & Getting StartedWeb Server Technologies I: HTTP & Getting Started
Web Server Technologies I: HTTP & Getting Started
 
Introducción a aplicaciones web.
Introducción a aplicaciones web.Introducción a aplicaciones web.
Introducción a aplicaciones web.
 
Servicios basicos de red
Servicios basicos de redServicios basicos de red
Servicios basicos de red
 
CCNA - Subredes
CCNA - SubredesCCNA - Subredes
CCNA - Subredes
 
Air group tb 080112_final
Air group tb 080112_finalAir group tb 080112_final
Air group tb 080112_final
 
Ad, dns, dhcp, file server
Ad, dns, dhcp, file serverAd, dns, dhcp, file server
Ad, dns, dhcp, file server
 
Data Centre Design for Canadian Small & Medium Sized Businesses
Data Centre Design for Canadian Small & Medium Sized BusinessesData Centre Design for Canadian Small & Medium Sized Businesses
Data Centre Design for Canadian Small & Medium Sized Businesses
 
Brkarc 3470 - cisco nexus 7000-7700 switch architecture (2016 las vegas) - 2 ...
Brkarc 3470 - cisco nexus 7000-7700 switch architecture (2016 las vegas) - 2 ...Brkarc 3470 - cisco nexus 7000-7700 switch architecture (2016 las vegas) - 2 ...
Brkarc 3470 - cisco nexus 7000-7700 switch architecture (2016 las vegas) - 2 ...
 
Programacion web c5 programacion del lado servidor
Programacion web c5 programacion del lado servidorProgramacion web c5 programacion del lado servidor
Programacion web c5 programacion del lado servidor
 
AAA Best Practices
AAA Best PracticesAAA Best Practices
AAA Best Practices
 
ADA Compliance & Website Accessibility
ADA Compliance & Website AccessibilityADA Compliance & Website Accessibility
ADA Compliance & Website Accessibility
 
Terminologia web
Terminologia webTerminologia web
Terminologia web
 
Installing and configuring a dhcp on windows server 2016 step by step
Installing and configuring a dhcp on windows server 2016 step by stepInstalling and configuring a dhcp on windows server 2016 step by step
Installing and configuring a dhcp on windows server 2016 step by step
 
Ejercicios redes
Ejercicios redesEjercicios redes
Ejercicios redes
 
IIS internet information service
IIS internet information serviceIIS internet information service
IIS internet information service
 
Ass4276 network designassignment
Ass4276 network designassignmentAss4276 network designassignment
Ass4276 network designassignment
 

Viewers also liked

Canvas دورة باللغة العربية
Canvas دورة باللغة العربيةCanvas دورة باللغة العربية
Canvas دورة باللغة العربيةanees abu-hmaid
 
باللغة العربية HTML5 دورة
باللغة العربية HTML5 دورة باللغة العربية HTML5 دورة
باللغة العربية HTML5 دورة anees abu-hmaid
 
java script course دورة جافا سكربت باللغة العربية
java script course دورة جافا سكربت باللغة العربيةjava script course دورة جافا سكربت باللغة العربية
java script course دورة جافا سكربت باللغة العربيةanees abu-hmaid
 
دورة CSS3 باللغة العربية
دورة CSS3 باللغة العربيةدورة CSS3 باللغة العربية
دورة CSS3 باللغة العربيةanees abu-hmaid
 
Bootstrap3 دورة باللغة العربية
Bootstrap3 دورة باللغة العربيةBootstrap3 دورة باللغة العربية
Bootstrap3 دورة باللغة العربيةanees abu-hmaid
 
باللغة العربية JSON دورة
  باللغة العربية JSON دورة   باللغة العربية JSON دورة
باللغة العربية JSON دورة anees abu-hmaid
 
باللغة العربية jQuery دورة
 باللغة العربية jQuery دورة باللغة العربية jQuery دورة
باللغة العربية jQuery دورةanees abu-hmaid
 
PHP Advance 101 دورة
PHP Advance 101 دورة PHP Advance 101 دورة
PHP Advance 101 دورة anees abu-hmaid
 
باللغة العربية SASS دورة
  باللغة العربية SASS دورة   باللغة العربية SASS دورة
باللغة العربية SASS دورة anees abu-hmaid
 
باللغة العربية CSS دورة
  باللغة العربية CSS دورة   باللغة العربية CSS دورة
باللغة العربية CSS دورة anees abu-hmaid
 
دورة دروبال 7 باللغة العربية
دورة دروبال 7 باللغة العربيةدورة دروبال 7 باللغة العربية
دورة دروبال 7 باللغة العربيةanees abu-hmaid
 
باللغة العربية HTML دورة
  باللغة العربية HTML دورة   باللغة العربية HTML دورة
باللغة العربية HTML دورة anees abu-hmaid
 
شرح مقرر البرمجة 2 لغة جافا - الوحدة الثانية
شرح مقرر البرمجة 2   لغة جافا - الوحدة الثانيةشرح مقرر البرمجة 2   لغة جافا - الوحدة الثانية
شرح مقرر البرمجة 2 لغة جافا - الوحدة الثانيةجامعة القدس المفتوحة
 
الفصل الرابع
الفصل الرابعالفصل الرابع
الفصل الرابعHanaa Ahmed
 
تنسيق الشيفرة البرمجية (Coding Style)
تنسيق الشيفرة البرمجية (Coding Style)تنسيق الشيفرة البرمجية (Coding Style)
تنسيق الشيفرة البرمجية (Coding Style)anees abu-hmaid
 

Viewers also liked (20)

Angular js دورة
Angular js دورةAngular js دورة
Angular js دورة
 
Canvas دورة باللغة العربية
Canvas دورة باللغة العربيةCanvas دورة باللغة العربية
Canvas دورة باللغة العربية
 
باللغة العربية HTML5 دورة
باللغة العربية HTML5 دورة باللغة العربية HTML5 دورة
باللغة العربية HTML5 دورة
 
java script course دورة جافا سكربت باللغة العربية
java script course دورة جافا سكربت باللغة العربيةjava script course دورة جافا سكربت باللغة العربية
java script course دورة جافا سكربت باللغة العربية
 
Js dom & JS bom
Js dom & JS bomJs dom & JS bom
Js dom & JS bom
 
دورة CSS3 باللغة العربية
دورة CSS3 باللغة العربيةدورة CSS3 باللغة العربية
دورة CSS3 باللغة العربية
 
jQuery UI (Effect)
jQuery UI (Effect) jQuery UI (Effect)
jQuery UI (Effect)
 
Bootstrap3 دورة باللغة العربية
Bootstrap3 دورة باللغة العربيةBootstrap3 دورة باللغة العربية
Bootstrap3 دورة باللغة العربية
 
باللغة العربية JSON دورة
  باللغة العربية JSON دورة   باللغة العربية JSON دورة
باللغة العربية JSON دورة
 
باللغة العربية jQuery دورة
 باللغة العربية jQuery دورة باللغة العربية jQuery دورة
باللغة العربية jQuery دورة
 
PHP Advance 101 دورة
PHP Advance 101 دورة PHP Advance 101 دورة
PHP Advance 101 دورة
 
باللغة العربية SASS دورة
  باللغة العربية SASS دورة   باللغة العربية SASS دورة
باللغة العربية SASS دورة
 
باللغة العربية CSS دورة
  باللغة العربية CSS دورة   باللغة العربية CSS دورة
باللغة العربية CSS دورة
 
دورة دروبال 7 باللغة العربية
دورة دروبال 7 باللغة العربيةدورة دروبال 7 باللغة العربية
دورة دروبال 7 باللغة العربية
 
باللغة العربية HTML دورة
  باللغة العربية HTML دورة   باللغة العربية HTML دورة
باللغة العربية HTML دورة
 
شرح مقرر البرمجة 2 لغة جافا - الوحدة الثانية
شرح مقرر البرمجة 2   لغة جافا - الوحدة الثانيةشرح مقرر البرمجة 2   لغة جافا - الوحدة الثانية
شرح مقرر البرمجة 2 لغة جافا - الوحدة الثانية
 
الفصل الرابع
الفصل الرابعالفصل الرابع
الفصل الرابع
 
5 fifth lesson -xml
5 fifth lesson -xml5 fifth lesson -xml
5 fifth lesson -xml
 
تنسيق الشيفرة البرمجية (Coding Style)
تنسيق الشيفرة البرمجية (Coding Style)تنسيق الشيفرة البرمجية (Coding Style)
تنسيق الشيفرة البرمجية (Coding Style)
 
Administrative skill
Administrative skillAdministrative skill
Administrative skill
 

More from anees abu-hmaid

شرح طريقة تصميم الأنظمة - من مستخدم إلى مليون مستخدم )System Design)
شرح طريقة تصميم الأنظمة - من مستخدم إلى مليون مستخدم )System Design)شرح طريقة تصميم الأنظمة - من مستخدم إلى مليون مستخدم )System Design)
شرح طريقة تصميم الأنظمة - من مستخدم إلى مليون مستخدم )System Design)anees abu-hmaid
 
لا تتداول العملات الرقمية ولا تشتريها قبل أن تقرأ هذه الكلمات
لا تتداول العملات الرقمية ولا تشتريها قبل أن تقرأ هذه الكلماتلا تتداول العملات الرقمية ولا تشتريها قبل أن تقرأ هذه الكلمات
لا تتداول العملات الرقمية ولا تشتريها قبل أن تقرأ هذه الكلماتanees abu-hmaid
 
نقاط تقنية مفيدة لمستخدمين شبكة الإنترنت
نقاط تقنية مفيدة لمستخدمين شبكة الإنترنتنقاط تقنية مفيدة لمستخدمين شبكة الإنترنت
نقاط تقنية مفيدة لمستخدمين شبكة الإنترنتanees abu-hmaid
 
Web performance - الجزء السادس
Web performance - الجزء السادسWeb performance - الجزء السادس
Web performance - الجزء السادسanees abu-hmaid
 
Web performance - الجزء الخامس
Web performance - الجزء الخامسWeb performance - الجزء الخامس
Web performance - الجزء الخامسanees abu-hmaid
 
Web performance - الجزء الرابع
Web performance - الجزء الرابعWeb performance - الجزء الرابع
Web performance - الجزء الرابعanees abu-hmaid
 
Web performance - الجزء الثالث
Web performance - الجزء الثالثWeb performance - الجزء الثالث
Web performance - الجزء الثالثanees abu-hmaid
 
Web performance - الجزء الثاني
Web performance - الجزء الثانيWeb performance - الجزء الثاني
Web performance - الجزء الثانيanees abu-hmaid
 
Web performance - الجزء الأول
Web performance - الجزء الأولWeb performance - الجزء الأول
Web performance - الجزء الأولanees abu-hmaid
 
الجزء الثاني قبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبها
الجزء الثاني قبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبهاالجزء الثاني قبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبها
الجزء الثاني قبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبهاanees abu-hmaid
 
قبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبها - الجزء الأول
قبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبها - الجزء الأولقبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبها - الجزء الأول
قبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبها - الجزء الأولanees abu-hmaid
 
كيف تقرأ كتابا - خطوات لتحسين القراءة
كيف تقرأ كتابا - خطوات لتحسين القراءةكيف تقرأ كتابا - خطوات لتحسين القراءة
كيف تقرأ كتابا - خطوات لتحسين القراءةanees abu-hmaid
 
وهم الأمان - مخاطر الإنترنت والتعامل مع الابتزاز
وهم الأمان - مخاطر الإنترنت والتعامل مع الابتزازوهم الأمان - مخاطر الإنترنت والتعامل مع الابتزاز
وهم الأمان - مخاطر الإنترنت والتعامل مع الابتزازanees abu-hmaid
 
Coding review guide مراجعة الشيفرة البرمجية
Coding review guide مراجعة الشيفرة البرمجيةCoding review guide مراجعة الشيفرة البرمجية
Coding review guide مراجعة الشيفرة البرمجيةanees abu-hmaid
 
Node.js course باللغة العربية
Node.js course باللغة العربيةNode.js course باللغة العربية
Node.js course باللغة العربيةanees abu-hmaid
 
الخصوصية وموقعها من الإعراب
الخصوصية وموقعها من الإعرابالخصوصية وموقعها من الإعراب
الخصوصية وموقعها من الإعرابanees abu-hmaid
 
الإسلام والتقنية Islam & IT
الإسلام والتقنية Islam & ITالإسلام والتقنية Islam & IT
الإسلام والتقنية Islam & ITanees abu-hmaid
 
تعلم البرمجة في 3 ساعات و 20 دقيقة و 55 ثانية
تعلم البرمجة في 3 ساعات و 20 دقيقة و 55 ثانيةتعلم البرمجة في 3 ساعات و 20 دقيقة و 55 ثانية
تعلم البرمجة في 3 ساعات و 20 دقيقة و 55 ثانيةanees abu-hmaid
 
اللغة الإنجليزية والمشاكل البرمجية ومهارة البحث
اللغة الإنجليزية والمشاكل البرمجية ومهارة البحثاللغة الإنجليزية والمشاكل البرمجية ومهارة البحث
اللغة الإنجليزية والمشاكل البرمجية ومهارة البحثanees abu-hmaid
 
مهووس الحاسوب Computer Geek
مهووس الحاسوب Computer Geekمهووس الحاسوب Computer Geek
مهووس الحاسوب Computer Geekanees abu-hmaid
 

More from anees abu-hmaid (20)

شرح طريقة تصميم الأنظمة - من مستخدم إلى مليون مستخدم )System Design)
شرح طريقة تصميم الأنظمة - من مستخدم إلى مليون مستخدم )System Design)شرح طريقة تصميم الأنظمة - من مستخدم إلى مليون مستخدم )System Design)
شرح طريقة تصميم الأنظمة - من مستخدم إلى مليون مستخدم )System Design)
 
لا تتداول العملات الرقمية ولا تشتريها قبل أن تقرأ هذه الكلمات
لا تتداول العملات الرقمية ولا تشتريها قبل أن تقرأ هذه الكلماتلا تتداول العملات الرقمية ولا تشتريها قبل أن تقرأ هذه الكلمات
لا تتداول العملات الرقمية ولا تشتريها قبل أن تقرأ هذه الكلمات
 
نقاط تقنية مفيدة لمستخدمين شبكة الإنترنت
نقاط تقنية مفيدة لمستخدمين شبكة الإنترنتنقاط تقنية مفيدة لمستخدمين شبكة الإنترنت
نقاط تقنية مفيدة لمستخدمين شبكة الإنترنت
 
Web performance - الجزء السادس
Web performance - الجزء السادسWeb performance - الجزء السادس
Web performance - الجزء السادس
 
Web performance - الجزء الخامس
Web performance - الجزء الخامسWeb performance - الجزء الخامس
Web performance - الجزء الخامس
 
Web performance - الجزء الرابع
Web performance - الجزء الرابعWeb performance - الجزء الرابع
Web performance - الجزء الرابع
 
Web performance - الجزء الثالث
Web performance - الجزء الثالثWeb performance - الجزء الثالث
Web performance - الجزء الثالث
 
Web performance - الجزء الثاني
Web performance - الجزء الثانيWeb performance - الجزء الثاني
Web performance - الجزء الثاني
 
Web performance - الجزء الأول
Web performance - الجزء الأولWeb performance - الجزء الأول
Web performance - الجزء الأول
 
الجزء الثاني قبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبها
الجزء الثاني قبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبهاالجزء الثاني قبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبها
الجزء الثاني قبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبها
 
قبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبها - الجزء الأول
قبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبها - الجزء الأولقبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبها - الجزء الأول
قبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبها - الجزء الأول
 
كيف تقرأ كتابا - خطوات لتحسين القراءة
كيف تقرأ كتابا - خطوات لتحسين القراءةكيف تقرأ كتابا - خطوات لتحسين القراءة
كيف تقرأ كتابا - خطوات لتحسين القراءة
 
وهم الأمان - مخاطر الإنترنت والتعامل مع الابتزاز
وهم الأمان - مخاطر الإنترنت والتعامل مع الابتزازوهم الأمان - مخاطر الإنترنت والتعامل مع الابتزاز
وهم الأمان - مخاطر الإنترنت والتعامل مع الابتزاز
 
Coding review guide مراجعة الشيفرة البرمجية
Coding review guide مراجعة الشيفرة البرمجيةCoding review guide مراجعة الشيفرة البرمجية
Coding review guide مراجعة الشيفرة البرمجية
 
Node.js course باللغة العربية
Node.js course باللغة العربيةNode.js course باللغة العربية
Node.js course باللغة العربية
 
الخصوصية وموقعها من الإعراب
الخصوصية وموقعها من الإعرابالخصوصية وموقعها من الإعراب
الخصوصية وموقعها من الإعراب
 
الإسلام والتقنية Islam & IT
الإسلام والتقنية Islam & ITالإسلام والتقنية Islam & IT
الإسلام والتقنية Islam & IT
 
تعلم البرمجة في 3 ساعات و 20 دقيقة و 55 ثانية
تعلم البرمجة في 3 ساعات و 20 دقيقة و 55 ثانيةتعلم البرمجة في 3 ساعات و 20 دقيقة و 55 ثانية
تعلم البرمجة في 3 ساعات و 20 دقيقة و 55 ثانية
 
اللغة الإنجليزية والمشاكل البرمجية ومهارة البحث
اللغة الإنجليزية والمشاكل البرمجية ومهارة البحثاللغة الإنجليزية والمشاكل البرمجية ومهارة البحث
اللغة الإنجليزية والمشاكل البرمجية ومهارة البحث
 
مهووس الحاسوب Computer Geek
مهووس الحاسوب Computer Geekمهووس الحاسوب Computer Geek
مهووس الحاسوب Computer Geek
 

Ecmascript 6 (ES6) جافا سكربت (6)

  • 1. ‫ﺍﻟﺮﺣﻴﻢ‬ ‫ﺍﻟﺮﺣﻤﻦ‬ ‫ﷲ‬ ‫ﺑﺴﻢ‬ ‫ﺩﻭﺭﺓ‬:ECMAScript 6)‫ﺳﻜﺮﺑﺖ‬ ‫ﻟﻠﺠﺎﻓﺎ‬ ‫ﺗﺤﺪﻳﺪﺍ‬( ‫ﺗﻘﺪﻳﻢ‬:‫ﺣﻤﻴﺪ‬ ‫ﺃﺑﻮ‬ ‫ﺣﻜﻤﺖ‬ ‫ﺃﻧﻴﺲ‬. ‫ﺍﻹﻟﻜﺘﺮﻭﻧﻲ‬ ‫ﺍﻟﺒﺮﻳﺪ‬:nees.com2aneeshikmat@ ‫ﺍﻹﻟﻜﺘﺮﻭﻧﻲ‬ ‫ﺍﻟﻤﻮﻗﻊ‬:nees.com2www. ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 2. ‫ﺍﻟﻔﻬﺮﺱ‬ ‫ﺍﻟﻤﻘﺪﻣﺔ‬)‫ﺍﻟﻤﻘﺪﻣﺔ‬ ‫ﻫﺬﻩ‬ ‫ﻓﻲ‬ ‫ﻭﺭﺩ‬ ‫ﻣﺎ‬ ‫ﻋﻠﻰ‬ ‫ﺍﻹﻁﻼﻉ‬ ‫ﺗﻨﺴﻰ‬ ‫ﻻ‬( ECMAScript ECMAScript & Browsers Support 6Running ECMAScript let Keyword KeywordConst Destruct Values ValuesDefault Function Arguments operatorJS spread “…” Template Strings ` ` ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 3. ‫ﺍﻟﻔﻬﺮﺱ‬ Function =>Arrow Keyword on JSClass Loopfor of o” Literal0“ b" Literal0" Yield Keyword & Fun *() Set Object Map Object JS modules)‫ﻓﻘﻂ‬ ‫ﺳﺮﻳﻌﺔ‬ ‫ﻧﺒﺬﺓ‬( ‫ﺍﻟﺨﺎﺗﻤﺔ‬ ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 4. ‫ﺍﻟﻤﻘﺪﻣﺔ‬ ‫ﺍﻟﺮﺣﻴﻢ‬ ‫ﺍﻟﺮﺣﻤﻦ‬ ‫ﷲ‬ ‫ﺑﺴﻢ‬ ‫ﺃﻧﻮﺍﺭ‬ ‫ﺇﻟﻰ‬ ‫ﻭﺍﻟﻮﻫﻢ‬ ‫ﺍﻟﺠﻬﻞ‬ ‫ﻅﻠﻤﺎﺕ‬ ‫ﻣﻦ‬ ‫ﺑﺎﻹﺳﻼﻡ‬ ‫ﺃﺧﺮﺟﻨﺎ‬ ‫ﺍﻟﺬﻱ‬ ‫ﺤﻤﺪ ہﻠﻟ‬ ‫ﻭﺍﻟﺤﻤﺪ ہﻠﻟ‬ ، ‫ﺍﻟﺸﻬﻮﺍﺕ ﺇﻟﻰ ﺟﻨﺎﺕ ﺍﻟﻘﺮﺑﺎﺕ‬ ‫ﻭﻣﻦ ﻭﺣﻮﻝ‬ ، ‫ﻤﻌﺮﻓﺔ ﻭﺍﻟﻌﻠﻢ‬ ‫ﻭﺟﻌﻞ‬ ‫ﺍﻹﺳﻼﻡ‬ ‫ﻭﺷﺮﻉ‬ ، ‫ﻋﻮﺟﺎ‬ ‫ﻟﻪ‬ ‫ﻳﺠﻌﻞ‬ ‫ﻭﻟﻢ‬ ‫ﺍﻟﻜﺘﺎﺏ‬ ‫ﻋﺒﺪﻩ‬ ‫ﻋﻠﻰ‬ ‫ﺃﻧﺰﻝ‬ ‫ﺍﻟﺬﻱ‬ ، ‫ﺑﻪ‬ ‫ﺗﻤﺴﻚ‬ ‫ﻟﻤﻦ‬ ً‫ﺎ‬‫ﺃﻣﻨ‬ ‫ﻓﺠﻌﻠﻪ‬ ، ‫ﻏﺎﻟﺒﻪ‬ ‫ﻣﻦ‬ ‫ﻋﻠﻰ‬ ‫ﺃﺭﻛﺎﻧﻪ‬ ‫ﻭﺃﻋﺰ‬ ، ً‫ﺎ‬‫ﻣﻨﻬﺠ‬ ‫ﻟﻪ‬ ً‫ﺍ‬‫ﻭﻧﻮﺭ‬ ، ‫ﻋﻨﻪ‬ ‫ﺧﺎﺻﻢ‬ ‫ﻟﻤﻦ‬ ً‫ﺍ‬‫ﻭﺷﺎﻫﺪ‬ ، ‫ﺑﻪ‬ ‫ﺗﻜﻠﻢ‬ ‫ﻟﻤﻦ‬ ً‫ﺎ‬‫ﻭﺑﺮﻫﺎﻧ‬ ، ‫ﺩﺧﻠﻪ‬ ‫ﻟﻤﻦ‬ ً‫ﺎ‬‫ﻭﺳﻠﻤ‬ ، ‫ﺗﻮﺳﻢ‬ ‫ﻟﻤﻦ‬ ً‫ﺔ‬‫ﻭﺁﻳ‬ ، ‫ﺗﺪﺑﺮ‬ ‫ﻟﻤﻦ‬ ً‫ﺎ‬‫ﻭﻟﺒ‬ ، ‫ﻋﻘﻞ‬ ‫ﻟﻤﻦ‬ ً‫ﺎ‬‫ﻭﻓﻬﻤ‬ ، ‫ﺑﻪ‬ ‫ﺍﺳﺘﻀﺎء‬ ‫ﻟﻤﻦ‬ ‫ﻟﻤﻦ‬ ‫ﻭﺛﻘﺔ‬ ، ‫ﺻﺪﻕ‬ ‫ﻟﻤﻦ‬ ‫ﻭﻧﺠﺎﺓ‬ ، ‫ﺍﺗﻌﻆ‬ ‫ﻟﻤﻦ‬ ‫ﻭﻋﺒﺮﺓ‬ ، ‫ﻋﺰﻡ‬ ‫ﻟﻤﻦ‬ ً‫ﺓ‬‫ﻭﺗﺒﺼﺮ‬ ‫ﺻﺒﺮ‬ ‫ﻟﻤﻦ‬ ‫ﻭﺟﻨﺔ‬ ، ‫ﻓﻮﺽ‬ ‫ﻟﻤﻦ‬ ‫ﻭﺭﺍﺣﺔ‬ ، ‫ﺗﻮﻛﻞ‬.)‫ﺍﻟﻨﺎﺑﻠﺴﻲ‬ ‫ﻟﻠﺪﻛﺘﻮﺭ‬ ‫ﺍﻹﺳﻼﻡ‬ ‫ﻓﻲ‬ ‫ﻭﻣﻀﺎﺕ‬ ‫ﻛﺘﺎﺏ‬ ‫ﻣﻘﺪﻣﺔ‬( ‫ﺍﻟﺤﺮﻛﺎﺕ‬ ‫ﻭﻋﺪﺩ‬ ،‫ﻳﻜﻮﻥ‬ ‫ﻣﺎ‬ ‫ﻭﻋﺪﺩ‬ ،‫ﻛﺎﻥ‬ ‫ﻣﺎ‬ ‫ﻋﺪﺩ‬ ،‫ﺍﻟﻌﺎﻟﻤﻴﻦ‬ ‫ﺭﺏ‬ ‫ﺤﻤﺪ ہﻠﻟ‬ ‫ﻭﺍﻟﺴﻜﻮﻥ‬. ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 5. ‫ﺍﻟﻤﻘﺪﻣﺔ‬ ‫ﺍﻝ‬ ‫ﻭﻫﻮ‬ ،‫ﺟﺪﻳﺪ‬ ‫ﻣﻮﺿﻮﻉ‬ ‫ﻋﻦ‬ ،‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ﺑﺈﺫﻥ‬ ،‫ﺍﻟﻴﻮﻡ‬ ‫ﺳﻨﺘﺤﺪﺙ‬ ECMAScript 6‫ﻋﻦ‬ ‫ﺑﺎﻟﺤﺪﻳﺚ‬ ‫ﺍﻟﻤﻮﺿﻮﻉ‬ ‫ﻫﺬﺍ‬ ‫ﻭﺳﻨﺒﺪﺃ‬ ، ECMAScript‫ﺍﻟﻤﺰﺍﻳﺎ‬ ‫ﻋﺎﻟﻢ‬ ‫ﺍﻟﻰ‬ ‫ﺳﻮﻳﺎ‬ ‫ﺳﻨﻨﺘﻘﻞ‬ ‫ﺛﻢ‬ ‫ﻭﻣﻦ‬ ،‫ﻣﺨﺘﺼﺮ‬ ‫ﺑﺸﻜﻞ‬ ‫ﺍﻟﺠﺪﻳﺪ‬ ‫ﺍﻹﺻﺪﺍﺭ‬ ‫ﻣﻊ‬ ‫ﺗﻘﺪﻳﻤﻬﺎ‬ ‫ﺗﻢ‬ ‫ﺍﻟﺘﻲ‬ ‫ﻭﺍﻟﺨﺼﺎﺋﺺ‬)‫ﺍﻹﺻﺪﺍﺭ‬6(‫ﻣﻮﺿﻮﻉ‬ ‫ﻭﻫﻮ‬ ‫ﺍﻟﻤﺘﻮﺍﺿﻌﺔ‬ ‫ﺍﻟﺪﻭﺭﺓ‬ ‫ﻫﺬﻩ‬. ‫ﺗﻬﻢ‬ ‫ﺍﻟﺪﻭﺭﺓ‬ ‫ﻫﺬﻩ‬ ‫ﻁﺒﻌﺎ‬‫ﻭﺍﻟﻤﺒﺮﻣﺠﻴﻦ‬ ‫ﺍﻟﻤﻄﻮﺭﻳﻦ‬ ‫ﺟﻤﻴﻊ‬‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻋﻠﻰ‬ ‫ﻳﻌﻤﻠﻮﻥ‬ ‫ﺍﻟﺬﻳﻦ‬ ‫ﻟﻞ‬ ‫ﺍﻷﻫﻤﻴﺔ‬ ‫ﻭﺗﺰﺩﺍﺩ‬ ،‫ﺳﻜﺮﺑﺖ‬FRONT END‫ﻭﺃﻫﻤﻴﺔ‬ ،‫ﻷﻫﻤﻴﺘﻬﺎ‬ ،‫ﻣﻨﻬﻢ‬ ‫ﺍﻹﺻﺪﺍﺭ‬ ‫ﻫﺬﺍ‬ ‫ﻓﻲ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﻟﻠﺠﺎﻓﺎ‬ ‫ﺣﺼﻠﺖ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﺘﺤﺪﻳﺜﺎﺕ‬^^‫ﻣﻌﻨﺎ‬ ‫ﻓﻜﻮﻧﻮﺍ‬ ،^_^ ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 6. ‫ﺍﻟﻤﻘﺪﻣﺔ‬ ‫ﺍﻟﺪﻭﺭﺓ‬ ‫ﻣﺘﻄﻠﺒﺎﺕ‬: (1HTML (2CSS (3JS)‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻓﻲ‬ ‫ﺟﻴﺪﺓ‬ ‫ﻣﻌﺮﻓﺔ‬( (4‫ﻣﺜﻞ‬ ‫ﻧﺼﻮﺹ‬ ‫ﻣﺤﺮﺭ‬notepad++‫ﺇﻧﺘﺮﻧﺖ‬ ‫ﻣﺘﺼﻔﺢ‬ ‫ﻭ‬:P *‫ﻣﻼﺣﻈﺔ‬:‫ﻫﺬﺍ‬ ‫ﺑﻞ‬ ،‫ﻗﺒﻠﻪ‬ ‫ﻣﺎ‬ ‫ﻛﻞ‬ ‫ﺣﺬﻑ‬ ‫ﺟﺪﻳﺪﺓ‬ ‫ﺇﺿﺎﻓﺔ‬ ‫ﺃﻭ‬ ‫ﺟﺪﻳﺪ‬ ‫ﺇﺻﺪﺍﺭ‬ ‫ﻳﻌﻨﻲ‬ ‫ﻻ‬ ‫ﻳﻜﻮﻥ‬ ‫ﻭﻗﺪ‬ ،‫ﻣﺎ‬ ‫ﻣﻮﺿﻮﻉ‬ ‫ﻓﻲ‬ ‫ﺍﻟﺠﻮﺍﻧﺐ‬ ‫ﺃﺣﺪ‬ ‫ﻋﻠﻰ‬ ‫ﻭﻗﻊ‬ ‫ﺗﺤﺪﻳﺚ‬ ‫ﻫﻨﺎﻙ‬ ‫ﺃﻥ‬ ‫ﻳﻌﻨﻲ‬ ‫ﻛﻠﻪ‬ ‫ﻳﻜﻮﻥ‬ ‫ﻭﻗﺪ‬ ،‫ﺟﻠﻪ‬... ! *‫ﻣﻼﺣﻈﺔ‬2:ECMAScript6‫ﺏ‬ ‫ﻟﻬﺎ‬ ‫ﻳﺮﻣﺰ‬:ES6 ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 7. ‫ﺍﻟﻤﻘﺪﻣﺔ‬ *‫ﻣﻼﺣﻈﺔ‬3:‫ﺍﻟﺪﻭﺭﺓ‬ ‫ﻫﺬﻩ‬ ‫ﻓﻲ‬ ‫ﺍﻟﺒﺪء‬ ‫ﺗﺎﺭﻳﺦ‬23-09-2015‫ﺍﻟﺘﺎﺭﻳﺦ‬ ‫ﺍﻋﺘﻤﺎﺩ‬ ‫ﻭﺗﻢ‬ ، 01-10-2015‫ﺍﻹﺻﺪﺍﺭ‬ ‫ﺃﻥ‬ ‫ﺍﻋﺘﺒﺎﺭ‬ ‫ﻋﻠﻰ‬ ‫ﺑﺎﻟﺪﻭﺭﺓ‬ ‫ﺍﻷﻣﺜﻠﺔ‬ ‫ﻟﺠﻤﻴﻊ‬ ‫ﻛﺘﺎﺭﻳﺦ‬ ‫ﺑﺎﻝ‬ ‫ﺍﻟﺨﺎﺹ‬compiler‫ﻷﻥ‬ ،‫ﻛﺘﺎﺑﺘﻪ‬ ‫ﺣﻴﻦ‬ ‫ﻓﻲ‬ ‫ﺍﻟﺪﻭﺭﺓ‬ ‫ﻫﺬﻩ‬ ‫ﻓﻲ‬ ‫ﻗﻮﻟﻪ‬ ‫ﻳﺘﻢ‬ ‫ﻣﺎ‬ ‫ﻳﺪﻋﻢ‬ ‫ﻟﻠﺠﺎﻓﺎ‬ ‫ﺍﻟﺠﺪﻳﺪ‬ ‫ﺑﺎﻹﺻﺪﺍﺭ‬ ‫ﺍﻹﻋﺘﻤﺎﺩ‬ ‫ﺇﻁﻼﻕ‬ ‫ﺑﻌﺪ‬ ‫ﻛﺎﻧﺖ‬ ‫ﺍﻟﺘﺎﺭﻳﺦ‬ ‫ﻫﺬﺍ‬ ‫ﻭﻓﻲ‬ ‫ﺍﻟﺪﻭﺭﺓ‬ ‫ﻫﺬﻩ‬ ‫ﺳﻜﺮﺑﺖ‬ES6‫ﺍﻟﻔﻜﺮﺓ‬ ‫ﻭﺳﺘﺘﻀﺢ‬ ،‫ﺑﻌﺪ‬ ‫ﺗﺪﻋﻤﻬﺎ‬ ‫ﻟﻢ‬ ‫ﺍﻟﻤﺘﺼﻔﺤﺎﺕ‬ ‫ﺃﻥ‬ ‫ﺣﻴﻦ‬ ‫ﻓﻲ‬ ‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ﺑﺈﺫﻥ‬ ،‫ﺍﻟﻘﺎﺩﻣﺔ‬ ‫ﺑﺎﻟﺸﺮﺍﺋﺢ‬.. ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 8. ECMASCRIPT ‫ﺍﻝ‬ ‫ﻋﻦ‬ ‫ﻗﻠﻴﻼ‬ ‫ﺃﺗﺤﺪﺙ‬ ‫ﻫﻞ‬ ،‫ﻣﺤﺘﺎﺭﺍ‬ ‫ﻛﻨﺖ‬ ،‫ﺍﻟﺪﻭﺭﺓ‬ ‫ﻫﺬﻩ‬ ‫ﺑﺎﺩﺉ‬ ‫ﻓﻲ‬ ECMAScript‫ﷲ‬ ‫ﻫﺪﺍﻧﻲ‬ ‫ﺛﻢ‬ ،‫ﻻ‬ ‫ﺃﻡ‬ ‫ﺑﻬﺎ‬ ‫ﺧﺎﺻﺎ‬ ‫ﺟﺰﺋﺎ‬ ‫ﻟﻬﺎ‬ ‫ﺃﻓﺮﻍ‬ ‫ﻭﻫﻞ‬ ،‫ﻻ‬ ‫ﺃﻡ‬ ‫ﻋﻦ‬ ‫ﺍﻟﻜﻠﻤﺔ‬ ‫ﻫﺬﻩ‬ ‫ﻏﻴﺎﺏ‬ ‫ﺍﻟﻰ‬ ‫ﻳﻌﻮﺩ‬ ‫ﻭﺍﻟﺴﺒﺐ‬ ،‫ﻣﻨﻔﺼﻞ‬ ‫ﺟﺰء‬ ‫ﻓﻲ‬ ‫ﺃﺿﻌﻬﺎ‬ ‫ﻷﻥ‬ ‫ﺗﻌﺎﻟﻰ‬ ‫ﻣﻨﻬﻢ‬ ‫ﺍﻟﻨﺎﺷﺌﻴﻦ‬ ‫ﻭﺧﺼﻮﺻﺎ‬ ،‫ﻭﺍﻟﻤﻄﻮﺭﻳﻦ‬ ‫ﺍﻟﻤﺒﺮﻣﺠﻴﻦ‬ ‫ﻣﻌﻈﻢ‬.. ‫ﺍﻝ‬ECMAScript‫ﺍﻟﻤﻌﺎﻳﻴﺮ‬ ‫ﻭﺿﻊ‬ ‫ﻫﺪﻓﻬﺎ‬ ،‫ﺭﺑﺤﻴﺔ‬ ‫ﻏﻴﺮ‬ ‫ﻋﺎﻟﻤﻴﺔ‬ ‫ﻣﻨﻈﻤﺔ‬ ‫ﻫﻲ‬ ‫ﺍﻟﺴﻜﺮﺑﺖ‬ ‫ﺑﻠﻐﺎﺕ‬ ‫ﺍﻟﺨﺎﺻﺔ‬JavaScript, Action Script, JScript ‫ﺍﻟﻰ‬ ‫ﺑﺎﻹﺿﺎﻓﺔ‬ ،‫ﺑﺎﻟﺴﻜﺮﺑﺖ‬ ‫ﺍﻟﺨﺎﺻﺔ‬ ‫ﻭﺍﻟﻘﻮﺍﻋﺪ‬ ‫ﺍﻟﻌﺎﻡ‬ ‫ﺍﻟﻮﺻﻒ‬ ‫ﻭﺿﻊ‬ ‫ﻋﻠﻰ‬ ‫ﻭﺗﻘﻮﻡ‬ ‫ﻟﻠﺴﻜﺮﺑﺖ‬ ‫ﺍﻟﺘﻄﻮﻳﺮ‬ ‫ﻋﻦ‬ ‫ﺍﻟﻤﺴﺆﻭﻟﺔ‬ ‫ﺍﻟﺠﻬﺔ‬ ‫ﻫﻲ‬ ‫ﻭﻟﺘﺼﺒﺢ‬ ،‫ﻭﻣﻜﺎﺗﺒﻬﺎ‬ ‫ﺍﻟﻠﻐﺔ‬ ‫ﺗﻄﻮﻳﺮ‬ ‫ﺍﻝ‬ ‫ﻣﻊ‬ ‫ﻳﺘﻌﺎﻣﻞ‬ ‫ﺍﻟﺬﻱ‬ ‫ﻟﻠﺠﺎﻧﺐ‬ ‫ﻭﺗﺤﺪﻳﺪﺍ‬Client-Side...‫ﻭﺍﻝ‬ECMA‫ﻫﻲ‬ ‫ﻝ‬ ‫ﺇﺧﺘﺼﺎﺭ‬European Computer Manufacturers Association (ECMA) ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 9. ECMASCRIPT ‫ﻭﺍﻝ‬ECMA‫ﺗﻄﻮﻳﺮ‬ ‫ﻋﻦ‬ ‫ﻭﺍﻟﻤﺴﺆﻭﻟﺔ‬ ‫ﺭﺑﺤﻴﺔ‬ ‫ﺍﻟﻐﻴﺮ‬ ‫ﺍﻟﻤﻨﻈﻤﺔ‬ ‫ﻓﺈﻧﻪ‬ ‫ﻟﻮﺣﺪﻫﺎ‬ ‫ﻣﺜﻞ‬ ‫ﺍﻷﺧﺮﻯ‬ ‫ﻭﺍﻷﻣﻮﺭ‬ ‫ﺍﻟﻠﻐﺎﺕ‬ ‫ﻣﻦ‬ ‫ﺍﻟﻌﺪﻳﺪ‬ ‫ﻣﻌﺎﻳﻴﺮ‬ ‫ﻭﻭﺿﻊ‬C++/Cli‫ﺍﻝ‬ ‫ﻭ‬ HVD‫ﺍﻟﻤﻮﺿﻮﻉ‬ ‫ﻟﺘﺨﺼﻴﺺ‬ ‫ﺍﻹﺳﻢ‬ ‫ﺑﻌﺪ‬ ‫ﺑﺎﻟﻤﺠﺎﻝ‬ ‫ﺗﺤﺪﻳﺪﻫﺎ‬ ‫ﻳﺘﻢ‬ ‫ﻟﺬﻟﻚ‬ ،‫ﻭﻏﻴﺮﻫﺎ‬ ‫ﻣﻔﻬﻮﻡ‬ ‫ﻋﻦ‬ ‫ﺍﻟﺴﺎﺑﻘﺔ‬ ‫ﺍﻟﺸﺮﻳﺤﺔ‬ ‫ﻓﻲ‬ ‫ﺫﻛﺮﻧﺎ‬ ‫ﻛﻤﺎ‬ECMAScript.... ‫ﺷﺮﻛﺔ‬ ‫ﻗﺒﻞ‬ ‫ﻣﻦ‬ ‫ﻁﻮﺭﺕ‬ ،‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﺑﺄﻥ‬ ‫ﻳﻌﻠﻢ‬ ‫ﺟﻤﻴﻌﻨﺎ‬ ‫ﻁﺒﻌﺎ‬Netscape ‫ﺍﻝ‬ ‫ﺍﻟﻰ‬ ‫ﻣﻨﻬﺎ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﺑﻨﻘﻞ‬ ‫ﻗﺎﻣﺖ‬ ‫ﺍﻟﺸﺮﻛﺔ‬ ‫ﻫﺬﻩ‬ ‫ﻟﻜﻦ‬ECMA،‫ﺍﻟﻌﺎﻟﻤﻴﺔ‬ ‫ﻋﻠﻴﻬﺎ‬ ‫ﺳﻴﻌﻤﻞ‬ ‫ﻟﻤﻦ‬ ‫ﻋﺎﻟﻤﻴﺎ‬ ‫ﻭﺍﺿﺤﺔ‬ ‫ﻭﻣﻌﺎﻳﻴﺮ‬ ‫ﺃﺳﺲ‬ ‫ﻭﺿﻊ‬ ‫ﻟﻴﺘﻢ‬..‫ﻋﺎﻡ‬ ‫ﻓﻲ‬ ‫ﻫﺬﺍ‬ ‫ﻭﻛﺎﻥ‬ 1996‫ﺷﻬﺮ‬ ‫ﻓﻲ‬ ‫ﺇﺻﺪﺍﺭ‬ ‫ﺃﻭﻝ‬ ‫ﻭﺻﺪﺭ‬ ،6‫ﻋﺎﻡ‬1997... ‫ﻣﻬﺎﻡ‬ ‫ﻣﻦ‬ ‫ﺗﻘﺪﻣﻪ‬ ‫ﻭﻣﺎ‬ ،‫ﺗﺸﻴﺮ‬ ‫ﻣﺎﺫﺍ‬ ‫ﻭﺍﻟﻰ‬ ،‫ﺍﻟﻜﻠﻤﺔ‬ ‫ﻫﺬﻩ‬ ‫ﺗﻌﻨﻲ‬ ‫ﻣﺎﺫﺍ‬ ‫ﻋﺮﻓﻨﺎ‬ ‫ﻧﻜﻮﻥ‬ ‫ﻭﺑﻬﺬﺍ‬ ،‫ﻭﺍﻵﻥ‬ ‫ﻣﻮﺿﻮﻋﻨﺎ‬ ‫ﻷﻧﻬﺎ‬ ‫ﺧﺼﻮﺻﺎ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﻭﺍﻟﺠﺎﻓﺎ‬ ‫ﻋﻤﻮﻣﺎ‬ ‫ﺍﻟﺴﻜﺮﺑﺖ‬ ‫ﻟﻤﻄﻮﺭﻳﻦ‬^_^ ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 10. ECMASCRIPT&BROWSERS ‫ﻟﻴﺘﻢ‬ ‫ﺯﻣﻨﻴﺔ‬ ‫ﻓﺘﺮﺓ‬ ‫ﻫﻨﺎﻙ‬ ‫ﺃﻥ‬ ‫ﺍﻟﻤﻌﻠﻮﻡ‬ ‫ﻣﻦ‬ ‫ﻓﺈﻧﻪ‬ ،‫ﻣﻜﺘﺒﺔ‬ ‫ﺃﻱ‬ ‫ﺗﺤﺪﻳﺚ‬ ‫ﺃﻭ‬ ‫ﺗﻄﻮﻳﺮ‬ ‫ﻋﻨﺪ‬ ‫ﻣﺜﺎﻝ‬ ‫ﻭﺃﻗﺮﺏ‬ ،‫ﺍﻟﻤﻀﺎﻓﺔ‬ ‫ﺍﻟﺠﺪﻳﺪﺓ‬ ‫ﺍﻟﺨﺼﺎﺋﺺ‬ ‫ﺟﻤﻴﻊ‬ ‫ﻟﺘﺨﺪﻡ‬ ‫ﺍﻟﻤﺘﺼﻔﺤﺎﺕ‬ ‫ﺗﻄﻮﻳﺮ‬ ‫ﺍﻝ‬ ‫ﻫﻨﺎ‬CSS3‫ﺩﻋﻢ‬ ‫ﺗﺤﺎﻭﻝ‬ ‫ﺍﻟﻤﺘﺼﻔﺤﺎﺕ‬ ‫ﻓﺈﻥ‬ ،‫ﻭﺍﻋﺘﻤﺎﺩﻫﺎ‬ ،‫ﺗﻄﻮﻳﺮﻫﺎ‬ ‫ﻓﻤﻨﺬ‬ ، ‫ﻣﻤﻜﻦ‬ ‫ﺷﻜﻞ‬ ‫ﺑﺄﻛﺒﺮ‬ ‫ﺍﻟﺨﺼﺎﺋﺺ‬..‫ﺟﻞ‬ ‫ﺗﺪﻋﻢ‬ ‫ﻟﻢ‬ ‫ﻣﺘﺼﻔﺤﺎﺕ‬ ‫ﻫﻨﺎﻙ‬ ،‫ﺍﻵﻥ‬ ‫ﻭﺍﻟﻰ‬ ‫ﻣﻦ‬ ‫ﻣﺠﻤﻮﻋﺔ‬ ‫ﺗﺪﻋﻢ‬ ‫ﻣﻌﻈﻤﻬﺎ‬ ‫ﻓﻲ‬ ‫ﺍﻟﺮﺋﻴﺴﻴﺔ‬ ‫ﺍﻟﻤﺘﺼﻔﺤﺎﺕ‬ ‫ﻟﻜﻦ‬ ،‫ﺍﻟﺨﺼﺎﺋﺺ‬ ‫ﻫﺬﻩ‬ ‫ﺍﻟﻰ‬ ‫ﻭﻭﺻﻮﻻ‬ ،‫ﻭﺍﺳﺘﺨﺪﺍﻣﻬﺎ‬ ‫ﻭﺟﻮﺩﻫﺎ‬ ‫ﺍﻟﺒﺪﺍﻫﺔ‬ ‫ﻣﻦ‬ ‫ﺍﻵﻥ‬ ‫ﺃﺻﺒﺤﺖ‬ ‫ﺍﻟﺨﺼﺎﺋﺺ‬ ‫ﺍﻝ‬ ‫ﻳﺴﺘﺨﺪﻡ‬ ‫ﻟﻢ‬ ‫ﻣﻨﺎ‬ ‫ﻣﻦ‬ ،‫ﺍﻟﻠﺤﻈﺔ‬CSS3‫ﺭﺍﺋﻌﺔ‬ ‫ﻭﺧﺪﻣﺎﺕ‬ ‫ﻣﺰﺍﻳﺎ‬ ‫ﻣﻦ‬ ‫ﺗﻘﺪﻣﻪ‬ ‫ﻭﻣﺎ‬.. ‫ﻣﺪﻋﻮﻣﺔ‬ ‫ﻟﻴﺴﺖ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﻟﻠﺠﺎﻓﺎ‬ ‫ﺍﻟﺠﺪﻳﺪﺓ‬ ‫ﺍﻟﺨﺼﺎﺋﺺ‬ ‫ﻓﺈﻥ‬ ،‫ﺍﻟﻘﻴﺎﺱ‬ ‫ﻧﻔﺲ‬ ‫ﻭﻋﻠﻰ‬ ‫ﻳﻤﻜﻨﻚ‬ ،‫ﺍﻟﺠﺪﻳﺪﺓ‬ ‫ﺍﻟﻤﺰﺍﻳﺎ‬ ‫ﻫﺬﻩ‬ ‫ﺩﻋﻢ‬ ‫ﻭﻟﻀﻤﺎﻥ‬ ،‫ﺍﻟﻤﺘﺼﻔﺤﺎﺕ‬ ‫ﺟﻤﻴﻊ‬ ‫ﻣﻦ‬ ‫ﻛﺎﻣﻞ‬ ‫ﺑﺸﻜﻞ‬ ‫ﺍﻝ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬Compiler‫ﻧﻘﻮﻡ‬ ‫ﻛﻤﺎ‬ ،‫ﻟﻪ‬ ‫ﺭﺍﺑﻂ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﻟﻠﺠﺎﻓﺎ‬ ‫ﺍﻟﻘﺎﺭﺉ‬ ‫ﺑﺘﻀﻤﻴﻦ‬Font‫ﻣﺜﻼ‬ ‫ﺟﻮﺟﻞ‬ ‫ﻣﻦ‬)‫ﺍﻟﺘﺸﺒﻴﻪ‬ ‫ﻓﺎﺭﻕ‬ ‫ﻣﻊ‬.( ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 11. ECMASCRIPT&BROWSERS ‫ﻣﻦ‬ ‫ﻣﻌﻴﻨﺔ‬ ‫ﺳﻤﺔ‬ ‫ﺃﻭ‬ ‫ﺧﺎﺻﻴﺔ‬ ‫ﺗﺪﻋﻢ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﻤﺘﺼﻔﺤﺎﺕ‬ ‫ﻋﻠﻰ‬ ‫ﻟﻺﻁﻼﻉ‬ ،‫ﻭﺍﻵﻥ‬ ‫ﺍﻝ‬ ‫ﻭﺣﺘﻰ‬ ،‫ﻋﺪﻣﻬﺎ‬Compiler‫ﺧﺼﺎﺋﺺ‬ ‫ﻣﻦ‬ ‫ﻳﺪﻋﻢ‬ ‫ﻛﻢ‬ ‫ﺑﺘﻀﻤﻴﻨﻪ‬ ‫ﺳﻨﻘﻮﻡ‬ ‫ﺍﻟﺬﻱ‬ ‫ﺍﻟﺮﺍﺑﻂ‬ ‫ﻫﺬﺍ‬ ‫ﺍﻟﻰ‬ ‫ﺍﻟﺪﺧﻮﻝ‬ ‫ﺳﻮﻯ‬ ‫ﻋﻠﻴﻨﺎ‬ ‫ﻣﺎ‬: /6table/es-https://kangax.github.io/compat )‫ﻣﻼﺣﻈﺔ‬:‫ﺍﻟﺠﺪﻭﻝ‬ ‫ﺗﺼﻔﺢ‬ ‫ﻣﻦ‬ ‫ﺗﺘﻤﻜﻦ‬ ‫ﺣﺘﻰ‬ ‫ﻭﻟﻠﻴﺴﺎﺭ‬ ‫ﻟﻠﻴﻤﻴﻦ‬ ‫ﺍﻟﺴﻬﻢ‬ ‫ﺣﺮﻙ‬( ‫ﻟﻠﺨﺼﺎﺋﺺ‬ ‫ﺍﻟﻤﻮﻗﻊ‬ ‫ﻋﻦ‬ ‫ﺻﻮﺭﺓ‬ ‫ﻟﻤﺸﺎﻫﺪﺓ‬ ‫ﺍﻟﺘﺎﻟﻴﺔ‬ ‫ﻟﻠﺸﺮﻳﺤﺔ‬ ‫ﺗﻨﺘﻘﻞ‬ ‫ﺃﻥ‬ ‫ﻗﺒﻞ‬ ‫ﻭﺍﻵﻥ‬ ‫ﻓﻲ‬ ‫ﺩﻋﻤﻬﺎ‬ ‫ﺗﻢ‬ ‫ﺍﻟﺮﺋﻴﺴﻴﺔ‬ ‫ﺍﻟﺴﻤﺎﺕ‬ ‫ﺃﻭ‬ ‫ﺍﻟﺮﺋﻴﺴﻴﺔ‬ ‫ﺍﻟﺨﺼﺎﺋﺺ‬ ‫ﻓﺈﻥ‬ ،‫ﺍﻟﻤﺪﻋﻮﻣﺔ‬ ‫ﺍﻟﺮﺋﻴﺴﻴﺔ‬ ‫ﺍﻟﻤﺘﺼﻔﺤﺎﺕ‬..‫ﺃﻥ‬ ‫ﻣﺜﻼ‬ ‫ﻓﻼﺣﻆ‬40%‫ﻣﺘﻔﻖ‬ ‫ﻳﻜﻮﻥ‬ ‫ﻗﺪ‬ ‫ﺍﻟﺨﺼﺎﺋﺺ‬ ‫ﻣﻦ‬ ‫ﺍﻟﻤﺘﺼﻔﺤﺎﺕ‬ ‫ﺑﻴﻦ‬ ‫ﻣﻦ‬ ‫ﺍﻵﻥ‬ ‫ﻋﻠﻴﻬﺎ‬..‫ﺧﺼﺎﺋﺺ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻓﻲ‬ ‫ﺗﻌﻤﻘﺖ‬ ‫ﻛﻠﻤﺎ‬ ‫ﻟﻜﻦ‬ ‫ﻣﺸﻬﻮﺭﺓ‬ ‫ﻏﻴﺮ‬ ‫ﺃﻭ‬ ‫ﺟﺪﻳﺪﺓ‬..‫ﻣﻦ‬ ‫ﻣﺪﻋﻮﻣﺔ‬ ‫ﺃﻭ‬ ،‫ﻣﺪﻋﻮﻣﺔ‬ ‫ﻏﻴﺮ‬ ‫ﺍﻟﺨﺎﺻﺔ‬ ‫ﻓﺴﺘﻜﻮﻥ‬ ‫ﺍﻟﻜﻞ‬ ‫ﻣﻦ‬ ‫ﻭﻟﻴﺲ‬ ‫ﻣﺘﺼﻔﺢ‬... ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 13. RUNNING ECMASCRIPT 6 ‫ﻣﻦ‬ ‫ﺑﺪﻋﻢ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﺑﺮﻣﺠﺔ‬ ‫ﻓﻲ‬ ‫ﷲ‬ ‫ﺑﺮﻛﺔ‬ ‫ﻋﻠﻰ‬ ‫ﻟﻨﺒﺪء‬ ،‫ﻭﺍﻵﻥ‬ES6^_^ ‫ﺍﻝ‬ ‫ﺑﺘﺤﻤﻴﻞ‬ ‫ﻧﻘﻮﻡ‬ ‫ﺃﻭﻻ‬ ‫ﻋﻠﻴﻨﺎ‬ ،‫ﺻﺤﻴﺢ‬ ‫ﺑﺸﻜﻞ‬ ‫ﻟﻨﺒﺪﺃ‬babel‫ﻣﻦ‬ ‫ﺑﺎﻟﻤﺘﺼﻔﺢ‬ ‫ﺍﻟﺨﺎﺹ‬ ‫ﺍﻟﺮﺍﺑﻂ‬ ‫ﻫﺬﺍ‬ ‫ﺧﻼﻝ‬) :‫ﺍﻝ‬Babel‫ﺳﻜﺮﺑﺖ‬ ‫ﺟﺎﻓﺎ‬ ‫ﻫﻮ‬compiler: ( https://babeljs.io/docs/setup/#babel_in_browser ‫ﺍﻝ‬ ‫ﻟﺘﺤﻤﻴﻞ‬ ‫ﻁﺒﻌﺎ‬babel‫ﺍﻝ‬ ‫ﺑﺘﺤﻤﻴﻞ‬ ‫ﺗﻘﻮﻡ‬ ‫ﺃﻥ‬ ‫ﻳﺠﺐ‬npm.. ‫ﺍﻝ‬ ‫ﺗﺤﻤﻴﻞ‬ ‫ﺛﻢ‬ ‫ﻭﻣﻦ‬ ‫ﺑﺎﻟﺒﺤﺚ‬ ‫ﺗﻘﻮﻡ‬ ‫ﺑﺄﻥ‬ ‫ﻭﺃﻧﺼﺤﻚ‬npm)..‫ﺍﻝ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬npm ‫ﺍﻷﻣﺮ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻳﻤﻜﻨﻨﺎ‬npm‫ﺍﻝ‬ ‫ﻟﺘﻨﺼﻴﺐ‬babel‫ﺍﻷﻣﺮ‬ ‫ﻁﺮﻳﻖ‬ ‫ﻋﻦ‬ npm install babel(‫ﺍﻟﻰ‬ ‫ﺗﺬﻫﺐ‬ ‫ﺛﻢ‬bable-core‫ﺍﻝ‬ ‫ﻣﻠﻒ‬ ‫ﻭﺗﺄﺧﺬ‬ browser.js) ....‫ﺍﻟﺪﻭﺭﺓ‬ ‫ﺑﻬﺬﻩ‬ ‫ﺍﻟﺨﺎﺹ‬ ‫ﺍﻟﻤﺠﻠﺪ‬ ‫ﻓﻲ‬ ‫ﺍﻟﻤﻠﻒ‬ ‫ﺑﻮﺿﻊ‬ ‫ﺳﺄﻗﻮﻡ‬ ‫ﻁﺒﻌﺎ‬ ‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ﺑﺈﺫﻥ‬(.. ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 14. RUNNING ECMASCRIPT 6 ‫ﺍﻝ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻁﺮﻳﻘﺔ‬Babel‫ﻫﻲ‬: ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com ‫ﺍﻝ‬ ‫ﺑﺘﻀﻤﻴﻦ‬ ‫ﺗﻘﻢ‬ ‫ﻟﻢ‬ ‫ﺣﺎﻝ‬ ‫ﻓﻲ‬ ‫ﺍﻟﺨﻄﺄ‬ ‫ﻫﺬﺍ‬ ‫ﺷﺎﻫﺪ‬Babel)‫ﻣﺜﺎﻝ‬ ‫ﺗﻄﺒﻴﻖ‬ ‫ﻟﻨﺎﺗﺞ‬ ‫ﺍﺳﺘﺒﺎﻕ‬ ‫ﻫﺬﺍ‬(
  • 15.
  • 16. LET KEYWORD ‫ﻛﻠﻤﺔ‬LET‫ﻣﻌﻴﻦ‬ ‫ﻧﻄﺎﻕ‬ ‫ﺗﻌﺮﻳﻒ‬ ‫ﻭﻫﻲ‬ ،‫ﻣﻬﻤﺔ‬ ‫ﺑﻌﻤﻠﻴﺔ‬ ‫ﻟﺘﻘﻮﻡ‬ ‫ﺇﺿﺎﻓﺘﻬﺎ‬ ‫ﺗﻢ‬ )Block Scope(‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻳﺘﻢ‬ ‫ﺍﻟﻤﺘﻐﻴﺮ‬ ‫ﺃﻥ‬ ‫ﺃﻱ‬ ،‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻓﻲ‬ ‫ﻟﻠﻤﺘﻐﻴﺮﺍﺕ‬ ‫ﺍﻝ‬ ‫ﻫﺬﺍ‬ ‫ﺩﺍﺧﻞ‬ ‫ﻣﻌﻬﺎ‬ ‫ﻭﺍﻟﺘﻌﺎﻣﻞ‬ ‫ﻗﻴﻤﺘﻪ‬scope‫ﺍﻝ‬ ‫ﺧﺎﺭﺝ‬ ‫ﻭﻳﻌﺘﺒﺮ‬ ،Scope‫ﻏﻴﺮ‬ ‫ﻣﻌﺮﻑ‬..^_^‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬: ‫ﺍﺳﺘﺨﺪﻣﺖ‬ ‫ﺃﻧﻨﻲ‬ ‫ﻫﻨﺎ‬ ‫ﻻﺣﻆ‬let ‫ﺍﻝ‬ ‫ﻭﺍﺳﺘﺨﺪﻣﺖ‬var‫ﻭﻻﺣﻆ‬ ، ‫ﺍﻝ‬ ‫ﺃﻥ‬alert‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬scope ‫ﺍﻝ‬ ‫ﻣﻦ‬ ‫ﻛﻞ‬ ‫ﻧﺘﻴﺠﺔ‬ ‫ﺑﺎﻅﻬﺎﺭ‬ ‫ﻗﺎﻣﺖ‬ X‫ﻭﺍﻝ‬Y‫ﺍﻝ‬ ‫ﺧﺎﺭﺝ‬ ‫ﺃﻣﺎ‬ ،scope ‫ﻟﻞ‬ ‫ﺍﻟﻨﺎﺗﺞ‬ ‫ﻓﻜﺎﻥ‬x=undefined ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 17. CONST KEYWORD ‫ﺍﻟﻤﺤﺠﻮﺯﺓ‬ ‫ﺍﻟﻜﻠﻤﺔ‬const‫ﺃﺧﺮﻯ‬ ‫ﻟﻐﺎﺕ‬ ‫ﻓﻲ‬ ‫ﺷﺎﻫﺪﻧﺎﻫﺎ‬ ‫ﻟﻄﺎﻟﻤﺎ‬ ‫ﻛﻠﻤﺎ‬ ، ‫ﻫﻮ‬ ‫ﻭﻛﻤﺎ‬ ،‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻓﻲ‬ ‫ﺍﺳﺘﺨﺪﺍﻣﻬﺎ‬ ‫ﺑﺎﻹﻣﻜﺎﻥ‬ ‫ﻳﻜﻦ‬ ‫ﻟﻢ‬ ‫ﻟﻜﻨﻪ‬ ،‫ﻭﺍﺳﺘﺨﺪﻣﻨﺎﻫﺎ‬ ‫ﺍﻝ‬ ‫ﻓﺈﻥ‬ ،‫ﻟﺪﻳﻨﺎ‬ ‫ﻣﻌﺮﻭﻑ‬const‫ﺍﻟﻰ‬ ‫ﺗﺸﻴﺮ‬“‫ﺍﻟﺜﺎﺑﺖ‬”‫ﻳﺠﻮﺯ‬ ‫ﻻ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﻫﺬﻩ‬ ‫ﺃﻥ‬ ‫ﺃﻱ‬ ، ‫ﺍﻟﻀﺮﻳﺒﺔ‬ ‫ﻗﻴﻤﺔ‬ ‫ﻣﺜﻞ‬ ،‫ﺑﻬﺎ‬ ‫ﺍﻟﻤﺴﺎﺱ‬ ‫ﺃﻭ‬ ‫ﺗﻐﻴﻴﺮﻫﺎ‬16) %‫ﺍﻷﺭﺩﻥ‬ ‫ﻓﻲ‬(‫ﻳﻌﻨﻲ‬ ‫ﻭﻫﺬﺍ‬ ، ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﺳﺘﺘﻢ‬ ،‫ﻟﻬﺎ‬ ‫ﺍﻟﻀﺮﻳﺒﺔ‬ ‫ﺣﺴﺎﺏ‬ ‫ﺳﻴﺘﻢ‬ ‫ﻋﻤﻠﻴﺎﺕ‬ ‫ﻣﻦ‬ ‫ﺗﻨﻔﻴﺬﻩ‬ ‫ﺳﻴﺘﻢ‬ ‫ﻣﺎ‬ ‫ﺟﻤﻴﻊ‬ ‫ﺃﻥ‬ ‫ﺗﻐﻴﻴﺮ‬ ‫ﻳﻌﻨﻲ‬ ‫ﻓﻬﺬﺍ‬ ،‫ﺍﻟﻀﺮﻳﺒﺔ‬ ‫ﻗﻴﻤﺔ‬ ‫ﺗﻐﻴﻴﺮ‬ ‫ﺃﺭﺩﺕ‬ ‫ﻟﻮ‬ ‫ﺍﻟﻮﻗﺖ‬ ‫ﻭﺑﺬﺍﺕ‬ ،‫ﺍﻟﻀﺮﻳﺒﺔ‬ ‫ﺛﺎﺑﺖ‬ ‫ﺍﻝ‬ ‫ﻗﻴﻤﺔ‬const‫ﺑﺘﻌﺮﻳﻔﻪ‬ ‫ﻗﻤﻨﺎ‬ ‫ﺍﻟﺬﻱ‬*^_.... ‫ﺍﻵﻥ‬ ‫ﻭﺍﻟﺴﺆﺍﻝ‬..‫ﺍﻝ‬ ‫ﻗﻴﻤﺔ‬ ‫ﺑﻪ‬ ‫ﻭﻧﻀﻊ‬ ‫ﻣﺘﻐﻴﺮ‬ ‫ﺑﺘﻌﺮﻳﻒ‬ ‫ﻧﻘﻮﻡ‬ ‫ﺃﻥ‬ ‫ﺍﻟﻤﻤﻜﻦ‬ ‫ﻣﻦ‬ ‫ﺍﻟﻴﺲ‬ 16%‫ﺍﻝ‬ ‫ﺇﺿﺎﻓﺔ‬ ‫ﺍﻟﻰ‬ ‫ﺍﻟﺤﺎﺟﺔ‬ ‫ﺩﻭﻥ‬const‫؟‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﺇﺻﺪﺍﺭ‬ ‫ﺍﻟﻰ‬ ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 18. CONST KEYWORD ‫ﺍﻟﺠﻮﺍﺏ‬:‫ﺣﻤﺎﻳﺔ‬ ‫ﻫﻨﺎﻙ‬ ‫ﻓﻬﻞ‬ ،‫ﻣﺘﻐﻴﺮ‬ ‫ﻋﻦ‬ ‫ﺗﺘﺤﺪﺙ‬ ‫ﺃﻧﻚ‬ ‫ﻁﺎﻟﻤﺎ‬ ‫ﻟﻜﻦ‬ ،‫ﺫﻟﻚ‬ ‫ﻳﻤﻜﻨﻨﺎ‬ ‫ﻧﻌﻢ‬ ،‫ﺑﻚ‬ ‫ﺍﻟﺨﺎﺻﺔ‬ ‫ﺍﻟﺒﺮﻣﺠﻴﺔ‬ ‫ﺍﻟﺸﻴﻔﺮﺓ‬ ‫ﻗﺒﻞ‬ ‫ﻣﻦ‬ ‫ﺗﻐﻴﻴﺮ‬ ‫ﺩﻭﻥ‬ ‫ﺛﺎﺑﺘﺔ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﺣﻔﻆ‬ ‫ﻟﻚ‬ ‫ﺗﻀﻤﻦ‬ ‫؟‬ ‫ﺛﺎﻟﺚ‬ ‫ﻁﺮﻑ‬ ‫ﻣﻦ‬ ‫ﺃﺧﺮﻯ‬ ‫ﺑﺮﻣﺠﻴﺔ‬ ‫ﺷﻴﻔﺮﺓ‬ ‫ﺃﻭ‬! ‫ﺍﻝ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬const‫ﻭﻣﻦ‬ ‫ﺍﻟﻤﺤﺠﻮﺯﺓ‬ ‫ﺍﻟﻜﻠﻤﺔ‬ ‫ﻫﺬﻩ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻫﻮ‬ ‫ﻓﻌﻠﻪ‬ ‫ﻋﻠﻴﻚ‬ ‫ﻣﺎ‬ ‫ﻛﻞ‬ ‫ﺗﻌﺪﻳﻞ‬ ‫ﺃﻱ‬ ‫ﻣﻦ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﻟﻬﺬﻩ‬ ‫ﺍﻟﺤﻤﺎﻳﺔ‬ ‫ﻋﻤﻠﻴﺔ‬ ‫ﺍﻟﺒﺮﻣﺠﻴﺔ‬ ‫ﺍﻵﻟﺔ‬ ‫ﺳﺘﺘﻮﻟﻰ‬ ‫ﺛﻢ‬^_^.. ‫ﻣﺜﺎﻻ‬ ‫ﻟﻨﺸﺎﻫﺪ‬ ‫ﻭﺍﻵﻥ‬: ‫ﻣﺜﺎﻝ‬1: ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 19. CONST KEYWORD ‫ﻣﺜﺎﻝ‬2:‫ﺍﻟﺨﻄﺄ‬ ‫ﻫﻨﺎ‬ ‫ﻻﺣﻆ‬.. ‫ﺍﻝ‬ ‫ﺑﺄﻥ‬ ‫ﻳﺨﺒﺮﻙ‬ ‫ﺍﻟﺨﻄﺄ‬const Read only..‫ﻗﻴﻤﺘﻪ‬ ‫ﺗﻐﻴﻴﺮ‬ ‫ﻳﻤﻜﻦ‬ ‫ﻻ‬ ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 20. CONST KEYWORD ‫ﻣﺜﺎﻝ‬3:‫ﺍﻝ‬ ‫ﺃﻥ‬ ‫ﻭﻫﻲ‬ ،‫ﻣﻬﻤﺔ‬ ‫ﻟﻨﻘﻄﺔ‬ ‫ﻫﻨﺎ‬ ‫ﺇﻧﺘﺒﻪ‬const‫ﺍﻝ‬ ‫ﻣﺜﻞ‬ ‫ﺗﻌﺮﻳﻔﻪ‬ ‫ﻳﺘﻢ‬ ‫ﻋﻨﺪﻣﺎ‬ tax‫ﺳﻴﻜﻮﻥ‬ ، ‫ﻫﻨﺎ‬Global‫ﻗﻤﻨﺎ‬ ‫ﺍﺫﺍ‬ ‫ﻟﻜﻦ‬ ،‫ﺗﻌﻠﻤﻨﺎ‬ ‫ﻛﻤﺎ‬ ‫ﻗﻴﻤﺘﻪ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻭﻳﻤﻜﻦ‬ ‫ﺍﻝ‬ ‫ﺗﻌﺮﻳﻒ‬ ‫ﺑﺈﻋﺎﺩﺕ‬const‫ﺩﺍﺧﻞ‬scope‫ﻫﺬﺍ‬ ‫ﺿﻤﻦ‬ ‫ﺍﻟﺜﺎﺑﺖ‬ ‫ﺑﺎﻧﺸﺎء‬ ‫ﻓﺴﻴﻘﻮﻡ‬ ، ‫ﺍﻝ‬scope‫ﺍﻝ‬ ‫ﻗﻴﻤﺔ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﺃﻭ‬ ‫ﺧﺎﺭﺟﺎ‬ ‫ﻗﻴﻤﺘﻪ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻳﻤﻜﻨﻨﺎ‬ ‫ﻭﻻ‬Global const‫ﺍﻝ‬ ‫ﻫﺬﺍ‬ ‫ﺩﺍﺧﻞ‬block... ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 21. CONST KEYWORD ‫ﻭﺍﻵﻥ‬..‫ﺑﺎﻝ‬ ‫ﺍﻟﻤﺘﻌﻠﻘﺔ‬ ‫ﺍﻷﻣﺜﻠﺔ‬ ‫ﺟﻤﻴﻊ‬ ‫ﻟﻨﺸﺎﻫﺪ‬const‫ﻋﻠﻰ‬ ‫ﻟﺬﻛﺮﻫﺎ‬ ‫ﺗﻄﺮﻗﻨﺎ‬ ‫ﻭﺍﻟﺘﻲ‬ ‫ﷲ‬ ‫ﺑﺮﻛﺔ‬^ _^ ‫ﻣﻼﺣﻈﺔ‬:‫ﺍﻟﺸﺮﻁ‬ ‫ﺟﻤﻠﺔ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬if(true)‫ﻣﺠﻤﻮﻋﺔ‬ ‫ﺗﻮﺿﻴﺢ‬ ‫ﻓﻘﻂ‬ ‫ﻣﻨﻪ‬ ‫ﺍﻟﻬﺪﻑ‬ ‫ﺿﻤﻦ‬ ‫ﺍﻷﻣﺜﻠﺔ‬block‫ﺍﻟﺘﻨﻮﻳﻪ‬ ‫ﻭﺟﺐ‬ ‫ﻭﻟﺬﻟﻚ‬ ،‫ﺃﺳﻠﻮﺏ‬ ‫ﺑﺄﺳﻬﻞ‬ ‫ﻣﻌﻴﻦ‬_^* ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 22. DESTRUCT VALUES ‫ﻋﺪﺓ‬ ‫ﻹﺭﺟﺎﻉ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻓﻲ‬ ‫ﻧﺴﺘﺨﺪﻣﻬﺎ‬ ‫ﻛﻨﺎ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﻄﺮﻕ‬ ‫ﻣﻦ‬ ‫ﺍﻟﻜﺜﻴﺮ‬ ‫ﻫﻨﺎﻙ‬ ‫ﻣﻦ‬ ‫ﺍﻟﻘﻴﻢ‬function)Function Return Multiple Values( ‫ﺍﻝ‬ ‫ﻣﻔﻬﻮﻡ‬ ‫ﻅﻬﺮ‬ ‫ﻫﻨﺎ‬ ‫ﻭﻣﻦ‬Destruct-‫ﺍﻟﺘﻔﻜﻴﻚ‬-‫ﺑﺠﻌﻞ‬ ‫ﺑﺪﻭﺭﻩ‬ ‫ﻳﻘﻮﻡ‬ ‫ﻭﺍﻟﺬﻱ‬ ، ‫ﺃﺧﺮﻯ‬ ‫ﺑﺮﻣﺠﻴﺔ‬ ‫ﺷﻴﻔﺮﺓ‬ ‫ﺃﻭ‬ ‫ﻟﻤﺘﻐﻴﺮﺍﺕ‬ ‫ﺍﻟﺮﺍﺟﻌﺔ‬ ‫ﺍﻟﻘﻴﻢ‬ ‫ﺍﺳﻨﺎﺩ‬ ‫ﻧﺎﺣﻴﺔ‬ ‫ﻣﻦ‬ ‫ﺍﺳﻬﻞ‬ ‫ﺍﻷﻣﻮﺭ‬ ‫ﺍﻟﻘﻴﻢ‬ ‫ﻫﺬﻩ‬ ‫ﺗﺴﺘﻘﺒﻞ‬..‫ﺍﻟﺨﺎﺻﺔ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﺗﺒﺪﻳﻞ‬ ‫ﺧﻼﻟﻬﺎ‬ ‫ﻣﻦ‬ ‫ﺑﺈﻣﻜﺎﻧﻚ‬ ‫ﺃﺻﺒﺢ‬ ‫ﺃﻧﻪ‬ ‫ﻛﻤﺎ‬ ‫ﺛﺎﻟﺚ‬ ‫ﻣﺘﻐﻴﺮ‬ ‫ﺗﻌﺮﻳﻒ‬ ‫ﺩﻭﻥ‬ ‫ﺑﻤﺘﻐﻴﺮﻳﻦ‬^_^...‫ﻋﻠﻴﻜﻢ‬ ‫ﻧﻄﻴﻞ‬ ‫ﻻ‬ ‫ﻭﺣﺘﻰ‬..‫ﺩﻋﻮﻧﺎ‬ ‫ﺍﻟﻤﻮﺿﻮﻉ‬ ‫ﻋﻠﻰ‬ ‫ﺳﻬﻼ‬ ‫ﻣﺜﺎﻻ‬ ‫ﻧﺸﺎﻫﺪ‬:P_^) :*‫ﻣﺜﺎﻝ‬1( : ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 23. DESTRUCT VALUES ‫ﻣﺜﺎﻝ‬2:‫ﺍﻟﻰ‬ ‫ﺍﻟﺤﺎﺟﺔ‬ ‫ﺩﻭﻥ‬ ‫ﻣﺘﻐﻴﺮﻳﻦ‬ ‫ﺑﻴﻦ‬ ‫ﻟﻠﻘﻴﻢ‬ ‫ﺗﺒﺪﻳﻞ‬ ‫ﺑﻌﻤﻠﻴﺔ‬ ‫ﺳﻨﻘﻮﻡ‬ ،‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻫﺬﺍ‬ ‫ﻓﻲ‬ ‫ﺟﺪﻳﺪ‬ ‫ﺛﺎﻟﺚ‬ ‫ﻣﺘﻐﻴﺮ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬^_^‫ﺍﻟﺘﺎﻟﻲ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻓﻲ‬ ‫ﻛﻤﺎ‬ ‫ﺗﺘﻢ‬ ‫ﺑﺒﺴﺎﻁﺔ‬ ‫ﺍﻟﻌﻤﻠﻴﺔ‬ ‫ﻫﺬﻩ‬ ،: ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 24. DESTRUCT VALUES ‫ﻣﺜﺎﻝ‬3:،‫ﺭﺍﺋﻌﺔ‬ ‫ﻣﺰﻳﺔ‬ ‫ﺃﻳﻀﺎ‬ ‫ﻓﻬﻨﺎﻙ‬ ،‫ﺍﻟﺴﺎﺑﻘﺔ‬ ‫ﺍﻷﻣﺜﻠﺔ‬ ‫ﻓﻲ‬ ‫ﺫﻛﺮﻧﺎﻩ‬ ‫ﻣﺎ‬ ‫ﺍﻟﻰ‬ ‫ﺑﺎﻹﺿﺎﻓﺔ‬ ‫ﺩﺍﺧﻞ‬ ‫ﺍﻟﻤﻮﺟﻮﺩﺓ‬ ‫ﺍﻟﻘﻴﻢ‬ ‫ﺍﺳﻨﺎﺩ‬ ‫ﺇﻣﻜﺎﻧﻴﺔ‬ ‫ﻭﻫﻲ‬obj‫ﺍﻝ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﻣﺘﻐﻴﺮﺍﺕ‬ ‫ﺍﻟﻰ‬ Destruct‫ﺍﻝ‬ ‫ﺍﺳﻢ‬ ‫ﺑﻨﻔﺲ‬ ‫ﺍﻟﻤﺘﻐﻴﺮﺍﺕ‬ ‫ﺍﺳﻢ‬ ‫ﻭﺿﻊ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﻫﺬﺍ‬ ‫ﻭﻳﻜﻮﻥ‬ ،key ‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬ ‫ﺍﻟﻤﻮﺟﻮﺩ‬object..‫ﻣﺎ‬ ‫ﺑﻴﻦ‬ ‫ﻭﻣﻄﺎﺑﻘﺔ‬ ‫ﺑﺤﺚ‬ ‫ﻋﻤﻠﻴﺔ‬ ‫ﻫﻲ‬ ‫ﻭﺍﻟﻌﻤﻠﻴﺔ‬ ‫ﺍﻝ‬ ‫ﻭﺑﻴﻦ‬ ‫ﻣﺘﻐﻴﺮﺍﺕ‬ ‫ﻣﻦ‬ ‫ﻭﺿﻌﺘﻪ‬key‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬ ‫ﺍﻟﻤﺴﺘﺨﺪﻣﺔ‬object‫ﻓﺈﻧﻪ‬ ‫ﻭﺑﻬﺬﺍ‬ ، ‫ﺍﻝ‬ ‫ﺗﺸﺎﺑﻪ‬ ‫ﺇﻥ‬key‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﺍﺳﻨﺎﺩ‬ ‫ﻓﻴﺘﻢ‬ ،‫ﺍﻟﻤﺘﻐﻴﺮ‬ ‫ﻭﺍﺳﻢ‬...‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬: ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 25.
  • 26. DEFAULT FUNCTION ARGUMENTS VALUES ‫ﻗﻴﻤﺔ‬ ‫ﻭﺿﻊ‬ ‫ﺇﻣﻜﺎﻧﻴﺔ‬ ‫ﻫﻲ‬ ،‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻓﻲ‬ ‫ﻧﻔﺘﻘﺪﻫﺎ‬ ‫ﻛﻨﺎ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻷﻣﻮﺭ‬ ‫ﻣﻦ‬ ‫ﻟﻞ‬ ‫ﺇﻓﺘﺮﺍﺿﻴﺔ‬Args‫ﻓﻲ‬ ‫ﺍﻟﻤﺴﺘﺨﺪﻣﺔ‬function‫ﺇﻧﺘﻬﻰ‬ ‫ﺍﻷﻣﺮ‬ ‫ﻫﺬﺍ‬ ‫ﻟﻜﻦ‬ ،‫ﻣﻌﻴﻦ‬ ‫ﺃﻭ‬ ،‫ﻣﺒﺎﺷﺮﺓ‬ ‫ﻗﻴﻤﺔ‬ ‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬ ‫ﺇﻓﺘﺮﺍﺿﻴﺔ‬ ‫ﻗﻴﻤﺔ‬ ‫ﺇﺿﺎﻓﺔ‬ ‫ﺍﻵﻥ‬ ‫ﺑﺎﻹﻣﻜﺎﻥ‬ ‫ﻭﺃﺻﺒﺢ‬ ،‫ﺍﻵﻥ‬ ‫ﺍﺭﺳﺎﻝ‬ ‫ﺍﻟﻤﻤﻜﻦ‬ ‫ﻣﻦ‬ ‫ﺃﻧﻪ‬ ‫ﻛﻤﺎ‬ ،‫ﺣﺴﺎﺑﻴﺔ‬ ‫ﻋﻤﻠﻴﺔ‬ ‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬undefined‫ﺃﻧﻬﺎ‬ ‫ﻋﻠﻰ‬ ‫ﺇﻓﺘﺮﺍﺿﻴﺔ‬ ‫ﻗﻴﻤﺔ‬^_^...‫ﻭﻓﻀﻠﻪ‬ ‫ﻧﻌﻤﻪ‬ ‫ﻋﻠﻰ‬ ‫ﺤﻤﺪ ہﻠﻟ‬^^ ‫ﺳﻬﻞ‬ ‫ﺑﺸﻜﻞ‬ ‫ﺍﻹﻓﺘﺮﺍﺿﻴﺔ‬ ‫ﺍﻟﻘﻴﻢ‬ ‫ﻭﺿﻊ‬ ‫ﻳﺘﻢ‬ ‫ﻛﻴﻒ‬ ‫ﻻﺣﻆ‬^_^‫ﻭﺟﻮﺩ‬ ‫ﺃﻳﻀﺎ‬ ‫ﻭﻻﺣﻆ‬ ، ‫ﻋﻤﻠﻴﺔ‬concat‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬ ‫ﺗﺨﺰﻥ‬f‫ﺍﻟﺤﺴﺎﺑﻴﺔ‬ ‫ﺍﻟﻌﻤﻠﻴﺎﺕ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻳﻤﻜﻨﻚ‬ ‫ﺃﻱ‬ ، ‫ﺍﻟﻘﻴﻢ‬ ‫ﻹﺳﻨﺎﺩ‬^^)..‫ﺍﻟﺘﺎﻟﻴﺔ‬ ‫ﺑﺎﻟﺸﺮﻳﺤﺔ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬( ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 28. JS SPREAD “…” OPERATOR ‫ﺍﻝ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻳﺘﻢ‬Spread Perator‫ﺍﻟﻤﺘﻐﻴﺮﺍﺕ‬ ‫ﻣﻦ‬ ‫ﻧﻬﺎﺋﻲ‬ ‫ﻻ‬ ‫ﻋﺪﺩ‬ ‫ﻟﺘﻌﺮﻳﻒ‬ ‫ﻏﻴﺮ‬ ‫ﻋﺪﺩ‬ ‫ﺑﺈﺭﺳﺎﻝ‬ ‫ﺍﻟﻘﻴﺎﻡ‬ ،‫ﺃﺩﻕ‬ ‫ﻭﺑﻤﻌﻨﻰ‬ ،‫ﻣﻌﻴﻨﺔ‬ ‫ﻟﻮﻅﻴﻔﺔ‬ ‫ﺍﺳﺘﺨﺪﺍﻣﻬﺎ‬ ‫ﻳﻤﻜﻨﻨﻲ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻝ‬ ‫ﻣﻦ‬ ‫ﻣﻌﻴﻦ‬Args‫ﻋﻤﻠﻴﺔ‬ ‫ﻓﻜﺮﺓ‬ ،‫ﺍﻟﻌﻤﻠﻴﺔ‬ ‫ﻫﺬﻩ‬ ‫ﻟﻤﺜﻞ‬ ‫ﺍﻟﻤﻔﻴﺪﺓ‬ ‫ﺍﻷﻣﺜﻠﺔ‬ ‫ﺃﺷﻬﺮ‬ ‫ﻭﻣﻦ‬ ، ‫ﺟﻤﻌﻬﺎ‬ ‫ﺍﻟﻤﺮﺍﺩ‬ ‫ﺍﻷﺭﻗﺎﻡ‬ ‫ﻋﺪﺩ‬ ‫ﻣﻌﺮﻭﻑ‬ ‫ﺍﻟﻐﻴﺮ‬ ‫ﺍﻟﺠﻤﻊ‬..‫ﻧﻘﻮﻝ‬ ‫ﺍﻟﺤﺎﺳﺒﺔ‬ ‫ﺍﻵﻟﺔ‬ ‫ﻣﺜﻞ‬ 5+6+7+55..‫ﺑﺠﻤﻞ‬ ‫ﻗﻤﺖ‬ ‫ﻓﻬﻨﺎ‬4‫ﺑﺠﻤﻊ‬ ‫ﻳﻘﻮﻡ‬ ‫ﻗﺪ‬ ‫ﻭﻏﻴﺮﻱ‬ ،‫ﻗﻴﻢ‬10‫ﻓﻬﻞ‬ ،‫ﻗﻴﻢ‬ ‫؟‬ ‫ﺇﺩﺧﺎﻟﻬﺎ‬ ‫ﺍﻟﻤﻤﻜﻦ‬ ‫ﺍﻟﻘﻴﻢ‬ ‫ﺑﻌﺪﺩ‬ ‫ﺩﻭﺍﻝ‬ ‫ﺇﻧﺸﺎء‬ ‫ﺍﻟﻤﻌﻘﻮﻝ‬ ‫ﻣﻦ‬! ‫ﺍﻝ‬ ‫ﻣﻨﻬﺎ‬ ‫ﺃﺧﺮﻯ‬ ‫ﺑﺮﻣﺠﻴﺔ‬ ‫ﺃﻓﻜﺎﺭ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻳﻤﻜﻨﻚ‬ ‫ﻟﻜﻦ‬ ،‫ﻻ‬ ‫ﻁﺒﻌﺎ‬ ‫ﺍﻟﺠﻮﺍﺏ‬ SPREAD^_^‫ﺛﻤﻨﺎ‬ ‫ﺇﺫﺍ‬ ،‫ﺃﻳﻀﺎ‬ ‫ﺑﻬﺎ‬ ‫ﺍﻟﺠﻤﻴﻠﺔ‬ ‫ﻭﺍﻹﺳﺘﺨﺪﺍﻣﺎﺕ‬ ‫ﺍﻷﻓﻜﺎﺭ‬ ‫ﻭﻣﻦ‬ ، ‫ﺑﻮﺿﻊ‬…arrayName‫ﻋﻠﻰ‬ ‫ﻓﺮﻁﺖ‬ ‫ﻭﻛﺄﻧﻬﺎ‬ ‫ﺳﺘﻌﻤﺎﻝ‬ ‫ﺍﻟﻤﺼﻔﻮﻓﺔ‬ ‫ﻫﺬﻩ‬ ‫ﻓﺈﻥ‬ ‫ﻣﺜﻞ‬ ‫ﻣﺘﻐﻴﺮﺍﺕ‬ ‫ﺷﻜﻞ‬[a, b]‫ﻭﻛﺄﻧﻬﺎ‬ ‫ﺳﺘﺼﺒﺢ‬a, b‫ﻣﺜﺎﻻ‬ ‫ﻗﻠﻴﻞ‬ ‫ﺑﻌﺪ‬ ‫ﻭﺳﻨﺮﻯ‬ ‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ﺑﺈﺫﻥ‬ ‫ﺍﻟﺤﺮﻛﺔ‬ ‫ﻫﺬﻩ‬ ‫ﻣﺜﻞ‬ ‫ﺣﺮﻛﺔ‬ ‫ﺃﻫﻤﻴﺔ‬ ‫ﻳﻮﺿﺢ‬^_^ ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 29. JS SPREAD “…” OPERATOR ‫ﻣﺜﺎﻝ‬1: ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 30. JS SPREAD “…” OPERATOR ‫ﻣﺜﺎﻝ‬2:‫ﻭﻣﻦ‬ ،‫ﺍﻟﺪﻭﺭﺍﺕ‬ ‫ﻋﻨﺎﻭﻳﻦ‬ ‫ﺗﺤﺘﻮﻱ‬ ‫ﻣﺼﻔﻮﻓﺔ‬ ‫ﺑﺈﻧﺸﺎء‬ ‫ﻗﻤﺖ‬ ‫ﺃﻧﻨﻲ‬ ‫ﻫﻨﺎ‬ ‫ﻻﺣﻆ‬ ‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬ ‫ﺃﺭﺳﻠﺘﻬﺎ‬ ‫ﺛﻢ‬Args^_^. ‫ﻣﻼﺣﻈﺔ‬:‫ﺍﻟﻤﺘﻐﻴﺮﺍﺕ‬ ‫ﻋﺪﺩ‬ ‫ﻳﻜﻮﻥ‬ ‫ﺃﻥ‬ ‫ﺍﻟﻀﺮﻭﺭﻱ‬ ‫ﻣﻦ‬ ‫ﻟﻴﺲ‬courses_tow ‫ﺳﻴﺘﻢ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﻤﺘﻐﻴﺮﺍﺕ‬ ‫ﻋﺪﺩ‬ ‫ﻳﺴﺎﻭﻱ‬“‫ﻓﺮﻁﻬﺎ‬“‫ﻗﺒﻞ‬ ‫ﻣﻦ‬…array^_^ ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 31. JS SPREAD “…” OPERATOR ‫ﻣﺜﺎﻝ‬3:‫ﻋﻨﺪﻣﺎ‬ ‫ﺃﻧﻨﻲ‬ ‫ﻭﻫﻲ‬ ،‫ﻣﻬﻤﺔ‬ ‫ﻓﻜﺮﺓ‬ ‫ﻳﻮﺿﺢ‬ ‫ﻓﻬﻮ‬ ،‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻫﺬﺍ‬ ‫ﺃﻫﻤﻴﺔ‬ ‫ﻻﺣﻆ‬ ‫ﺍﻝ‬ ‫ﻣﺼﻔﻮﻓﺔ‬ ‫ﺑﺎﺭﺳﺎﻝ‬ ‫ﻗﻤﺖ‬Spread args‫ﺍﻟﻤﺼﻔﻮﻓﺔ‬ ‫ﺍﻋﺘﺒﺮ‬arg‫ﻭﺍﺣﺪ‬ ‫ﻋﻠﻰ‬ ‫ﻳﺤﺘﻮﻱ‬6‫ﻋﻨﺎﺻﺮ‬)‫ﻣﺼﻔﻮﻓﺔ‬ ‫ﻧﻮﻋﻬﺎ‬ ‫ﻁﺒﻴﻌﺔ‬ ‫ﻋﻠﻰ‬ ‫ﻋﺎﻣﻠﻬﺎ‬(‫ﺃﻥ‬ ‫ﻭﻳﻤﻜﻨﻪ‬ ‫ﺍﻟﻤﺼﻔﻮﻓﺔ‬ ‫ﺑﻔﺮﻁ‬ ‫ﻗﻤﺖ‬ ‫ﺍﻟﺜﺎﻧﻴﺔ‬ ‫ﺍﻟﺤﺎﻟﺔ‬ ‫ﻓﻲ‬ ‫ﺑﻴﻨﻤﺎ‬ ،‫ﻣﺼﻔﻮﻓﺔ‬ ‫ﻣﻦ‬ ‫ﺃﻛﺜﺮ‬ ‫ﻳﺴﺘﻘﺒﻞ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺗﻄﺒﻴﻖ‬ ‫ﻧﺘﻴﺠﺔ‬ ‫ﻓﻲ‬ ‫ﺟﻠﻴﺎ‬ ‫ﻳﻈﻬﺮ‬ ‫ﻭﻫﺬﺍ‬ ،‫ﻗﻴﻢ‬ ‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬ ‫ﻭﺍﺭﺳﺎﻟﻬﺎ‬^ _^ ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 32. JS SPREAD “…” OPERATOR ‫ﺍﻟﺮﺍﺋﻌﺔ‬ ‫ﺍﻟﻔﻜﺮﺓ‬ ‫ﻫﺬﻩ‬ ‫ﺷﺮﺡ‬ ‫ﻣﻦ‬ ‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ﺑﺈﺫﻥ‬ ‫ﺍﻧﺘﻬﻴﻨﺎ‬ ‫ﻧﻜﻮﻥ‬ ‫ﻭﺑﻬﺬﺍ‬^_^‫ﻟﻜﻨﻨﻲ‬ ، ‫ﻧﺴﺘﺨﺪﻡ‬ ‫ﻛﻨﺎ‬ ،‫ﺳﻜﺮﺑﺖ‬ ‫ﺑﺎﻟﺠﺎﻓﺎ‬ ‫ﺃﻧﻨﺎ‬ ‫ﻭﻫﻲ‬ ،‫ﻧﻘﻄﺔ‬ ‫ﺍﻟﻰ‬ ‫ﺑﺎﻟﺘﻨﻮﻳﻪ‬ ‫ﺃﺭﻏﺐ‬ Array.prototype.slice.call‫ﺍﻝ‬ ‫ﻣﻦ‬ ‫ﻣﻌﺮﻭﻑ‬ ‫ﻏﻴﺮ‬ ‫ﻋﺪﺩ‬ ‫ﻻﺳﺘﻘﺒﺎﻝ‬ args‫ﺍﻝ‬ ‫ﻓﻲ‬ ‫ﻛﻤﺎ‬Spread‫ﻳﻮﺿﺢ‬ ‫ﺑﺴﻴﻂ‬ ‫ﻣﺜﺎﻝ‬ ‫ﻭﻫﺬﺍ‬ ،‫ﻗﻠﻴﻞ‬ ‫ﻗﺒﻞ‬ ‫ﺗﻌﻠﻤﻨﻬﺎ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﻔﻜﺮﺓ‬^_^ ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 33. ‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ﺭﺣﻤﻪ‬ ‫ﺍﻟﺸﺎﻓﻌﻲ‬ ‫ﻟﻺﻣﺎﻡ‬ ‫ﺷﻌﺮ‬
  • 34. TEMPLATE STRINGS ` ` ‫ﺍﻝ‬Template String‫ﻋﻦ‬ ‫ﻋﺒﺎﺭﺓ‬single line‫ﺃﻭ‬multiline‫ﻣﻦ‬ ‫ﺍﻝ‬String)‫ﺍﻟﺴﻄﻮﺭ‬ ‫ﻣﻦ‬ ‫ﻣﺠﻤﻮﻋﺔ‬ ‫ﺃﻭ‬ ‫ﺳﻄﺮ‬(‫ﺍﻵﻥ‬ ‫ﺗﻌﺮﻳﻔﻬﺎ‬ ‫ﻳﺘﻢ‬)‫ﺍﻹﺻﺪﺍﺭ‬ ‫ﻣﻦ‬ ES6(‫ﺍﻝ‬ ‫ﺑﺎﺳﺘﺨﺪﺍﻡ‬back-tick)`... (‫ﻣﻦ‬ ‫ﺍﻟﺠﺪﻳﺪﺓ‬ ‫ﺍﻟﻤﺰﻳﺔ‬ ‫ﻫﺬﻩ‬ ‫ﺗﻤﻜﻨﻨﺎ‬ ‫ﻛﻤﺎ‬ ‫ﻭﺿﻊ‬expressions‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬template string‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﺍﻝ‬${ }^_^.. ‫ﻣﻌﺎ‬ ‫ﻣﺜﺎﻻ‬ ‫ﻟﻨﺸﺎﻫﺪ‬ ،‫ﻭﺍﻵﻥ‬:^_^: ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺗﻄﺒﻴﻖ‬ ‫ﻧﺎﺗﺞ‬..‫ﺍﻟﺸﻴﻔﺮﺓ‬ ‫ﺍﻟﺘﺎﻟﻴﺔ‬ ‫ﺍﻟﺼﻔﺤﺔ‬ ‫ﻓﻲ‬ ‫ﺍﻟﺒﺮﻣﺠﻴﺔ‬*_*
  • 35. TEMPLATE STRINGS ` ` ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 36. ARROW FUNCTION => ‫ﺍﻹﺻﺪﺍﺭ‬ ‫ﻓﻲ‬ES6‫ﻟﺘﻌﺮﻳﻒ‬ ‫ﺟﺪﻳﺪﺓ‬ ‫ﻁﺮﻳﻘﺔ‬ ‫ﺇﺿﺎﻓﺔ‬ ‫ﺗﻢ‬Function ‫ﻭﺍﺳﺘﺨﺪﺍﻣﻪ‬!! ‫ﺃﻫﻢ‬ ‫ﻭﺇﺣﺪﻯ‬ ،‫ﻋﻤﻠﻪ‬ ‫ﺍﻟﻤﺒﺮﻣﺞ‬ ‫ﻋﻠﻰ‬ ‫ﻟﻴﺴﻬﻞ‬ ‫ﺻﻤﻢ‬ ‫ﺍﻟﺘﻌﺮﻳﻒ‬ ‫ﻫﺬﺍ‬ ‫ﻟﻜﻦ‬ ،‫ﺗﺘﻌﺠﺐ‬ ‫ﻻ‬ ‫ﻧﻌﻢ‬ ‫ﺍﻝ‬ ‫ﻛﺘﺎﺑﺔ‬ ‫ﻫﻮ‬ ،‫ﺍﻷﺳﻠﻮﺏ‬ ‫ﻫﺬﺍ‬ ‫ﺍﺳﺘﺨﺪﺍﻣﺎﺕ‬function‫ﻭﺍﺣﺪﺍ‬ ‫ﺳﻄﺮﺍ‬ ‫ﻳﺤﺘﻮﻱ‬ ‫ﺍﻟﺬﻱ‬ ‫ﺑﻜﺘﺎﺑﺔ‬ ‫ﻓﻴﻬﺎ‬ ‫ﻧﻄﺮ‬ ،‫ﺑﺤﺎﻟﺔ‬ ‫ﻣﺮﺭﻧﺎ‬ ‫ﻭﻟﻄﺎﻟﻤﺎ‬ ،‫ﻟﻠﺘﻨﻔﻴﺬ‬function‫ﺑﻌﻤﻞ‬ ‫ﻳﻘﻮﻡ‬ ‫ﻓﻘﻂ‬ return‫ﻣﻌﻴﻨﺔ‬ ‫ﻟﻘﻴﻤﺔ‬...،‫ﻭﺍﺣﺪ‬ ‫ﺳﻄﺮ‬ ‫ﺗﻨﻔﻴﺬ‬ ‫ﻣﻦ‬ ‫ﺍﻟﻄﺮﻳﻘﺔ‬ ‫ﻫﺬﻩ‬ ‫ﺗﻤﻜﻨﻚ‬ ،‫ﻭﻁﺒﻌﺎ‬ ‫ﺳﻄﺮ‬ ‫ﻣﻦ‬ ‫ﻷﻛﺜﺮ‬ ‫ﺃﻭ‬ ،‫ﻟﻪ‬ ‫ﺻﻤﻢ‬ ‫ﻛﻤﺎ‬^_^....‫ﻣﻌﺎ‬ ‫ﻣﺜﺎﻻ‬ ‫ﻭﻟﻨﺸﺎﻫﺪ‬: ‫ﻣﻼﺣﻈﺔ‬1‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺍﻟﻰ‬ ‫ﺍﻹﻧﺘﻘﺎﻝ‬ ‫ﻗﺒﻞ‬:‫ﺍﻝ‬Arrow function‫ﺍﺳﺘﺨﺪﺍﻣﻪ‬ ‫ﻳﻤﻜﻦ‬ ‫ﺍﻝ‬ ‫ﻣﻊ‬Expression‫ﺃﻭ‬Statement‫ﺃﻭ‬Lexical this... ‫ﻣﻼﺣﻈﺔ‬2:‫ﺍﻝ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﺣﻮﻝ‬ ‫ﻣﻬﻤﺔ‬ ‫ﻧﻘﺎﻁ‬ ‫ﻫﻨﺎﻙ‬arrow function ‫ﺍﻷﻣﺮ‬ ‫ﻧﺴﻬﻞ‬ ‫ﺣﺘﻰ‬ ‫ﷲ‬ ‫ﺑﺈﺫﻥ‬ ‫ﺍﻷﻣﺜﻠﺔ‬ ‫ﻓﻲ‬ ‫ﻟﻬﺎ‬ ‫ﺳﻨﺘﻄﺮﻕ‬ ،‫ﻭﺃﻫﻤﻴﺘﻬﺎ‬^_^ ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 37. ARROW FUNCTION => ‫ﻣﺜﺎﻝ‬1: ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺮﺡ‬: ‫ﺍﻝ‬contactName‫ﺍﻝ‬ ‫ﺇﺳﻢ‬ ‫ﻳﻤﺜﻞ‬function‫ﺑﺎﺳﺘﺪﻋﺎﺋﻪ‬ ‫ﺳﻨﻘﻮﻡ‬ ‫ﺍﻟﺬﻱ‬. ‫ﺍﻝ‬fname, mname‫ﺍﻝ‬ ‫ﺗﻤﺜﻞ‬function parameter ‫ﺍﻝ‬ ‫ﻓﻲ‬console.log‫ﺍﻝ‬ ‫ﺑﺎﺳﺘﺪﻋﺎء‬ ‫ﻗﻤﻨﺎ‬function‫ﺍﻟﻘﻴﻢ‬ ‫ﻭﺍﺭﺳﺎﻝ‬ “anees”‫ﻭ‬“hikmat”‫ﺍﻝ‬ ‫ﻗﺎﻡ‬ ‫ﺛﻢ‬ ‫ﻭﻣﻦ‬function‫ﺑﻴﻦ‬ ‫ﺍﻟﺮﺑﻂ‬ ‫ﺑﻌﻤﻠﻴﺔ‬ ‫ﺍﻹﺳﻤﻴﻦ‬^_^... ‫ﺍﻟﺸﻜﻞ‬ ‫ﻫﺬﺍ‬ ‫ﺑﻜﺘﺎﺑﺔ‬ ‫ﻗﻤﻨﺎ‬ ‫ﻛﺄﻧﻨﺎ‬ ‫ﺃﻱ‬: ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 38. ARROW FUNCTION => ‫ﻣﺜﺎﻝ‬2:‫ﻛﺘﺎﺑﺔ‬ ‫ﻳﻤﻜﻨﻨﺎ‬multiple statements‫ﺍﻝ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ Arrow Function‫ﺍﻟﺘﺎﻟﻲ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻓﻲ‬ ‫ﻛﻤﺎ‬: ‫ﻫﻨﺎ‬ ‫ﻻﺣﻆ‬..‫ﻭﺟﻮﺩ‬ ‫ﺣﺎﻟﺔ‬ ‫ﻓﻲ‬multiple statements‫ﺳﻨﻘﻮﻡ‬ ‫ﻣﺒﺎﺷﺮﺓ‬ ‫ﻓﺈﻧﻨﺎ‬ ‫ﻧﻄﺎﻕ‬ ‫ﺿﻤﻦ‬ ‫ﺑﺤﺼﺮﻫﺎ‬block‫ﺧﻼﻝ‬ ‫ﻣﻦ‬{}..‫ﺍﻝ‬ ‫ﺳﻨﺴﺘﺨﺪﻡ‬ ‫ﺃﻧﻨﺎ‬ ‫ﻛﻤﺎ‬ Return‫ﺗﻨﻔﻴﺬﻫﺎ‬ ‫ﺍﻟﻤﻄﻠﻮﺏ‬ ‫ﺍﻟﻌﻤﻠﻴﺔ‬ ‫ﻣﻦ‬ ‫ﺍﻟﻨﺎﺗﺠﺔ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﻹﺭﺟﺎﻉ‬^_^ ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 39. ARROW FUNCTION => ‫ﻣﺜﺎﻝ‬3:‫ﺍﻝ‬ ‫ﺗﻨﻔﻴﺬ‬ ‫ﻧﺎﺗﺞ‬Arrow Function‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬ ‫ﻳﻜﻮﻥ‬obj‫ﻣﻦ‬ ‫ﻧﺎﺗﺞ‬ ‫ﺍﻝ‬function‫ﻳﻤﻜﻦ‬ ‫ﺃﻧﻨﺎ‬ ‫ﻭﻫﻲ‬ ،‫ﺟﻤﻴﻠﺔ‬ ‫ﺃﺧﺮﻯ‬ ‫ﻣﻴﺰﺓ‬ ‫ﻟﻨﺎ‬ ‫ﻳﺘﻴﺢ‬ ‫ﻭﻫﺬﺍ‬ ،‫ﺍﻹﻋﺘﻴﺎﺩﻱ‬ ‫ﻛﺄﻧﻬﺎ‬ ‫ﺍﻟﺮﺍﺟﻌﺔ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﻧﺴﺘﺨﺪﻡ‬ ‫ﺃﻥ‬regular JavaScript function object ‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬ ‫ﻟﻠﺘﻌﺎﻣﻞ‬ ‫ﻣﻔﻴﺪ‬ ‫ﻭﻫﺬﺍ‬callback function..‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬: ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 40. ARROW FUNCTION => ‫ﻣﺜﺎﻝ‬4:‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻓﻲ‬ ‫ﺍﻵﻥ‬2‫ﺍﻝ‬ ‫ﻻﺳﺘﺨﺪﺍﻡ‬ ‫ﻳﻠﺰﻡ‬ ‫ﻛﺎﻥ‬statementsmultiple ‫ﺑﺎﺳﺘﻌﻤﺎﻝ‬ ‫ﻧﻘﻮﻡ‬ ‫ﺃﻥ‬{}‫ﻫﺬﻩ‬ ‫ﻟﻜﻦ‬ ،{}‫ﺇﺭﺳﺎﻝ‬ ‫ﻓﻲ‬ ‫ﺭﻏﺒﻨﺎ‬ ‫ﺣﺎﻝ‬ ‫ﻓﻲ‬ ‫ﻣﺸﻜﻠﺔ‬ ‫ﻟﻨﺎ‬ ‫ﺳﺘﺴﺒﺐ‬ literalobj...-_- ^_^‫ﻭﻣﺘﻮﻓﺮ‬ ‫ﻭﺑﺴﻴﻂ‬ ‫ﺳﻬﻞ‬ ‫ﻓﺎﻟﺤﻞ‬ ،‫ﺗﻘﻠﻖ‬ ‫ﻻ‬ ‫ﻟﻜﻦ‬:P‫ﺍﻝ‬ ‫ﺇﺣﺎﻁﺔ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﻭﻳﻜﻮﻥ‬ {}‫ﺍﻝ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬.. ()‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬: ‫ﺍﻝ‬ ‫ﺃﺭﺳﻠﺖ‬ ‫ﺃﻧﻨﻲ‬ ‫ﻫﻨﺎ‬ ‫ﻻﺣﻆ‬id ‫ﺍﻝ‬ ‫ﻳﺘﻐﻴﺮ‬ ‫ﻟﻢ‬ ‫ﻭﻟﻬﺬﺍ‬ ،‫ﻓﻘﻂ‬name ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 41. ARROW FUNCTION => ‫ﻣﺜﺎﻝ‬5:‫ﺑﻤﻜﺎﻥ‬ ‫ﺍﻷﻫﻤﻴﺔ‬ ‫ﻣﻦ‬ ‫ﻭﺍﻟﻤﺜﺎﻝ‬ ‫ﺍﻷﺧﻴﺮ‬ ‫ﻭﺍﻟﻤﺜﺎﻝ‬:P، ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 42. ARROW FUNCTION => ‫ﺍﻝ‬ ‫ﻣﻮﺿﻮﻉ‬ ‫ﻣﻦ‬ ‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ﺑﺈﺫﻥ‬ ‫ﺍﻧﺘﻬﻴﻨﺎ‬ ‫ﻧﻜﻮﻥ‬ ‫ﺑﻬﺬﺍ‬Arrow Function، ‫ﺍﻟﺴﺎﺑﻘﺔ‬ ‫ﻟﻸﻣﺜﻠﺔ‬ ‫ﺗﻄﺒﻴﻖ‬ ‫ﻟﻨﺸﺎﻫﺪ‬ ،‫ﻭﺍﻵﻥ‬: ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 44. CLASS KEYWORD ON JS ‫ﻫﻮ‬ ‫ﻭﻣﺘﻰ‬ ،‫ﻟﻜﻢ‬ ‫ﻋﺮﺿﻪ‬ ‫ﻁﺮﻳﻘﺔ‬ ‫ﻓﻲ‬ ‫ﺟﺪﺍ‬ ‫ﻣﺤﺘﺎﺭﺍ‬ ‫ﺟﻌﻠﻨﻲ‬ ‫ﺍﻟﻤﻮﺿﻮﻉ‬ ‫ﻫﺬﺍ‬ ‫ﺣﻘﻴﻘﺔ‬ ‫ﻓﻲ‬ ‫ﻭﻓﻘﻨﺎ‬ ‫ﻧﻜﻮﻥ‬ ‫ﺃﻥ‬ ‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ﻭﻧﺴﺄﻝ‬ ،‫ﺍﻟﻤﻮﺿﻮﻉ‬ ‫ﻫﺬﺍ‬ ‫ﻟﺸﺮﺡ‬ ‫ﺍﻟﻤﻨﺎﺳﺐ‬ ‫ﺍﻟﻮﻗﺖ‬ ‫ﺍﻝ‬ ‫ﻟﻌﺮﺽ‬ ‫ﺍﻟﺘﻮﻗﻴﺖ‬ ‫ﻫﺬﺍ‬ ‫ﺍﺧﺘﻴﺎﺭ‬Class Keyword‫ﻧﻮﻓﻖ‬ ‫ﺃﻥ‬ ‫ﻭﻧﺴﺄﻟﻪ‬ ،‫ﻋﻠﻴﻜﻢ‬ ‫ﺍﻟﺸﺮﺡ‬ ‫ﻓﻲ‬. ‫ﺍﻟﻤﻔﺎﻫﻴﻢ‬ ‫ﻣﻦ‬ ‫ﻣﺠﻤﻮﻋﺔ‬ ‫ﺑﺸﺮﺡ‬ ‫ﺳﺄﺑﺪﺃ‬ ‫ﺍﻧﻲ‬ ‫ﺍﻋﺘﻘﺪ‬ ‫ﺻﺤﻴﺤﺔـ‬ ‫ﺍﻟﺒﺪﺍﻳﺔ‬ ‫ﺗﻜﻮﻥ‬ ‫ﺣﺘﻰ‬ ‫ﺍﻝ‬ ‫ﻋﻦ‬ ‫ﺍﻟﺤﺪﻳﺚ‬ ‫ﻗﺒﻞ‬ ،‫ﻭﺍﻟﻤﻬﻤﺔ‬ ‫ﺍﻷﺳﺎﺳﻴﺔ‬Class‫ﺍﻝ‬ ‫ﺍﻟﺤﺪﻳﺚ‬ ‫ﻭﺳﻴﻜﻮﻥ‬ ، JS Object Oriented Programming^_^‫ﻓﻌﻼ‬ ‫ﻳﻮﺟﺪ‬ ‫ﻭﻫﻞ‬ ، CLASS‫؟‬ ‫ﺍﻟﻤﺨﺘﻠﻔﺔ‬ ‫ﺍﻟﺒﺮﻣﺠﺔ‬ ‫ﻟﻐﺎﺕ‬ ‫ﻓﻲ‬ ‫ﻛﻤﺎ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻓﻲ‬! ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 45. CLASS KEYWORD ON JS ‫ﺍﻝ‬ ‫ﻣﻔﻬﻮﻡ‬obj‫ﺍﻷﺧﺮﻯ‬ ‫ﺍﻟﻠﻐﺎﺕ‬ ‫ﻓﻲ‬ ‫ﺍﻟﻤﺒﺮﻣﺠﻴﻦ‬ ‫ﺑﻴﻦ‬ ‫ﺍﻟﻤﻌﺮﻭﻑ‬ ‫ﺑﺸﻜﻠﻪ‬ )‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻏﻴﺮ‬(‫ﺍﻝ‬ ‫ﻋﻦ‬ ‫ﻳﺨﺘﻠﻒ‬obj،‫ﺳﻜﺮﺑﺖ‬ ‫ﺑﺎﻟﺠﺎﻓﺎ‬ ‫ﺍﻟﻤﻮﺟﻮﺩ‬ ‫ﺍﻟﻰ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻣﻦ‬ ‫ﻳﻨﺘﻘﻞ‬ ‫ﻣﻦ‬ ‫ﻳﺘﻌﺠﺐ‬ ‫ﻛﺎﻥ‬ ‫ﻓﻤﺜﻼ‬ ،‫ﺑﺎﻟﺒﻨﺎء‬ ‫ﻫﻨﺎ‬ ‫ﺍﻟﻤﻔﺎﻫﻴﻤﻲ‬ ‫ﻭﺍﻹﺧﺘﻼﻑ‬ ‫ﻫﻮ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺑﺎﻟﺠﺎﻓﺎ‬ ‫ﻧﺴﺘﺨﺪﻣﻪ‬ ‫ﻣﺎ‬ ‫ﺃﻥ‬ ‫ﻛﻴﻒ‬ ،‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬obj‫ﺳﺆﺍﻝ‬ ‫ﻭﺃﻭﻝ‬ ، ‫ﺍﻝ‬ ‫ﺃﻳﻦ‬ ‫ﺑﺒﺎﻟﻪ‬ ‫ﻳﺨﻄﺮ‬Class‫؟‬..‫ﺍﻝ‬ ‫ﺗﻌﺮﻳﻒ‬ ‫ﻷﻥ‬obj‫ﻋﻠﻰ‬ ‫ﻳﺆﺷﺮ‬ ‫ﺃﻥ‬ ‫ﻳﻠﺰﻣﻪ‬ class!!‫ﻳﻮﺟﺪ‬ ‫ﻟﻢ‬ ‫ﺫﻛﺮ‬ ‫ﺍﻟﺬﻱ‬ ‫ﺑﺎﻟﺸﻜﻞ‬ ‫ﺍﻟﻤﻔﻬﻮﻡ‬ ‫ﻭﻫﺬﺍ‬ ،)..‫ﺍﻝ‬ ‫ﻣﻔﻬﻮﻡ‬ ‫ﻳﻮﺟﺪ‬ ‫ﻟﻢ‬ class‫ﺃﺑﺪﺍ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻓﻲ‬ ‫ﺍﻟﺸﻜﻞ‬ ‫ﺑﻬﺬﺍ‬.. (‫ﻳﻘﻮﻝ‬ ‫ﻟﺬﻟﻚ‬ Narayan Prusty‫ﻛﺘﺎﺏ‬ ‫ﻣﺆﻟﻒ‬Learning ECMAScript 6 “JavaScript never had the concept of classes, although it's an object-oriented programming language.” ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 46. CLASS KEYWORD ON JS ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﺑﻤﻔﻬﻮﻡ‬ ‫ﺍﻟﻜﻼﺱ‬ ‫ﻋﻦ‬ ‫ﻟﻠﺤﺪﻳﺚ‬ ‫ﻧﻨﺘﻘﻞ‬ ،‫ﺍﻟﺒﺴﻴﻄﺔ‬ ‫ﺍﻟﻤﻘﺪﻣﺔ‬ ‫ﻫﺬﻩ‬ ‫ﺑﻌﺪ‬ ‫ﻭﺍﻵﻥ‬ ‫ﺳﻜﺮﺑﺖ‬^_^‫ﻋﻦ‬ ‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ﺑﺈﺫﻥ‬ ‫ﻭﺳﻨﺘﺤﺪﺙ‬ ،: (1‫ﺍﻝ‬ ‫ﺇﻧﺸﺎء‬object‫ﺍﻟﺘﻘﻠﻴﺪﻳﺔ‬ ‫ﺑﺎﻟﻄﺮﻳﻘﺔ‬) .‫ﺍﻝ‬ ‫ﺳﺒﻖ‬ ‫ﻟﻤﺎ‬ ‫ﻭﺷﺮﺡ‬ ‫ﻣﺮﺍﺟﻌﺔ‬ ES6( (2‫ﺍﻝ‬ ‫ﻫﻲ‬ ‫ﻣﺎ‬classes‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻓﻲ‬ (3‫ﺍﻝ‬ ‫ﺇﻧﺸﺎء‬object‫ﺍﻝ‬ ‫ﺑﺎﺳﺘﺨﺪﺍﻡ‬classes (4‫ﺍﻟﻮﺭﺍﺛﺔ‬)inheritance in classes( ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 47. CLASS KEYWORD ON JS (1‫ﺇﻧﺸﺎء‬JS Object‫ﺍﻟﺘﻘﻠﻴﺪﻳﺔ‬ ‫ﺑﺎﻟﻄﺮﻳﻘﺔ‬: *‫ﻣﻼﺣﻈﺔ‬:‫ﺍﻝ‬ ‫ﻟﻔﻬﻢ‬ ‫ﻣﻬﻤﺔ‬ ‫ﺍﻟﻤﺮﺍﺟﻌﺔ‬ ‫ﻫﺬﻩ‬js object‫ﻣﺘﺎﺑﻌﺔ‬ ‫ﻭﻟﺘﺴﺘﻄﻴﻊ‬ ‫ﺍﻟﻘﺎﺩﻣﺔ‬ ‫ﺍﻟﺸﺮﺍﺋﺢ‬... ‫ﺃﻱ‬ ‫ﻹﻧﺸﺎء‬Object)‫ﺍﻟﺘﻘﻠﻴﺪﻳﺔ‬ ‫ﺑﺎﻟﻄﺮﻳﻘﺔ‬(‫ﻟﺬﻟﻚ‬ ‫ﺇﺳﻠﻮﺑﻴﻦ‬ ‫ﻫﻨﺎﻙ‬: 1(object literal:‫ﻹﻧﺸﺎء‬ ‫ﺍﻟﻄﺮﻳﻘﺔ‬ ‫ﻫﺬﻩ‬ ‫ﻭﺗﺴﺘﺨﺪﻡ‬object‫ﺛﺎﺑﺖ‬ )fixed... (‫ﻣﺜﻞ‬: var person = {fname:“anees", mname:“hikmat”} 2(constructor:‫ﻹﻧﺸﺎء‬ ‫ﺍﻟﻄﺮﻳﻘﺔ‬ ‫ﻫﺬﻩ‬ ‫ﻭﺗﺴﺘﺨﺪﻡ‬object Dynamically‫ﺍﻝ‬ ‫ﺃﺛﻨﺎء‬runtime‫ﻟﻠﻌﻤﻞ‬ ‫ﺍﻟﻔﻌﺎﻟﺔ‬ ‫ﺍﻟﻄﺮﻳﻘﺔ‬ ‫ﻭﻫﻲ‬ Dynamic^_^ ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 48. CLASS KEYWORD ON JS ‫ﺍﻵﺗﻲ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬: ‫ﺍﻝ‬ ‫ﻟﺪﻳﻨﺎ‬object literal‫ﺍﻟﻤﺴﻤﻰ‬Employee‫ﺍﻝ‬ ‫ﻫﺬﺍ‬ ‫ﺃﻥ‬ ‫ﻭﻻﺣﻆ‬ ، object‫ﻫﻨﺎﻟﻚ‬ ‫ﻛﺎﻥ‬ ‫ﻟﻮ‬ ‫ﻣﺎﺫﺍ‬ ‫ﻟﻜﻦ‬ ،‫ﺃﻧﻴﺲ‬ ‫ﻫﻮ‬ ‫ﻭﺍﺣﺪ‬ ‫ﺷﺨﺺ‬ ‫ﻳﺨﺪﻡ‬100‫ﻣﻮﻅﻒ؟‬ ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 49. CLASS KEYWORD ON JS ‫ﺇﻧﺸﺎء‬ ‫ﺍﻟﻰ‬ ‫ﻣﺜﻼ‬ ‫ﺳﻨﺤﺘﺎﺝ‬ ‫ﺑﺄﻧﻨﺎ‬ ‫ﺍﻟﺴﺎﺑﻖ‬ ‫ﺍﻷﺳﻠﻮﺏ‬ ‫ﻓﻲ‬ ‫ﺍﻟﻤﺸﻜﻠﺔ‬ ‫ﺗﻜﻤﻦ‬100obj ‫ﺍﻝ‬ ‫ﻋﺪﺩ‬ ‫ﻛﺎﻥ‬ ‫ﻟﻮ‬ ‫ﻣﺎﺫﺍ‬ ‫ﺍﺫﻥ‬ ،‫ﻳﺠﻮﺯ‬ ‫ﻻ‬ ‫ﺍﻟﻜﻼﻡ‬ ‫ﻭﻫﺬﺍ‬ ،‫ﻟﻠﻤﻮﻅﻔﻴﻦ‬employee ‫ﻣﺘﻐﻴﺮ‬^_^...‫؟‬! ‫ﺍﻝ‬ ‫ﻭﻫﻮ‬ ‫ﺍﻟﺜﺎﻧﻲ‬ ‫ﻟﻠﺸﻜﻞ‬ ‫ﺍﻟﺤﺎﺟﺔ‬ ‫ﺗﻜﻤﻦ‬ ‫ﻭﻫﻨﺎ‬constructor،‫ﺃﻭﻝ‬ ‫ﻫﻨﺎ‬ ‫ﻭﻣﻦ‬ ‫ﺍﻝ‬ ‫ﺃﻥ‬ ‫ﺗﻌﻠﻤﻬﺎ‬ ‫ﺃﻥ‬ ‫ﻳﺠﺐ‬ ‫ﻣﻌﻠﻮﻣﺔ‬constructor‫ﻫﻮ‬ ‫ﺍﻟﻮﺍﻗﻊ‬ ‫ﻓﻲ‬function ‫ﻛﻠﻤﺔ‬ ‫ﻟﻪ‬ ‫ﻣﻀﺎﻑ‬new^_^‫ﺍﻝ‬ ‫ﻫﺬﺍ‬ ‫ﻭﻳﻘﻮﻡ‬ ،constructor‫ﻭﺇﺭﺟﺎﻉ‬ ‫ﺑﺎﻧﺸﺎء‬ object_^*‫ﺍﻝ‬ ‫ﺃﻥ‬ ‫ﻛﻤﺎ‬ ،this‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬constructor‫ﺍﻝ‬ ‫ﺍﻟﻰ‬ ‫ﺗﺸﻴﺮ‬ object‫ﺍﻝ‬ ‫ﻣﻦ‬ ‫ﺍﻟﺘﻨﻔﻴﺬ‬ ‫ﺇﻧﺘﻬﺎء‬ ‫ﻳﺘﻢ‬ ‫ﻭﻋﻨﺪﻣﺎ‬ ،‫ﺑﺎﻧﺸﺎﺋﻪ‬ ‫ﻧﻘﻮﻡ‬ ‫ﺍﻟﺬﻱ‬ ‫ﺍﻟﺠﺪﻳﺪ‬ constructor‫ﺍﻝ‬ ‫ﺍﺭﺟﺎﻉ‬ ‫ﻋﻠﻰ‬ ‫ﻳﻘﻮﻡ‬object‫ﺑﺸﻜﻞ‬dynamic*_* ‫ﻭﺍﻵﻥ‬..‫ﺫﻛﺮﻧﺎﻩ‬ ‫ﻣﺎ‬ ‫ﻳﻮﺿﺢ‬ ‫ﻣﺜﺎﻻ‬ ‫ﻟﻨﺸﺎﻫﺪ‬ ،‫ﺑﺴﻴﻂ‬ ‫ﺍﻟﻜﻼﻡ‬ ‫ﻫﺬﺍ‬ ‫ﻭﺑﻌﺪ‬^_^ ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 50. CLASS KEYWORD ON JS ‫ﺍﻟﻤﺜﺎﻝ‬)‫ﺍﻟﺘﺎﻟﻴﺔ‬ ‫ﺑﺎﻟﺸﺮﻳﺤﺔ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺮﺡ‬(‫ﻣﻮﺟﻮﺩ‬ ‫ﻟﻮﻥ‬ ‫ﻟﻜﻞ‬ ‫ﺍﻧﺘﺒﻪ‬ ‫ﻟﻜﻦ‬ ،: ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 51. CLASS KEYWORD ON JS ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺮﺡ‬: ‫ﺍﻝ‬ ‫ﺃﻥ‬ ‫ﻫﻲ‬ ‫ﻣﻼﺣﻈﺔ‬ ‫ﻭﺃﻫﻢ‬ ‫ﺃﻭﻝ‬employeeName‫ﺗﻼﺣﻆ‬ ‫ﻛﻤﺎ‬function ‫ﺟﻌﻠﻪ‬ ‫ﻣﺎ‬ ‫ﻟﻜﻦ‬ ،‫ﻁﺒﻴﻌﻲ‬constructor‫ﻭﺟﻮﺩ‬ ‫ﻫﻮ‬ new employeeName‫ﺍﻝ‬ ‫ﺗﻌﺮﻳﻒ‬ ‫ﻋﻨﺪ‬object،‫ﺃﻳﻀﺎ‬ ‫ﺗﻼﺣﻆ‬ ‫ﻭﻛﻤﺎ‬ ، ‫ﺍﻝ‬ ‫ﻓﺈﻥ‬prototype،‫ﺍﻟﺨﺼﺎﺋﺺ‬ ‫ﺃﻭ‬ ‫ﺍﻟﺪﻭﺍﻝ‬ ‫ﻣﻦ‬ ‫ﺃﻱ‬ ‫ﻹﺿﺎﻓﺔ‬ ‫ﺍﺳﺘﺨﺪﻣﺖ‬ ‫ﺍﻝ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﻳﺘﻢ‬ ‫ﺍﻟﺪﺍﻟﺔ‬ ‫ﻟﻬﺬﻩ‬ ‫ﺍﻟﻮﺻﻮﻝ‬ ‫ﻭﻛﺎﻥ‬ ،‫ﺍﻹﺳﻢ‬ ‫ﻁﺒﺎﻋﺔ‬ ‫ﺩﺍﻟﺔ‬ ‫ﺃﺿﻔﻨﺎ‬ ‫ﻭﺑﻤﺜﺎﻟﻨﺎ‬ Object‫ﺑﺈﻧﺸﺎﺋﻪ‬ ‫ﻗﻤﻨﺎ‬ ‫ﺍﻟﺬﻱ‬... ‫ﺑﻤﻔﺎﺟﺄﺓ‬ ‫ﺳﺄﺧﺒﺮﻛﻢ‬ ‫ﻭﺍﻵﻥ‬^_^:P‫ﺃﻱ‬ ‫ﺃﻥ‬ ‫ﺗﺨﻴﻞ‬ ،Object Letiral‫ﻓﻲ‬ ‫ﻫﻮ‬ ‫ﺍﻟﻮﺍﻗﻊ‬constructor!!،‫ﻧﻌﻢ‬ ،constructor‫ﺍﻝ‬ ‫ﻟﻜﻦ‬pointer ‫ﻋﻠﻰ‬ ‫ﻳﺆﺷﺮ‬ ‫ﺑﻪ‬ ‫ﺍﻟﺨﺎﺹ‬Global Constructor Object^^ ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 52. CLASS KEYWORD ON JS ‫ﺳﻜﺮﺑﺖ‬ ‫ﺑﺎﻟﺠﺎﻓﺎ‬ ‫ﺍﻟﻮﺭﺍﺛﺔ‬ ‫ﻣﻔﻬﻮﻡ‬ ‫ﺍﻟﻰ‬ ‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ﺑﺈﺫﻥ‬ ‫ﺳﻨﺘﻄﺮﻕ‬ ،‫ﻭﺍﻵﻥ‬ )Understanding inheritance(‫ﺃﻥ‬ ‫ﻫﻮ‬ ‫ﻣﻌﺮﻓﺘﻪ‬ ‫ﻣﻨﻚ‬ ‫ﺃﺭﻳﺪ‬ ‫ﻣﺎ‬ ‫ﻭﺃﻭﻝ‬ ، ‫ﺍﻝ‬ ‫ﺟﻤﻴﻊ‬object‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬ ‫ﺍﻟﻤﻮﺟﻮﺩﺓ‬js‫ﻟﺪﻳﻬﺎ‬“‫ﺧﺎﺻﻴﺔ‬property“‫ﺗﺴﻤﻰ‬ prototype‫ﺍﻟﺨﺎﺻﻴﺔ‬ ‫ﻫﺬﻩ‬ ‫ﺗﻘﻮﻡ‬ ،“property”‫ﻋﻠﻰ‬ ‫ﺑﺎﻟﺘﺄﺷﻴﺮ‬object ‫ﻳﺪﻋﻰ‬ ‫ﺁﺧﺮ‬prototype)‫ﺍﻟﺴﺎﺑﻖ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻓﻲ‬ ‫ﺷﺎﻫﺪﻧﺎ‬ ‫ﻛﻤﺎ‬.. ( ‫ﺍﻝ‬ ‫ﻫﺬﺍ‬ ‫ﺍﻵﻥ‬prototype object‫ﺃﻳﻀﺎ‬ ‫ﻳﻤﻠﻚ‬ ‫ﺑﺬﺍﺗﻪ‬ ‫ﻫﻮ‬ ‫ﺍﻟﻴﻪ‬ ‫ﻭﺻﻠﻨﺎ‬ ‫ﺍﻟﺬﻱ‬ Prototype‫ﻭﺍﻝ‬ ،null‫ﺍﻝ‬ ‫ﻓﻲ‬ ‫ﺗﻌﻨﻲ‬prototype‫ﻭﺟﻮﺩﻩ‬ ‫ﻋﺪﻡ‬ )‫ﻭﺟﻮﺩ‬ ‫ﻋﺪﻡ‬–‫ﻟﻞ‬ ‫ﻗﻴﻤﺔ‬ ‫ﺍﺳﻨﺎﺩ‬prototype.. (‫ﻧﺼﻞ‬ ‫ﻋﻨﺪﻣﺎ‬ ،‫ﺍﻟﻮﺍﻗﻊ‬ ‫ﻭﻓﻲ‬ ‫ﺍﻝ‬ ‫ﻗﻴﻤﺔ‬ ‫ﺃﻥ‬ ‫ﻓﻴﻬﺎ‬ ‫ﻧﺠﺪ‬ ‫ﻟﻤﺮﺣﺔ‬prototype‫ﺗﺴﺎﻭﻱ‬null‫ﺃﻧﻨﺎ‬ ‫ﻳﻌﻨﻲ‬ ‫ﻓﻬﺬﺍ‬ ‫ﺍﻟﺤﻠﻘﺔ‬ ‫ﻧﻬﺎﻳﺔ‬ ‫ﺍﻟﻰ‬ ‫ﻭﺻﻠﻨﺎ‬^_^..‫؟‬ ‫ﺍﻧﺘﻬﺖ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﺤﻠﻘﺔ‬ ‫ﻫﺬﻩ‬ ‫ﻫﻲ‬ ‫ﻣﺎ‬ ‫ﻟﻜﻦ‬ ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 53. CLASS KEYWORD ON JS ‫ﺳﻜﺮﺑﺖ‬ ‫ﺑﺎﻟﺠﺎﻓﺎ‬ ‫ﺍﻟﻮﺭﺍﺛﺔ‬ ‫ﻣﻔﻬﻮﻡ‬ ‫ﻫﻲ‬ ‫ﻋﻨﻬﺎ‬ ‫ﻭﺳﻨﺘﺤﺪﺙ‬ ‫ﺍﻧﺘﻬﺖ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﺤﻠﻘﺔ‬ ‫ﺇﻥ‬) ‫ﻟﻢ‬ ،‫ﺍﻹﺻﺪﺍﺭ‬ ‫ﻫﺬﺍ‬ ‫ﺗﺴﺒﻖ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻣﻔﺎﻫﻴﻢ‬ ‫ﻋﻦ‬ ‫ﻧﺘﺤﺪﺙ‬ ‫ﺃﻧﻨﺎ‬ ‫ﻻﺣﻆ‬ ‫ﺑﻌﺪ‬ ‫ﺍﻟﺠﺪﻳﺪ‬ ‫ﻋﻦ‬ ‫ﻧﺘﺤﺪﺙ‬“‫ﻛﻤﻔﺎﻫﻴﻢ‬”‫ﻣﻌﺎ‬ ‫ﻛﻠﻴﻬﻤﺎ‬ ‫ﻋﻦ‬ ‫ﻧﺘﺤﺪﺙ‬ ‫ﻓﻘﺪ‬ ‫ﻭﺧﺼﺎﺋﺺ‬ ‫ﻛﺪﻭﺍﻝ‬ ‫ﺃﻣﺎ‬ ،( ‫ﻫﻲ‬ ‫ﺍﻟﺤﻠﻘﺔ‬:‫ﺍﻟﻰ‬ ‫ﺍﻟﻮﺻﻮﻝ‬ ‫ﻧﺤﺎﻭﻝ‬ ‫ﻋﻨﺪﻣﺎ‬property‫ﺩﺍﺧﻞ‬object‫ﻭﻛﺎﻧﺖ‬ ، ‫ﻫﺬﻩ‬property‫ﺍﻝ‬ ‫ﻫﺬﺍ‬ ‫ﺑﺪﺍﺧﻞ‬ ‫ﻣﻮﺟﻮﺩﺓ‬ ‫ﻏﻴﺮ‬object‫ﺍﻝ‬ ‫ﺳﻴﻘﻮﻡ‬ ، property‫ﺍﻝ‬ ‫ﻋﻦ‬ ‫ﺑﺎﻟﺒﺤﺚ‬property‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬prototype‫ﻟﻢ‬ ‫ﺇﺫﺍ‬ ، ‫ﺍﻝ‬ ‫ﻫﺬﻩ‬ ‫ﺃﻳﻀﺎ‬ ‫ﻳﺠﺪ‬property‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬prototype‫ﺩﺍﺧﻞ‬ ‫ﺑﺎﻟﺒﺤﺚ‬ ‫ﺳﻴﻘﻮﻡ‬ ، ‫ﺍﻝ‬prototype‫ﺑﺎﻝ‬ ‫ﺍﻟﺨﺎﺹ‬prototype object‫ﺍﻟﺴﻠﺴﻠﺔ‬ ‫ﺗﺘﻢ‬ ‫ﻭﻫﻜﺬﺍ‬ ، ‫ﺍﻝ‬ ‫ﻧﺘﻴﺠﺔ‬ ‫ﻛﺎﻧﺖ‬ ‫ﻁﺎﻟﻤﺎ‬prototype‫ﺗﺴﺎﻭﻱ‬null‫ﻓﻲ‬ ‫ﺍﻟﻮﺭﺍﺛﺔ‬ ‫ﻣﺒﺪﺃ‬ ‫ﻫﻮ‬ ‫ﻭﻫﺬﺍ‬ ، ‫ﺃﺭﻳﺪ‬ ‫ﻣﺎ‬ ‫ﺃﺟﺪ‬ ‫ﺣﺘﻰ‬ ‫ﺍﻟﺨﺼﺎﺋﺺ‬ ‫ﺑﻮﺭﺍﺛﺔ‬ ‫ﺃﺳﺘﻤﺮ‬ ‫ﺗﻼﺣﻆ‬ ‫ﻛﻤﺎ‬ ،‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﺃﻭﺃﻧﺘﻬﻲ‬^_^ ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 54. CLASS KEYWORD ON JS ‫ﻣﻬﻤﺔ‬ ‫ﻣﻼﺣﻈﺔ‬:‫ﺍﻝ‬JS Object‫ﻳﻤﻠﻚ‬ ‫ﺃﻥ‬ ‫ﺑﺈﻣﻜﺎﻧﻪ‬prototype،‫ﻓﻘﻂ‬ ‫ﻭﺍﺣﺪ‬ ‫ﻓﻘﻂ‬ ‫ﺍﻷﺣﺎﺩﻳﺔ‬ ‫ﺍﻟﻮﺭﺍﺛﺔ‬ ‫ﺗﺪﻋﻢ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﻭﺍﻟﺠﺎﻓﺎ‬)single inheritance( ‫ﺍﻟﺨﺎﺻﻴﺔ‬ ‫ﺇﺳﺘﺨﺪﺍﻡ‬ ‫ﻳﻤﻜﻨﻨﺎ‬__proto__‫ﺍﻟﺪﺍﻟﺔ‬ ‫ﺃﻭ‬ Object.setPrototypeOf()‫ﺍﻝ‬ ‫ﻹﺳﻨﺎﺩ‬prototype‫ﺍﻝ‬ ‫ﺍﻟﻰ‬obj ‫ﺍﻝ‬ ‫ﺗﺪﻋﻢ‬ ‫ﻛﻤﺎ‬js‫ﺍﻟﺪﺍﻟﺔ‬Object.create()‫ﻹﻧﺸﺎء‬new object‫ﻳﺤﺘﻮﻱ‬ prototype‫ﺑﺘﺤﺪﻳﺪﻩ‬ ‫ﻧﺤﻦ‬ ‫ﻗﻤﻨﺎ‬ ‫ﻣﻌﻴﻦ‬... ‫ﻭﺍﻵﻥ‬..‫ﷲ‬ ‫ﺑﺈﺫﻥ‬ ‫ﺍﻵﻥ‬ ‫ﺳﺘﺘﻀﺢ‬ ‫ﻟﻜﻨﻬﺎ‬ ،‫ﻣﺎ‬ ‫ﻧﻮﻋﺎ‬ ‫ﺿﺒﺎﺑﻴﺔ‬ ‫ﺗﻜﻮﻥ‬ ‫ﻗﺪ‬ ‫ﺍﻟﻔﻜﺮﺓ‬ ‫ﺃﻥ‬ ‫ﺃﻋﻠﻢ‬ ‫ﺑﺎﻟﺸﺮﺡ‬ ‫ﺍﻟﺨﺎﺻﺔ‬ ‫ﻭﺍﻟﺼﻮﺭﺓ‬ ،‫ﺍﻟﺘﺎﻟﻴﺔ‬ ‫ﺍﻟﺸﺮﻳﺤﺔ‬ ‫ﻓﻲ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻋﻠﻰ‬ ‫ﺍﻹﻁﻼﻉ‬ ‫ﺑﻌﺪ‬ ‫ﺗﻌﺎﻟﻰ‬ ‫ﺍﻟﺘﺎﻟﻴﺔ‬ ‫ﺑﻌﺪ‬ ‫ﺍﻟﺸﺮﻳﺤﺔ‬ ‫ﻓﻲ‬... ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 55. CLASS KEYWORD ON JS ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬: __proto__‫ﺧﺎﺻﻴﺔ‬deprecated‫ﻓﻲ‬ ‫ﻣﺪﻋﻮﻣﺔ‬ ‫ﻣﺎﺯﺍﻟﺖ‬ ‫ﻟﻜﻨﻬﺎ‬ ، ‫ﺑﺎﻷﺩﺍء‬ ‫ﺗﻬﺘﻢ‬ ‫ﻛﺎﻧﺖ‬ ‫ﺇﺫﺍ‬ ‫ﺧﺼﻮﺻﺎ‬ ،‫ﺑﺎﺳﺘﺨﺪﺍﻣﻬﺎ‬ ‫ﻳﻨﺼﺢ‬ ‫ﻻ‬ ‫ﻟﻜﻦ‬ ،‫ﺍﻟﻤﺘﺼﺤﻔﺎﺕ‬^_^ ‫ﺍﻝ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻭﺑﺈﻣﻜﺎﻧﻚ‬create()‫ﻣﻨﻬﺎ‬ ‫ﺑﺪﻻ‬^_^... ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 56. CLASS KEYWORD ON JS ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com ‫ﺍﻝ‬ ‫ﻓﻜﺮﺓ‬ ‫ﺷﺎﻫﺪ‬ ،‫ﻭﺍﻵﻥ‬inheritance‫ﺑﺒﺎﻟﻲ‬ ‫ﺗﻜﻦ‬ ‫ﻟﻢ‬ ‫ﻭﺣﻘﻴﻘﺔ‬ ،‫ﻋﻨﻬﺎ‬ ‫ﺗﺤﺪﺛﻨﺎ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﻤﻮﺿﻮﻉ‬ ‫ﻫﺬﺍ‬ ‫ﻓﻲ‬ ‫ﺍﻟﺒﺤﺚ‬ ‫ﺃﺛﻨﺎء‬ ‫ﻓﻲ‬ ‫ﻣﺼﺎﺩﻓﺔ‬ ‫ﻭﺟﺪﺗﻬﺎ‬ ‫ﺣﺘﻰ‬ ‫ﺍﻟﺼﻮﺭﺓ‬ ‫ﻫﺬﻩ‬^_^
  • 57. CLASS KEYWORD ON JS ‫ﻣﺜﺎﻝ‬2:‫ﺍﻟﻮﺭﺍﺛﺔ‬ ‫ﻣﺒﺪﺃ‬ ‫ﻋﻠﻰ‬ ‫ﻋﻤﻠﻴﺔ‬ ‫ﻓﻜﺮﺓ‬ ‫ﻳﻮﺿﺢ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻫﺬﺍ‬: ‫ﻓﻲ‬ ‫ﺗﻜﻤﻦ‬ ‫ﺍﻟﻔﻜﺮﺓ‬ ‫ﺃﻥ‬ ‫ﻻﺣﻆ‬ ‫ﺍﻝ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬school‫ﻣﻦ‬ ‫ﺍﻝ‬ ‫ﺧﻼﻝ‬student، ‫ﺑﺎﻟﻨﻬﺎﻳﺔ‬ ‫ﺃﻧﻨﻲ‬ ‫ﻛﻴﻒ‬ ‫ﻭﻻﺣﻆ‬ ‫ﺍﻝ‬ ‫ﺍﺳﺘﺨﺪﻣﺖ‬student ‫ﻣﻦ‬ ‫ﻛﻞ‬ ‫ﻟﻄﺒﺎﻋﺔ‬ ‫ﺃﻭﺑﺠﻴﻜﺖ‬ ‫ﺍﻟﻤﺪﺭﺳﺔ‬ ‫ﻭﺍﺳﻢ‬ ‫ﺍﻟﻄﺎﻟﺐ‬ ‫ﺍﺳﻢ‬ ‫ﺍﻝ‬ ‫ﻣﻦ‬)School.. ( ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 58. ِ‫ﻪ‬‫ﻴ‬َ‫ﻠ‬َ‫ﻋ‬ ُ ‫ﱠ‬‫ﷲ‬ ‫ﻰ‬‫ﱠ‬‫ﻠ‬َ‫ﺻ‬ ِ ‫ﱠ‬‫ﷲ‬ ‫ﻮﻝ‬ُ‫ﺳ‬َ‫ﺭ‬ ‫ﺃﻥ‬ ُ‫ﻪ‬‫ﻨ‬َ‫ﻋ‬ ُ ‫ﱠ‬‫ﷲ‬ َ‫ﻲ‬ِ‫ﺿ‬َ‫ﺭ‬ ‫ﻨﻴﻒ‬ُ‫ﺣ‬ ‫ﺑﻦ‬ ‫ﺳﻬﻞ‬ ‫ﻭﻋﻦ‬ ‫ﻗﺎﻝ‬ ‫ﻢ‬‫ﱠ‬‫ﻠ‬َ‫ﺳ‬َ‫ﻭ‬: ‫ﺭﻭﺍﻩ‬‫ﻣﺴﻠﻢ‬
  • 59. CLASS KEYWORD ON JS ‫ﺍﻝ‬ ‫ﺍﻟﻰ‬ ‫ﻣﻌﺎ‬ ‫ﻧﺄﺗﻲ‬ ،‫ﻭﺍﻵﻥ‬CLASS‫ﺍﻟﻴﻬﺎ‬ ‫ﻭﺻﻠﻨﺎ‬ ‫ﺣﺘﻰ‬ ‫ﺍﻧﺘﻈﺎﺭﻧﺎ‬ ‫ﻁﺎﻝ‬ ‫ﺍﻟﺘﻲ‬^_^ ‫ﺍﻝ‬ ‫ﺃﻥ‬ ‫ﻛﻴﻒ‬ ،‫ﺍﻟﺴﺎﺑﻘﺔ‬ ‫ﺑﺎﻟﺸﺮﺍﺋﺢ‬ ‫ﺷﺎﻫﺪﻧﺎ‬js object model‫ﺃﻣﺮﻳﻦ‬ ‫ﻋﻠﻰ‬ ‫ﻳﻌﺘﻤﺪ‬ ‫ﺍﻝ‬ ‫ﻭﻫﻤﺎ‬ ‫ﺭﺋﻴﺴﻴﻴﻦ‬constructors‫ﻭﺍﻝ‬prototype‫ﻓﻲ‬ ‫ﻟﻪ‬ ‫ﺗﻄﺮﻗﻨﺎ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻝ‬ ‫ﻟﻜﺘﺎﺑﺔ‬ ‫ﺟﺪﻳﺪﺓ‬ ‫ﻭﺳﻴﻠﺔ‬ ‫ﻋﻦ‬ ‫ﺳﻨﺘﺤﺪﺙ‬ ،‫ﻭﺍﻵﻥ‬ ،‫ﺍﻟﻮﺭﺍﺛﺔ‬ ‫ﻣﻮﺿﻮﻉ‬syntax ‫ﺑﺎﻝ‬ ‫ﺍﻟﺨﺎﺹ‬js object model‫ﻗﻠﺖ‬ ‫ﺃﻧﻨﻲ‬ ‫ﻭﻻﺣﻆ‬ ،)‫ﺟﺪﻳﺪﺓ‬ ‫ﻭﺳﻴﻠﺔ‬(‫ﻓﺎﻝ‬ ، classes‫ﻟﻞ‬ ‫ﺟﺪﻳﺪ‬ ‫ﻣﻔﻬﻮﻡ‬ ‫ﺑﺈﻧﺸﺎء‬ ‫ﺗﻘﻮﻡ‬ ‫ﻻ‬js object model_^*‫ﻭﻫﺬﺍ‬ ، ‫ﺍﻝ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﺑﺎﺳﺘﺨﺪﺍﻣﻪ‬ ‫ﺳﻨﻘﻮﻡ‬ ‫ﻭﺍﻟﺬﻱ‬ ‫ﺍﻷﺳﻠﻮﺏ‬Class‫ﺗﺄﻛﻴﺪ‬ ‫ﺑﻜﻞ‬ ‫ﻣﻦ‬ ‫ﺳﻴﻜﻮﻥ‬ ، ‫ﺍﻝ‬ ‫ﺧﺼﺎﺋﺺ‬ ‫ﻣﻦ‬ES6‫ﺍﻟﺠﺪﻳﺪﺓ‬^_^‫ﺭﺅﻳﺔ‬ ‫ﻫﻮ‬ ‫ﺍﻷﺳﻠﻮﺏ‬ ‫ﻫﺬﺍ‬ ‫ﻳﻘﺪﻣﻪ‬ ‫ﻣﺎ‬ ‫ﻭﺃﻫﻢ‬ ، ‫ﻭﺍﻟﺘﺘﺒﻊ‬ ‫ﻟﻠﻔﻬﻢ‬ ‫ﻭﺃﻭﺿﺢ‬ ‫ﻭﻣﺮﻭﻧﺔ‬ ‫ﺳﻬﻮﻟﺔ‬ ‫ﺫﺍﺕ‬ ‫ﺍﻟﺒﺮﻣﺠﻴﺔ‬ ‫ﻟﻠﺸﻴﻔﺮﺓ‬ ‫ﺗﺮﻛﻴﺒﻴﺔ‬ ‫ﺑﻨﻴﺔ‬.. ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 60. CLASS KEYWORD ON JS ‫ﻣﻼﺣﻈﺔ‬:‫ﺍﻝ‬class‫ﻫﻮ‬ ‫ﺍﻟﻮﺍﻗﻊ‬ ‫ﻓﻲ‬function‫؟‬!‫ﺫﻭ‬ ‫ﻟﻜﻨﻪ‬ ،syntax‫ﺟﺪﻳﺪ‬ ‫ﺍﻝ‬ ‫ﻹﻧﺸﺎء‬Function‫ﺍﻝ‬ ‫ﻳﺴﺘﺨﺪﻡ‬ ‫ﺍﻟﺬﻱ‬constructors‫ﺗﻘﻢ‬ ‫ﻻ‬ ‫ﻟﺬﻟﻚ‬ ، ‫ﺑﺎﻧﺸﺎء‬Class‫ﺍﻝ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻓﻲ‬ ‫ﺗﻔﻜﺮ‬ ‫ﻻ‬ ‫ﻛﻨﺖ‬ ‫ﺇﺫﺍ‬constructing objects ‫ﺍﻝ‬ ‫ﻟﺘﻌﺮﻳﻒ‬ ‫ﺇﺛﻨﺘﻴﻦ‬ ‫ﻁﺮﻳﻘﺘﻴﻦ‬ ‫ﻫﻨﺎﻙ‬Classً‫ﻭﻫﻦ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻓﻲ‬: (1class declaration (2class expression ‫ﺑﺎﻝ‬ ‫ﺍﻵﻥ‬ ‫ﻭﻟﻨﺒﺪﺃ‬class declaration_^* ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 61. CLASS KEYWORD ON JS 1(The class declaration:‫ﻟﺘﻌﺮﻳﻒ‬Class‫ﺍﻟﻄﺮﻳﻘﺔ‬ ‫ﻫﺬﻩ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ )Class Declaration(‫ﺍﻟﻤﺤﺠﻮﺯﺓ‬ ‫ﺍﻟﻜﻠﻤﺔ‬ ‫ﺑﺎﺳﺘﺨﺪﺍﻡ‬ ‫ﺍﻟﻘﻴﺎﻡ‬ ‫ﻳﻠﺰﻣﻚ‬ “ class “‫ﺛﻢ‬ ‫ﻭﻣﻦ‬“‫ﺍﻟﻜﻼﺱ‬ ‫ﺍﺳﻢ‬“....‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬: ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 62. CLASS KEYWORD ON JS 2(The class expression:‫ﻟﻜﻦ‬ ،‫ﺍﻷﻭﻝ‬ ‫ﺑﺎﻷﺳﻠﻮﺏ‬ ‫ﺷﺒﻴﻪ‬ ‫ﺍﻷﺳﻠﻮﺏ‬ ‫ﻫﺬﺍ‬ ‫ﺍﻟﻜﻼﺱ‬ ‫ﺍﺳﻢ‬ ‫ﻛﺘﺎﺑﺔ‬ ‫ﺍﻟﻰ‬ ‫ﺗﺤﺘﺎﺝ‬ ‫ﻟﻦ‬ ‫ﻫﻨﺎ‬...‫ﺍﻝ‬ ‫ﻛﺘﺎﺑﺔ‬ ‫ﻁﺮﻳﻘﺔ‬ ‫ﻭﺗﺒﻘﻰ‬ ،body‫ﻭﺍﻝ‬ Method‫ﺫﺍﺗﻬﺎ‬ ‫ﻫﻲ‬^_^...‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬: ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 63. CLASS KEYWORD ON JS ‫ﺍﻝ‬ ‫ﻣﻮﺿﻮﻉ‬ ‫ﺍﻟﻰ‬ ‫ﻧﻌﻮﺩ‬ ،‫ﻭﺍﻵﻥ‬Prototype‫ﻣﺠﺪﺩﺍ‬^_^..‫ﺳﻬﻮﻟﺔ‬ ‫ﺷﺎﻫﺪ‬ ‫ﻟﻜﻦ‬ ‫ﺍﻵﻥ‬ ‫ﺍﻷﻣﺮ‬ ‫ﻫﺬﺍ‬^_^.. ‫ﺍﻝ‬ ‫ﺃﻥ‬ ‫ﻫﻮ‬ ‫ﺍﻵﻥ‬ ‫ﻣﻌﺮﻓﺘﻪ‬ ‫ﻣﻨﻚ‬ ‫ﺃﺭﻳﺪ‬ ‫ﻣﺎ‬prototype methods‫ﺃﻱ‬ ‫ﻫﻲ‬ Method‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬ ‫ﻭﺿﻌﻬﺎ‬ ‫ﻳﺘﻢ‬Class Body^_^...‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬: ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 64. CLASS KEYWORD ON JS The Set & Get Method:‫ﻣﻦ‬ ‫ﻳﻤﻜﻨﻨﺎ‬ ‫ﺩﻭﺍﻝ‬ ‫ﻹﻧﺸﺎء‬ ‫ﺍﻟﺪﻭﺍﻝ‬ ‫ﻫﺬﻩ‬ ‫ﺗﺴﺘﺨﺪﻡ‬ ‫ﺍﻝ‬ ‫ﻧﻄﺎﻕ‬ ‫ﺿﻤﻦ‬ ‫ﺗﺴﺘﺨﺪﻡ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﻘﻴﻢ‬ ‫ﺍﻟﻰ‬ ‫ﺍﻟﻮﺻﻮﻝ‬ ‫ﺧﻼﻟﻬﺎ‬class‫ﻗﻴﻤﺘﻬﺎ‬ ‫ﺗﻐﻴﻴﺮ‬ ‫ﺃﻭ‬ ‫ﺍﻝ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﺍﺳﻨﺎﺩﻫﺎ‬ ‫ﺗﻢ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺃﻭ‬ ‫ﺍﻟﺤﺎﻟﻴﺔ‬constructor..‫ﺳﻬﻞ‬ ‫ﺍﻟﻤﻮﺿﻮﻉ‬ ‫ﺍﻝ‬ ‫ﻋﻦ‬ ‫ﻳﺨﺘﻠﻒ‬ ‫ﻭﻟﻢ‬ES5‫ﺍﻝ‬ ‫ﻓﻲ‬ ‫ﺍﻟﻤﺮﺓ‬ ‫ﻫﺬﻩ‬ ‫ﺳﻨﺴﺘﺨﺪﻣﻬﺎ‬ ‫ﺃﻧﻨﺎ‬ ‫ﺳﻮﻯ‬ ،class^^ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬)‫ﺍﻟﺘﺎﻟﻴﺔ‬ ‫ﺍﻟﺸﺮﻳﺤﺔ‬ ‫ﻓﻲ‬:(‫ﻻﺳﺘﻌﺮﺍﺽ‬ ‫ﺍﻹﻧﺘﻘﺎﻝ‬ ‫ﻗﺒﻞ‬ ‫ﻟﻠﻨﺘﺎﺋﺞ‬ ‫ﻭﺍﻧﺘﺒﻪ‬ ‫ﺑﺎﻟﻨﺘﺎﺋﺞ‬ ‫ﺍﻟﺨﺎﺻﺔ‬ ‫ﺍﻟﺒﺮﻣﺠﻴﺔ‬ ‫ﺍﻟﺸﻴﻔﺮﺓ‬: ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 65. CLASS KEYWORD ON JS ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 66. CLASS KEYWORD ON JS Implementing inheritance in classes:‫ﻋﻦ‬ ‫ﺗﺤﺪﺛﻨﺎ‬ ‫ﻟﻘﺪ‬ ‫ﺍﻝ‬ ‫ﻟﺘﺘﺒﻊ‬ ‫ﻣﺰﻋﺠﺎ‬ ‫ﺍﻷﻣﺮ‬ ‫ﻛﺎﻥ‬ ‫ﻛﻢ‬ ‫ﺳﻮﻳﺎ‬ ‫ﻭﺷﺎﻫﺪﻧﺎ‬ ،‫ﺍﻟﻤﻮﺿﻮﻉ‬ ‫ﻫﺬﺍ‬ ‫ﻓﻲ‬ ‫ﺍﻟﻮﺭﺍﺛﺔ‬ Function‫ﺍﻵﺧﺮ‬ ‫ﻣﻨﻬﻤﺎ‬ ‫ﻛﻞ‬ ‫ﻭﻭﺭﺍﺛﺔ‬..‫ﺑﺎﻝ‬ ‫ﺗﻄﻮﺭ‬ ‫ﺍﻷﺳﻠﻮﺏ‬ ‫ﻫﺬﺍ‬ ‫ﻟﻜﻦ‬ ،‫ﺍﻟﺦ‬ ES6‫ﻭﻫﻲ‬ ‫ﻣﺤﺠﻮﺯﺓ‬ ‫ﻛﻠﻤﺔ‬ ‫ﻟﺪﻳﻨﺎ‬ ‫ﻓﺄﺻﺒﺢ‬ ،extends‫ﻟﻨﺎ‬ ‫ﻟﺘﻘﺪﻡ‬ ‫ﻭﺟﺪﺕ‬ ، ‫ﺍﻟﻮﺭﺍﺛﺔ‬ ‫ﻋﺎﻟﻢ‬ ‫ﻓﻲ‬ ‫ﺧﺪﻣﺎﺗﻬﺎ‬_^*‫ﺍﻝ‬ ‫ﻫﺬﻩ‬ ‫ﺗﺄﺗﻲ‬ ‫ﻟﻢ‬ ‫ﻟﻜﻦ‬ ،extends‫ﺑﻞ‬ ،‫ﻟﻮﺣﺪﻫﺎ‬ ‫ﺍﻟﻤﺤﺠﻮﺯﺓ‬ ‫ﺍﻟﻜﻠﻤﺔ‬ ‫ﻫﻨﺎﻙ‬ ‫ﺃﻳﻀﺎ‬super‫ﺑﺮﻣﺠﺔ‬ ‫ﻟﻐﺔ‬ ‫ﻓﻲ‬ ‫ﺧﺒﺮﺓ‬ ‫ﺃﻱ‬ ‫ﻟﺪﻳﻪ‬ ‫ﻭﺍﻟﺬﻱ‬ ، ‫ﻋﻦ‬ ‫ﺷﻲء‬ ‫ﻳﻌﻠﻢ‬ ‫ﻻ‬ ‫ﺍﻟﺬﻱ‬ ‫ﺃﻣﺎ‬ ،‫ﻭﺃﻫﻤﻴﺘﻬﺎ‬ ‫ﺍﻟﻜﻠﻤﺎﺕ‬ ‫ﻫﺬﻩ‬ ‫ﺭﻭﻋﺔ‬ ‫ﻣﺪﻯ‬ ‫ﺳﻴﻌﻠﻢ‬ ،‫ﺃﺧﺮﻯ‬ ‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ﺑﺈﺫﻥ‬ ‫ﺍﻵﻥ‬ ‫ﺭﻭﻋﺘﻬﺎ‬ ‫ﻓﺴﺘﺪﺭﻙ‬ ،‫ﺍﻟﻜﻠﻤﺎﺕ‬ ‫ﻫﺬﻩ‬^_^... ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 67. CLASS KEYWORD ON JS extends:‫ﺍﻝ‬ ‫ﺗﺴﺘﺨﺪﻡ‬extends‫ﺍﻟﺨﺼﺎﺋﺺ‬ ‫ﻟﻮﺭﺍﺛﺔ‬ OR staticnon-static‫ﺃﻱ‬ ‫ﻣﻦ‬Constructor،‫ﺁﺧﺮ‬ ‫ﺍﻝ‬ ‫ﻋﻦ‬ ‫ﺍﻟﻨﻈﺮ‬ ‫ﻭﺑﻐﺾ‬Constructor‫ﺿﻤﻦ‬ ‫ﻭﺟﺪ‬ ‫ﻫﻞ‬class keyword ‫ﺿﻤﻦ‬ ‫ﻳﻮﺟﺪ‬ ‫ﻟﻢ‬ ‫ﺃﻡ‬class‫ﺍﻟﻮﺭﺍﺛﺔ‬ ‫ﺳﺘﺘﻢ‬ ‫ﻓﺈﻧﻪ‬ ،_^* super:‫ﺍﻝ‬ ‫ﺗﺴﺘﺨﺪﻡ‬super‫ﺍﺛﻨﻴﻦ‬ ‫ﻷﻣﺮﻳﻦ‬: (1‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬ ‫ﺗﺴﺘﺨﺪﻡ‬Constructor‫ﺩﺍﺧﻞ‬ ‫ﺍﻟﻤﻮﺟﻮﺩ‬class‫ﺍﻝ‬ ‫ﻹﺳﺘﺪﻋﺎء‬ ، Parent Constructor)‫ﺍﻝ‬Constructor‫ﺑﺎﻟﻜﻼﺱ‬ ‫ﺍﻟﺨﺎﺹ‬ ‫ﻭﺭﺍﺛﺘﻪ‬ ‫ﺗﻢ‬ ‫ﺍﻟﺬﻱ‬.( (2‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬ ‫ﺗﺴﺘﺨﺪﻡ‬method‫ﺍﻝ‬ ‫ﻻﺳﺘﺪﻋﺎء‬ ،‫ﻛﻼﺱ‬ ‫ﺩﺍﺧﻞ‬ ‫ﺍﻟﻤﻮﺟﻮﺩ‬ static or non-static method‫ﺍﻝ‬ ‫ﻣﻦ‬class‫ﻭﺭﺍﺛﺘﻪ‬ ‫ﺗﻢ‬ ‫ﺍﻟﺬﻱ‬ ‫ﺍﻟﺘﺎﻟﻴﺔ‬ ‫ﺑﺎﻟﺸﺮﻳﺤﺔ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬: ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 68. CLASS KEYWORD ON JS ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 69. CLASS KEYWORD ON JS ‫ﺍﻝ‬ ‫ﻣﻮﺿﻮﻉ‬ ‫ﻣﻦ‬ ‫ﺗﻌﺎﻟﻰ‬ ‫ﷲ‬ ‫ﺑﻔﻀﻞ‬ ‫ﺍﻧﺘﻬﻴﻨﺎ‬ ‫ﻧﻜﻮﻥ‬ ‫ﻭﻫﻜﺬﺍ‬Class‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻓﻲ‬ ‫ﻫﻮ‬ ‫ﻋﻨﻪ‬ ‫ﺗﺤﺪﺛﻨﺎ‬ ‫ﻣﺎ‬ ‫ﻭﻣﻠﺨﺺ‬ ،‫ﺳﻜﺮﺑﺖ‬)‫ﻟﻺﺻﺪﺍﺭ‬ES6‫ﺍﻝ‬ ‫ﻁﺮﻳﻘﺔ‬ ‫ﻣﺜﻞ‬ ‫ﻗﺒﻞ‬ ‫ﻭﻣﺎ‬ inherit‫ﺍﻝ‬ ‫ﻗﺒﻞ‬ES6‫ﺑﺎﻝ‬ ‫ﻟﺸﺮﺣﻬﺎ‬ ‫ﺍﻟﺘﻄﺮﻕ‬ ‫ﺛﻢ‬ ‫ﻭﻣﻦ‬ES6: ( (1CLASS (2Extends (3Super (4Get & Set Method (5Object in javascript (6Prototype (7Constructor (8Inheritance ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com ‫ﻫﻨﺎ‬ ‫ﻣﻦ‬ ‫ﻭﻏﻴﺮﻫﺎ‬ ‫ﺗﻄﺒﻴﻘﻬﺎ‬ ‫ﺗﻢ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻷﻣﺜﻠﺔ‬ ‫ﺟﻤﻴﻊ‬ ‫ﺷﺎﻫﺪ‬
  • 70. ‫ﻣﻜﺎﻥ‬ ‫ﻛﻞ‬ ‫ﻓﻲ‬ ‫ﺍﻟﺤﻖ‬ ‫ﺃﻫﻞ‬ ‫ﺍﻧﺼﺮ‬ ‫ﺍﻟﻠﻬﻢ‬ ‫ﺍﺳﻤﻚ‬ ‫ﻓﻴﻪ‬ ‫ُﺬﻛﺮ‬‫ﻳ‬ ‫ﺭﺍﻳﺘﻚ‬ ‫ﻭﺭﻓﻊ‬ ‫ﻛﻠﻤﺘﻚ‬ ‫ﻹﻋﻼء‬ ‫ﻓﻴﻪ‬ ‫ُﺠﺎﻫﺪ‬‫ﻳ‬‫ﻭ‬ ‫ﻋﺒﺎﺩﻙ‬ ‫ﻣﻦ‬ ‫ﻭﺍﻟﻤﺴﺘﻀﻌﻔﻴﻦ‬ ‫ﺍﻟﺤﻖ‬ ‫ﻷﻫﻞ‬ ‫ﻓﻴﻪ‬ ‫ُﻨﺘﺼﺮ‬‫ﻳ‬‫ﻭ‬ ‫ﻣﻜﺎﻥ‬ ‫ﻛﻞ‬ ‫ﻓﻲ‬ ‫ﺍﻟﺤﻖ‬ ‫ﻷﻫﻞ‬ ‫ﻛﻦ‬ ‫ﺍﻟﻠﻬﻢ‬... ‫ﺟﻬﻠﻨﺎﻫﻢ‬ ‫ﻭﺇﻥ‬ ‫ﺍﻟﺤﻖ‬ ‫ﺃﻫﻞ‬ ‫ﺍﻧﺼﺮ‬ ‫ﺍﻟﻠﻬﻢ‬ ‫ﻭﺃﺷﻜﺎﻟﻬﻢ‬ ‫ﺃﺳﻤﺎﺅﻫﻢ‬ ‫ﻏﺮﺗﻨﺎ‬ ‫ﻭﺇﻥ‬ ‫ﺍﻟﺒﺎﻁﻞ‬ ‫ﺑﺄﻫﻞ‬ ‫ﻭﻋﻠﻴﻚ‬ ‫ﺫﻟﻚ‬ ‫ﺩﻭﻥ‬ ‫ﺗﺠﻌﻠﻨﺎ‬ ‫ﻭﻻ‬ ‫ﻟﻠﺤﻖ‬ ‫ﻧﺼﺮﺍ‬ ‫ﺍﺟﻌﻠﻨﺎ‬ ‫ﺍﻟﻠﻬﻢ‬ ‫ﺁﻣﻴﻦ‬ ‫ﺍﻟﻠﻬﻢ‬
  • 71. FOR OF LOOP ‫ﺍﻝ‬For Of Loop‫ﺍﻹﺻﺪﺍﺭ‬ ‫ﻣﻦ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﺍﻟﻰ‬ ‫ﺇﺿﺎﻓﺘﻪ‬ ‫ﺗﻢ‬ ‫ﺟﺪﻳﺪ‬ ‫ﺃﺳﻠﻮﺏ‬ ‫ﺍﻝ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻭﻳﺘﻢ‬ ،‫ﺍﻟﺴﺎﺩﺱ‬for...of‫ﺍﻟﻌﻨﺎﺻﺮ‬ ‫ﻋﻠﻰ‬ ‫ﺗﺪﻭﺭ‬ ‫ﺩﻭﺭﺍﻥ‬ ‫ﺣﻠﻘﺔ‬ ‫ﻹﻧﺸﺎء‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺟﺎﻓﺎ‬ ‫ﺩﺍﺧﻞ‬ ‫ﻣﻮﺟﻮﺩﺓ‬ ‫ﻓﺌﺔ‬ ‫ﺃﻭ‬ ‫ﻣﺠﻤﻮﻋﺔ‬ ‫ﺃﻱ‬ ‫ﻓﻲ‬ ‫ﺍﻟﻤﻮﺟﻮﺩﺓ‬)object, array, map...‫ﺍﻟﺦ‬(‫ﺑﺮﻣﺠﻴﺔ‬ ‫ﺟﻤﻠﺔ‬ ‫ﺗﻨﻔﻴﺬ‬ ‫ﻣﻦ‬ ‫ﻳﻤﻜﻨﻨﺎ‬ ‫ﺍﻷﺳﻠﻮﺏ‬ ‫ﻫﺬﺍ‬ ‫ﺃﻥ‬ ‫ﻛﻤﺎ‬ ، ‫ﺧﺼﺎﺋﺼﻪ‬ ‫ﻣﻦ‬ ‫ﺃﻱ‬ ‫ﻋﻠﻰ‬ ‫ﻟﻠﺘﻌﺪﻳﻞ‬ ‫ﺣﺪﻯ‬ ‫ﻋﻠﻰ‬ ‫ﺟﻠﺒﻪ‬ ‫ﺗﻢ‬ ‫ﻋﻨﺼﺮ‬ ‫ﻛﻞ‬ ‫ﻋﻠﻰ‬_^* )Invoking Custom Hook With Statement( ‫ﺍﻟﻌﺎﻣﺔ‬ ‫ﺍﻟﺼﻴﻐﺔ‬: ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 72. FOR OF LOOP ‫ﺍﻟﻌﺎﻣﺔ‬ ‫ﺍﻟﺼﻴﻐﺔ‬ ‫ﺷﺮﺡ‬: Variable:‫ﺍﻟﺨﺼﺎﺋﺺ‬ ‫ﻣﻦ‬ ‫ﺟﻠﺒﻬﺎ‬ ‫ﻳﺘﻢ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﻘﻴﻢ‬ ،‫ﺩﻭﺭﺍﻥ‬ ‫ﻋﻤﻠﻴﺔ‬ ‫ﻛﻞ‬ ‫ﻓﻲ‬ )property(‫ﻟﻞ‬object ‫ﺍﻝ‬Object:‫ﻋﻠﻰ‬ ‫ﻭﺍﺣﺪﺓ‬ ‫ﻛﻞ‬ ‫ﺍﻟﺪﻭﺭﺍﻥ‬ ‫ﺃﺛﻨﺎء‬ ‫ﻣﻨﻪ‬ ‫ﺍﻟﻌﻨﺎﺻﺮ‬ ‫ﺃﺧﺬ‬ ‫ﻳﺘﻢ‬ ‫ﺍﻟﺬﻱ‬ ‫ﺍﻟﻜﺎﺋﻦ‬ ‫ﺣﺪﺓ‬_^* ‫ﺍﻟﻌﺮﺑﻴﺔ‬ ‫ﺍﻟﻠﻐﺔ‬ ‫ﻓﻲ‬ ‫ﻣﻼﺣﻈﺔ‬:“‫ﺣﺪﻯ‬“‫ﺃﻭ‬“‫ﺣﺪﺍ‬“‫ﻭﺍﻟﺼﺤﻴﺢ‬ ،‫ﺧﺎﻁﺌﺔ‬ ‫ﻛﺘﺎﺑﺔ‬ ‫ﻫﻲ‬ ‫ﺍﻟﻤﺮﺑﻮﻁﺔ‬ ‫ﺑﺎﻟﺘﺎء‬ ‫ﻛﺘﺎﺑﻬﺎ‬“‫ﺣﺪﺓ‬“ ‫ﻣﻌﺠﻢ‬ ‫ﻓﻲ‬ ‫ﺟﺎء‬)‫ﺍﻟﻠﻐﺔ‬ ‫ﻣﺘﻦ‬/‫ﻭﺣﺪ‬:( »ً‫ﺓ‬َ‫ﺪ‬ِ‫ﻭﺣ‬ ً‫ﺍ‬‫ﺪ‬ْ‫ﺣ‬َ‫ﻭ‬ ُ‫ﺪ‬ِ‫ﺤ‬َ‫ﻳ‬ َ‫ﺪ‬َ‫ﺣ‬َ‫ﻭ‬:‫ﻩ‬َ‫ﺪ‬ْ‫ﺣ‬َ‫ﻭ‬ ‫ﺻﺎﺭ‬«.‫ﻓﻴﻪ‬ ‫ﻭﺟﺎء‬: »ُ‫ﺓ‬َ‫ﺪ‬ِ‫ﺍﻟﺤ‬:‫ﺓ‬َ‫ﺪ‬ِ‫ﻌ‬‫ﻛﺎﻟ‬)‫ﺪﺭ‬ْ‫ﺼ‬َ‫ﻣ‬.(‫ﺗﻘﻮﻝ‬:ُ‫ﻩ‬َ‫ﺪ‬ْ‫ﺣ‬َ‫ﻭ‬ ً‫ﺍ‬‫ﻔﺮﺩ‬ْ‫ﻨ‬ُ‫ﻣ‬ ‫ﺃﻱ‬ ،ٍ‫ﺓ‬َ‫ﺪ‬ِ‫ﺣ‬ ‫ﻋﻠﻰ‬ ‫ﻪ‬َ‫ﻠ‬َ‫ﻌ‬َ‫ﺟ‬.‫ﻭﺗﻘﻮﻝ‬:‫ﻪ‬َ‫ﻠ‬َ‫ﻌ‬َ‫ﻓ‬ ‫ﺫﺍﺕ‬ ‫ﻭﻣﻦ‬ ‫ﻪ‬ِ‫ﺴ‬ْ‫ﻔ‬َ‫ﻧ‬ ‫ﺫﺍﺕ‬ ‫ﻣﻦ‬ ‫ﺃﻱ‬ ،‫ﻪ‬ِ‫ﺗ‬َ‫ﺪ‬ِ‫ﺣ‬ ‫ﺫﻱ‬ ‫ﻭﻣﻦ‬ ‫ﻪ‬ِ‫ﺗ‬َ‫ﺪ‬ِ‫ﺣ‬ ‫ﺫﺍﺕ‬ ‫ﻭﻋﻠﻰ‬ ،ِ‫ﻪ‬ِ‫ﺗ‬َ‫ﺪ‬ِ‫ﺣ‬ ‫ﺫﺍﺕ‬ ‫ﻣﻦ‬ ‫ﺭﺃﻳﻪ‬.‫ﻭﺗﻘﻮﻝ‬:‫ﱠ‬‫ﻦ‬ِ‫ﻬ‬ِ‫ﺗ‬َ‫ﺪ‬ِ‫ﺣ‬ ‫ﻭﻋﻠﻰ‬ ،‫ﻬﻢ‬ِ‫ﺗ‬َ‫ﺪ‬ِ‫ﺣ‬ ‫ﻭﻋﻠﻰ‬ ،‫ﻬﻤﺎ‬ِ‫ﺗ‬َ‫ﺪ‬ِ‫ﺣ‬ ‫ﻭﻋﻠﻰ‬ ،‫ﻪ‬ِ‫ﺗ‬َ‫ﺪ‬ِ‫ﺣ‬ ‫ﻋﻠﻰ‬ َ‫ﺲ‬َ‫ﻠ‬َ‫ﺟ‬.« ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 73. FOR OF LOOP ‫ﺍﻝ‬ ‫ﻋﻦ‬ ‫ﺍﻟﺤﺪﻳﺚ‬ ‫ﻗﺒﻞ‬For Of‫ﻋﻠﻰ‬ ‫ﺃﻣﺜﻠﺔ‬ ‫ﻧﺸﺎﻫﺪ‬ ‫ﺩﻋﻮﻧﺎ‬For Loop‫ﻧﺴﺘﺨﺪﻣﻬﺎ‬ ‫ﻣﺜﻞ‬For In‫ﺃﻭ‬For‫ﺃﻭ‬ For each‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬: ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 74. FOR OF LOOP ،‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﺃﺳﺎﺳﻴﺎﺕ‬ ‫ﻣﻦ‬ ‫ﻓﺘﻠﻚ‬ ،‫ﺍﻟﺴﺎﺑﻖ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺮﺡ‬ ‫ﻋﻦ‬ ‫ﺃﺗﺤﺪﺙ‬ ‫ﻟﻦ‬ ،‫ﻭﺍﻵﻥ‬ ‫ﺍﻝ‬ ‫ﺃﺟﻠﻬﺎ‬ ‫ﻣﻦ‬ ‫ﺟﺎﺋﺖ‬ ‫ﺍﻟﺘﻲ‬ ‫ﻭﺍﻟﻤﺸﻜﻠﺔ‬ ،‫ﺍﻷﺳﺎﻟﻴﺐ‬ ‫ﺗﻠﻚ‬ ‫ﺳﻠﺒﻴﺎﺕ‬ ‫ﻫﻮ‬ ‫ﺳﺄﺫﻛﺮﻩ‬ ‫ﻣﺎ‬ ‫ﻟﻜﻦ‬ For OF_^* 1(For In: *‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻳﻤﻜﻨﻚ‬ ‫ﻻ‬break, continue *‫ﺟﻤﻴﻊ‬ ‫ﻋﻠﻰ‬ ‫ﺑﺎﻟﺪﻭﺭﺍﻥ‬ ‫ﺗﻘﻮﻡ‬“‫ﺍﻟﺨﺼﺎﺋﺺ‬“‫ﻟﻠﻌﺪ‬ ‫ﺍﻟﻘﺎﺑﻠﺔ‬)‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻻﺣﻆ‬ ‫ﺍﻟﺴﺎﺑﻖ‬( *‫ﻣﺎ‬ ‫ﻓﺈﻥ‬ ،‫ﺭﻗﻢ‬ ‫ﻛﺎﻥ‬ ‫ﻟﻮ‬ ‫ﻭﺣﺘﻰ‬ ،‫ﻧﺼﻲ‬ ‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬ ‫ﺍﻟﺒﻴﺎﻧﺎﺕ‬ ‫ﺍﺭﺟﺎﻉ‬ ‫ﻋﻠﻰ‬ ‫ﺗﻘﻮﻡ‬ ‫ﻫﻮ‬ ‫ﺍﺭﺟﺎﻋﻪ‬ ‫ﻳﺘﻢ‬“1”‫ﺗﺼﺒﺢ‬ ‫ﺍﻟﺠﻤﻊ‬ ‫ﻭﻋﻨﺪ‬“1”+“2”=“3”‫ﻭﻫﺬﻩ‬ ‫ﺳﻴﺌﺔ‬ ‫ﻋﻤﻠﻴﺔ‬ *،‫ﻣﺎ‬ ‫ﻟﺴﺒﺐ‬ ‫ﺍﻟﺘﻜﺮﺍﺭ‬ ‫ﻳﺰﻳﺪ‬ ‫ﻗﺪ‬ ‫ﺍﻟﻈﺮﻭﻑ‬ ‫ﺑﻌﺾ‬ ‫ﻓﻲ‬ ‫ﺃﻧﻬﺎ‬ ‫ﻣﺸﺎﻛﻠﻬﺎ‬ ‫ﺇﺣﺪﻯ‬ ‫ﻣﻦ‬ ‫ﺍﻟﺨﺎﺹ‬ ‫ﺍﻟﺘﺮﺗﻴﺐ‬ ‫ﻳﻀﻤﻦ‬ ‫ﻣﺎ‬ ‫ﻳﻮﺟﺪ‬ ‫ﻻ‬ ‫ﺃﻧﻪ‬ ‫ﻛﻤﺎ‬ ،‫ﻛﺜﻴﺮﺓ‬ ‫ﻣﺸﺎﻛﻞ‬ ‫ﻳﺴﺒﺐ‬ ‫ﻭﻫﺬﺍ‬ ‫ﺍﻟﻤﺼﻔﻮﻓﺔ‬ ‫ﺩﺍﺧﻞ‬ ‫ﺭﺗﺒﺖ‬ ‫ﻛﻤﺎ‬ ‫ﺗﻈﻬﺮ‬ ‫ﺃﻥ‬ ‫ﺑﺎﻟﻨﺘﺎﺋﺞ‬... ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 75. FOR OF LOOP 2(Foreach: *‫ﺍﻝ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻳﻤﻜﻦ‬ ‫ﻻ‬break, continue *‫ﺍﻝ‬ ‫ﻣﻊ‬ ‫ﻓﻘﻂ‬ ‫ﺍﺳﺘﺨﺪﺍﻣﻬﺎ‬ ‫ﻳﻤﻜﻦ‬Array Objects 3(Default For Loop: *‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﺍﻟﻤﺼﻔﻮﻓﺔ‬ ‫ﻋﻨﺎﺻﺮ‬ ‫ﻋﺪﺩ‬ ‫ﺑﻤﻌﺮﻓﺔ‬ ‫ﻭﺗﻠﺰﻣﻨﻲ‬ ،‫ﻣﺎ‬ ‫ﻧﻮﻋﺎ‬ ‫ﻁﻮﻳﻠﺔ‬ ‫ﺍﻟﺪﺍﻟﺔ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﺃﻭ‬ ‫ﺭﻗﻢ‬length... *‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﺍﻟﻰ‬ ‫ﻓﺴﺘﺤﺘﺎﺝ‬ ،‫ﺧﻼﻟﻬﺎ‬ ‫ﻣﻦ‬ ‫ﻣﺒﺎﺷﺮﺓ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﺍﻟﻰ‬ ‫ﺍﻟﻮﺻﻮﻝ‬ ‫ﻳﻤﻜﻦ‬ ‫ﻻ‬ ‫ﻭﺍﻝ‬ ‫ﺍﻟﻤﺼﻔﻮﻓﺔ‬index‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﻋﻠﻰ‬ ‫ﻟﻠﺤﺼﻮﻝ‬ ‫ﻓﻴﻪ‬ ‫ﺍﻟﻤﺘﻮﺍﺟﺪ‬.. ‫ﺍﻝ‬ ‫ﻓﻜﺮﺓ‬ ،‫ﺍﻵﻥ‬For Of‫ﻭﺭﺩﺕ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﻤﺸﺎﻛﻞ‬ ‫ﻫﺬﻩ‬ ‫ﺑﺤﻞ‬ ‫ﻟﺘﻘﻮﻡ‬ ‫ﺃﺗﺖ‬_^* ‫ﻣﺜﺎﻻ‬ ‫ﻟﻨﺸﺎﻫﺪ‬ ،‫ﻭﻋﻠﻴﻬﺎ‬^ _^ ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 77. FOR OF LOOP ‫ﻣﺜﺎﻝ‬2:‫ﺗﺤﺘﻮﻱ‬ ‫ﻣﺼﻔﻮﻓﺔ‬ ‫ﻋﻠﻰ‬ ‫ﺑﺎﻟﺪﻭﺭﺍﻥ‬ ‫ﺳﻨﻘﻮﻡ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻫﺬﺍ‬ ‫ﻓﻲ‬object ‫ﺍﻝ‬ ‫ﻫﺬﺍ‬ ‫ﻗﻴﻢ‬ ‫ﺍﻟﻰ‬ ‫ﺍﻟﻮﺻﻮﻝ‬ ‫ﻳﻤﻜﻨﻨﻲ‬ ‫ﻭﻛﻴﻒ‬ ،‫ﺑﺪﺍﺧﻠﻬﺎ‬object‫ﺑﺴﻬﻮﻟﺔ‬^_^ ‫ﻣﻼﺣﻈﺔ‬:‫ﺃﻥ‬ ‫ﺇﻧﺘﺒﻪ‬empInfo‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﺗﻌﺮﻳﻔﻬﺎ‬ ‫ﻳﺘﻢ‬ ‫ﻟﻢ‬ ‫ﺍﺫﺍ‬let‫ﺃﻭ‬var‫ﻗﺒﻞ‬ ‫ﺧﻄﺄ‬ ‫ﻟﻚ‬ ‫ﺳﻴﻈﻬﺮ‬ ‫ﺍﻹﺳﺘﺨﺪﺍﻡ‬ ‫ﺃﺛﻨﺎء‬ ‫ﺃﻭ‬ ‫ﺍﻹﺳﺘﺨﺪﺍﻡ‬empInfo is not defined ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 78. “0O” LITERAL ‫ﺍﻝ‬0o‫ﺍﻟﺜﻤﺎﻧﻲ‬ ‫ﺍﻟﻨﻈﺎﻡ‬ ‫ﻣﻦ‬ ‫ﺍﻷﺭﻗﺎﻡ‬ ‫ﻟﺘﻌﺮﻑ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻓﻲ‬ ‫ﺟﺪﻳﺪﺓ‬ ‫ﻁﺮﻳﻘﺔ‬ ‫ﻫﻲ‬ )octal(‫ﻣﻊ‬ ‫ﻟﻠﺘﻌﺎﻣﻞ‬ ‫ﻋﻤﻠﻬﻢ‬ ‫ﺍﻟﻤﺒﺮﻣﺠﻴﻦ‬ ‫ﻋﻠﻰ‬ ‫ﻟﻴﺴﻬﻞ‬ ‫ﺟﺎء‬ ‫ﺍﻷﺳﻠﻮﺏ‬ ‫ﻭﻫﺬﺍ‬ ، ‫ﺍﻟﺜﻤﺎﻧﻲ‬ ‫ﺍﻟﻨﻈﺎﻡ‬. ‫ﺩﺍﺧﻠﻲ‬ ‫ﺑﺸﻜﻞ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﺑﻪ‬ ‫ﻳﻘﻮﻡ‬ ‫ﻣﺎ‬ ‫ﺇﻥ‬)‫ﺗﺪﺧﻠﻨﺎ‬ ‫ﺩﻭﻥ‬(‫ﺍﻟﺜﻤﺎﻧﻲ‬ ‫ﺍﻟﻨﻈﺎﻡ‬ ‫ﺗﺤﻮﻳﻞ‬ ‫ﺃﻧﻬﺎ‬ ‫ﻋﻠﻰ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﺣﻔﻆ‬ ‫ﺛﻢ‬ ‫ﻭﻣﻦ‬ ‫ﺍﻟﻌﺸﺮﻱ‬ ‫ﺍﻟﻨﻈﺎﻡ‬ ‫ﺍﻟﻰ‬binary.^_^. ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬: ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 79. "0b” LITERAL 0b‫ﺍﻝ‬ ‫ﻫﺬﺍ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﻳﺘﻢ‬Literal‫ﻹﻧﺸﺎء‬)‫ﺭﻗﻢ‬(‫ﺍﻝ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬binary ‫ﻣﺒﺎﺷﺮﺓ‬^_^‫ﺑﺎﻟﺸﻜﻞ‬ ‫ﺍﻷﺭﻗﺎﻡ‬ ‫ﺑﺘﻌﺮﻳﻒ‬ ‫ﺍﻟﻤﺒﺮﻣﺠﻴﻦ‬ ‫ﻳﻘﻮﻡ‬ ،‫ﺍﻹﻓﺘﺮﺍﺿﻴﺔ‬ ‫ﺍﻟﺤﺎﻟﺔ‬ ‫ﻓﻲ‬ ، ‫ﺍﻝ‬ ‫ﻳﻘﻮﻡ‬ ‫ﺛﻢ‬ ‫ﻭﻣﻦ‬ ،‫ﺍﻟﻌﺸﺮﻱ‬js‫ﺍﻟﻰ‬ ‫ﺍﻟﺮﻗﻢ‬ ‫ﻫﺬﺍ‬ ‫ﺑﺘﺤﻮﻳﻞ‬binary‫ﻳﺘﻢ‬ ‫ﺛﻢ‬ ‫ﻭﻣﻦ‬ ‫ﻫﺬﺍ‬ ‫ﻟﻜﻦ‬ ،‫ﺍﻟﺬﺍﻛﺮﺓ‬ ‫ﻓﻲ‬ ‫ﺣﻔﻈﻪ‬Literal‫ﺍﻟﺮﻗﻢ‬ ‫ﺣﻔﻆ‬ ‫ﻣﻦ‬ ‫ﺳﻴﻤﻜﻨﻚ‬binary ‫ﻣﺒﺎﺷﺮﺓ‬^_^... ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺷﺎﻫﺪ‬: ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 80. ‫ﻛﺘﺎﺏ‬:100،‫ﺍﻹﺳﻼﻡ‬ ‫ﻋﻈﻤﺎء‬ ‫ﻣﻦ‬ ‫ﻋﻈﻴﻢ‬ ‫ﺍﻟﺘﺎﺭﻳﺦ‬ ‫ﻣﺠﺮﻯ‬ ‫ﻏﻴﺮﻭ‬
  • 81. YIELD KEYWORD & FUN *() ‫ﻣﻦ‬ ‫ﺍﻟﺴﺎﺩﺱ‬ ‫ﺍﻹﺻﺪﺍﺭ‬ ‫ﻓﻲ‬ECMAScript‫ﻟﻠﺠﺎﻓﺎ‬ ‫ﺟﺪﻳﺪﺓ‬ ‫ﻣﻴﺰﺓ‬ ‫ﺇﺩﺭﺍﺝ‬ ‫ﺗﻢ‬ ‫ﺗﺴﻤﻰ‬ ،‫ﺳﻜﺮﺑﺖ‬JavaScript Generator‫ﺍﻝ‬ ‫ﻫﺬﺍ‬ ‫ﻭﻳﺘﻜﻮﻥ‬ ، Generator‫ﺍﻟﻤﺤﺠﻮﺯﺓ‬ ‫ﺍﻟﻜﻠﻤﺔ‬ ‫ﺑﺎﺳﺘﺨﺪﺍﻡ‬Yield‫ﺍﻝ‬ ‫ﻭﺍﺳﺘﺨﺪﺍﻡ‬ function*()‫ﺍﻟﺒﺮﻣﺠﻴﺔ‬ ‫ﺍﻟﺸﻴﻔﺮﺓ‬ ‫ﻓﻲ‬^_^ Yield keyword + functon * () syntax used => JS Generator ‫ﺍﻝ‬ ‫ﻳﻘﺪﻣﻬﺎ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﻮﻅﻴﻔﺔ‬ ‫ﻓﺈﻥ‬ ،‫ﻭﺑﺎﺧﺘﺼﺎﺭ‬JS Generator‫ﺇﺿﺎﻓﺔ‬ ‫ﻫﻲ‬ ‫ﻟﻞ‬ ‫ﺟﺪﻳﺪﺓ‬ ‫ﻁﺮﻳﻘﺔ‬function‫ﻻﺭﺟﺎﻉ‬)return(‫ﻗﻴﻢ‬ ‫ﻣﻦ‬ ‫ﻣﺠﻤﻮﻋﺔ‬ )Collection(‫ﺟﺪﻳﺪ‬ ‫ﺍﺳﻠﻮﺏ‬ ‫ﺑﺈﺿﺎﻓﺔ‬ ‫ﺗﻘﻮﻡ‬ ‫ﻛﻤﺎ‬ ،-‫ﻣﻨﻄﻘﻲ‬-‫ﺍﻟﺪﻭﺭﺍﻥ‬ ‫ﺟﻤﻠﺔ‬ ‫ﻓﻲ‬ ‫ﺍﻝ‬ ‫ﻣﻦ‬ ‫ﺍﺳﺘﺮﺟﺎﻋﻬﺎ‬ ‫ﺳﻴﺘﻢ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﻘﻴﻢ‬ ‫ﻻﺳﺘﻘﺒﺎﻝ‬Collection‫ﺑﺎﻝ‬ ‫ﺍﻟﻤﻮﺟﻮﺩﺓ‬ function* ()... ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 82. YIELD KEYWORD & FUN *() ‫ﺍﻝ‬ ‫ﻫﺬﻩ‬ ‫ﻣﻤﻴﺰﺍﺕ‬ ‫ﺃﻫﻢ‬ ‫ﻣﻦ‬Generator‫ﺍﻟﺘﻮﻗﻒ‬ ‫ﺇﻣﻜﺎﻧﻴﺔ‬ ‫ﻫﻮ‬ ‫ﺍﻧﺸﺎﺋﻬﺎ‬ ‫ﺳﻴﺘﻢ‬ ‫ﺍﻟﺘﻲ‬ ‫ﻣﻦ‬ ‫ﺍﻟﺨﺎﻣﺲ‬ ‫ﻟﻠﻌﻨﺼﺮ‬ ‫ﺃﺻﻞ‬ ‫ﺃﻥ‬ ‫ﻳﻤﻜﻨﻨﻲ‬ ‫ﻣﺜﻼ‬ ،‫ﺍﺳﺘﺨﺪﺍﻣﻬﺎ‬ ‫ﻳﻤﻜﻦ‬ ‫ﺍﻟﺘﻲ‬ ‫ﻭﺍﻹﺳﺘﻤﺮﺍﺭ‬ ‫ﺍﻝ‬Generator‫ﺍﻟﻌﻤﻠﻴﺔ‬ ‫ﺃﺗﺎﺑﻊ‬ ‫ﺛﻢ‬ ‫ﻭﻣﻦ‬ ،‫ﺃﺧﺮﻯ‬ ‫ﺑﺮﻣﺠﻴﺔ‬ ‫ﺷﻴﻔﺮﺓ‬ ‫ﻟﺘﻨﻔﻴﺬ‬ ‫ﺃﺫﻫﺐ‬ ‫ﺛﻢ‬ ‫ﺍﻟﻤﺮﻭﺭ‬ ‫ﺃﻭ‬ ‫ﻣﺜﻼ‬ ‫ﺍﻟﺪﻭﺭﺍﻥ‬ ‫ﺇﻋﺎﺩﺓ‬ ‫ﺍﻟﻰ‬ ‫ﺍﻟﺤﺎﺟﺔ‬ ‫ﺩﻭﻥ‬ ‫ﻣﺒﺎﺷﺮﺓ‬ ‫ﺍﻟﺴﺎﺩﺱ‬ ‫ﺍﻟﻌﻨﺼﺮ‬ ‫ﺑﺄﺧﺬ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﻫﺬﺍ‬ ‫ﻭﻳﺘﻢ‬ ،‫ﺍﻟﻘﻴﻢ‬ ‫ﺟﻤﻴﻊ‬ ‫ﻋﻠﻰ‬next()‫ﺍﻟﺸﺮﺍﺋﺢ‬ ‫ﻓﻲ‬ ‫ﺳﻨﺸﺎﻫﺪ‬ ‫ﻛﻤﺎ‬ ‫ﺍﻟﻘﺎﺩﻣﺔ‬..‫ﺍﻝ‬ ‫ﺃﻥ‬ ‫ﻛﻤﺎ‬ ،Generator‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﺑﺎﺭﺟﺎﻉ‬ ‫ﺗﺘﻤﻴﺰ‬)value(‫ﻭ‬ )done(‫ﺍﻝ‬ ‫ﺗﻜﻮﻥ‬ ‫ﺑﺤﻴﺚ‬value‫ﺍﺭﺟﺎﻋﻬﺎ‬ ‫ﺍﻟﻤﺮﺍﺩ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﻫﻲ‬)‫ﻣﺎ‬ ‫ﺃﻱ‬ ‫ﻭﺗﻜﻮﻥ‬ ‫ﺍﻝ‬ ‫ﻗﺒﻞ‬ ‫ﻣﻦ‬ ‫ﺍﺭﺟﺎﻋﻪ‬ ‫ﻳﻤﻜﻦ‬yield(‫ﻭﺍﻝ‬ ،done‫ﻳﻤﺜﻞ‬Boolean‫ﺍﻟﻰ‬ ‫ﻳﺸﻴﺮ‬ ‫ﻟﻠﺪﺍﻟﺔ‬ ‫ﻻ‬ ‫ﺃﻡ‬ ‫ﺍﻹﺭﺟﺎﻉ‬ ‫ﻋﻤﻠﻴﺔ‬ ‫ﺍﻧﺘﻬﺎء‬ ‫ﺍﻟﻤﻮﺿﻮﻉ‬ ‫ﻋﻠﻰ‬ ‫ﻋﻤﻠﻴﺔ‬ ‫ﺃﻣﺜﻠﺔ‬ ‫ﻟﻨﺸﺎﻫﺪ‬ ‫ﻭﺍﻵﻥ‬^_^ ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 83. YIELD KEYWORD & FUN *() ‫ﺳﺎﺑﻘﺎ‬)‫ﺍﻝ‬ ‫ﻗﺒﻞ‬ES6:(‫ﻣﺠﻤﻮﻋﺔ‬ ‫ﺍﺳﺘﻘﺒﺎﻝ‬ ‫ﻛﻴﻔﻴﺔ‬ ‫ﻋﻠﻰ‬ ‫ﺍﻟﺘﻘﻠﻴﺪﻱ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻫﺬﺍ‬ ‫ﺷﺎﻫﺪ‬ ‫ﺟﺪﺍ‬ ‫ﺑﺴﻴﻄﺔ‬ ‫ﻁﺮﻳﻘﺔ‬ ،‫ﺍﻟﻘﻴﻢ‬ ‫ﻣﻦ‬..‫ﺍﻟﺘﺎﻟﻴﺔ‬ ‫ﺍﻟﺸﺮﻳﺤﺔ‬ ‫ﺍﻟﻰ‬ ‫ﻟﻨﻨﺘﻘﻞ‬ ‫ﺍﻵﻥ‬_^* ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 84. YIELD KEYWORD & FUN *() ‫ﺍﻝ‬ ‫ﺑﺎﺳﺘﺨﺪﺍﻡ‬ ‫ﻣﺜﺎﻝ‬JS Generator: ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻫﺬﺍ‬ ‫ﺷﺎﻫﺪ‬ ‫ﻟﻜﻞ‬ ‫ﺟﻴﺪﺍ‬ ‫ﻭﺍﻧﺘﺒﻪ‬ ‫ﻣﻠﻮﻥ‬ ‫ﻫﻮ‬ ‫ﻣﺎ‬^_^ ‫؟‬ ‫ﺍﻧﺘﻬﻴﺖ‬ ‫ﻫﻞ‬ ‫ﺑﺘﻨﻔﻴﺬ‬ ‫ﻗﻤﺖ‬ ‫ﻫﻞ‬ ‫؟‬ ‫ﺍﻟﺒﺮﻣﺠﻴﺔ‬ ‫ﺍﻟﺸﻴﻔﺮﺓ‬ ‫ﺧﻄﺄ‬ ‫ﻟﻚ‬ ‫ﻅﻬﺮ‬ ‫ﻫﻞ‬ ‫ﻓﻲ‬ ‫ﻣﻮﺟﻮﺩ‬ ‫ﻫﻮ‬ ‫ﻛﻤﺎ‬ ‫؟‬ ‫ﺍﻟﺼﻮﺭﺓ‬ ‫ﺃﺳﻔﻞ‬ ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 85. YIELD KEYWORD & FUN *() ‫ﺍﻝ‬ ‫ﻗﺪﺭﺓ‬ ‫ﺑﻌﺪﻡ‬ ‫ﺗﺨﺒﺮﻙ‬ ‫ﻫﺬﻩ‬ ‫ﺍﻟﺨﻄﺄ‬ ‫ﺭﺳﺎﻟﺔ‬browsers.js‫ﺑﺎﺳﺘﺨﺪﺍﻣﻪ‬ ‫ﻗﻤﻨﺎ‬ ‫ﺍﻟﺬﻱ‬ ‫ﺍﻝ‬ ‫ﺗﺤﻤﻴﻞ‬ ‫ﺑﻌﺪ‬babel compiler‫ﺍﻝ‬ ‫ﺗﻨﻔﻴﺬ‬ ‫ﻋﻠﻰ‬Generator‫ﺍﻝ‬ ‫ﺃﺛﻨﺎء‬ Runtime...‫؟‬ ‫ﺍﻟﺤﻞ‬ ‫ﻣﺎ‬ ‫ﺍﺫﺍ‬ ‫ﺍﻝ‬ ‫ﺗﻀﻤﻴﻦ‬ ‫ﺃﻭ‬ ‫ﺑﺎﺳﺘﺨﺪﺍﻡ‬ ‫ﻫﻮ‬ ‫ﺍﻟﺤﻞ‬browser-polyfill.js‫ﺑﺎﻝ‬ ‫ﺃﻳﻀﺎ‬ ‫ﺍﻟﺨﺎﺹ‬ Babel_^*‫ﺍﻝ‬ ‫ﺗﻀﻤﻴﻦ‬ ‫ﻋﻠﻰ‬ ‫ﻫﺬﺍ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻣﻠﻒ‬ ‫ﻭﻳﻘﻮﻡ‬ ،runtime ‫ﻭﺍﻝ‬core js‫ﺍﻝ‬ ‫ﻣﻦ‬ ‫ﺃﻱ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﺣﺎﻝ‬ ‫ﻓﻲ‬ ‫ﺗﻠﻘﺎﺋﻲ‬ ‫ﺑﺸﻜﻞ‬Babel node‫ﺃﻭ‬ Babel register‫ﺗﻀﻤﻴﻨﻪ‬ ‫ﻳﺘﻢ‬ ‫ﺃﻥ‬ ‫ﻳﺠﺐ‬ ‫ﺍﻟﻤﻠﻒ‬ ‫ﻫﺬﺍ‬ ‫ﺃﻥ‬ ‫ﻭﺍﻧﺘﺒﻪ‬ ،“‫ﺃﻱ‬ ‫ﻗﺒﻞ‬ ‫ﺏ‬ ‫ﺧﺎﺻﺔ‬ ‫ﺑﺮﻣﺠﻴﺔ‬ ‫ﺷﻴﻔﺮﺓ‬Babel...” This needs to be included before all your compiled Babel code. )‫ﺍﻝ‬ ‫ﺑﺎﺳﺘﺨﺪﺍﻡ‬ ‫ﻗﻤﺖ‬ ‫ﺣﺎﻟﺔ‬ ‫ﻓﻲ‬ ‫ﺍﻟﻤﻠﻒ‬ ‫ﻫﺬﺍ‬ ‫ﺍﺳﺘﺪﻋﺎء‬ ‫ﻋﻦ‬ ‫ﺍﻹﺳﺘﻐﻨﺎء‬ ‫ﻳﻤﻜﻨﻚ‬ ‫ﻁﺒﻌﺎ‬babel‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬ babel/polyfill ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 86. YIELD KEYWORD & FUN *() ‫ﺍﻟﻜﺎﻣﻞ‬ ‫ﺑﺸﻜﻠﻪ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻟﻨﺸﺎﻫﺪ‬ ‫ﻭﺍﻵﻥ‬: ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 87. YIELD KEYWORD & FUN *() ‫ﻣﺜﺎﻝ‬2:‫ﺍﻝ‬ ‫ﺩﻭﺭ‬ ‫ﻫﻨﺎ‬ ‫ﻻﺣﻆ‬next^_^..‫ﻗﻤﺖ‬ ‫ﻟﻤﺎﺫﺍ‬ ،‫ﻫﺬﺍ‬ ‫ﻗﺒﻞ‬ ‫ﻻﺣﻆ‬ ‫ﻭﻟﻜﻦ‬ ‫ﺑﺘﺨﺰﻳﻦ‬collection_name()‫؟‬ ‫ﻣﺘﻐﻴﺮ‬ ‫ﺩﺍﺧﻞ‬! ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 88. YIELD KEYWORD & FUN *() ‫ﺍﻝ‬ ‫ﺑﺘﺨﺰﻳﻦ‬ ‫ﻧﻘﻢ‬ ‫ﻟﻢ‬ ‫ﻟﻮ‬ ،‫ﺍﻟﺴﺎﺑﻖ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻓﻲ‬collection_name()‫ﺩﺍﺧﻞ‬ ‫ﻗﻴﻤﺔ‬ ‫ﺃﻭ‬ ‫ﺩﺍﺋﻤﺎ‬ ‫ﺳﻴﻜﻮﻥ‬ ‫ﺍﻟﻨﺎﺗﺞ‬ ‫ﻓﺈﻥ‬ ،‫ﻣﺘﻐﻴﺮ‬Yield.... ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 89. YIELD KEYWORD & FUN *() ‫ﻣﺜﺎﻝ‬3:‫ﺍﻝ‬ ‫ﺑﺎﺳﺘﺪﻋﺎء‬ ‫ﻗﻤﺖ‬ ‫ﻫﻨﺎ‬value‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬ ‫ﻣﺒﺎﺷﺮﺓ‬console‫ﺃﻧﻨﻲ‬ ‫ﻛﻤﺎ‬ ، ‫ﺍﻝ‬ ‫ﺃﺣﺪ‬ ‫ﺩﺍﺧﻞ‬ ‫ﻣﺼﻔﻮﻓﺔ‬ ‫ﺑﺤﻔﻆ‬ ‫ﻗﻤﺖ‬yield‫ﺍﺳﺘﺪﻋﺎﺋﻬﺎ‬ ‫ﺛﻢ‬ ‫ﻭﻣﻦ‬ ،.. ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 90. YIELD KEYWORD & FUN *() ‫ﻣﺜﺎﻝ‬4:‫ﺍﻝ‬ ‫ﺍﺳﺘﺨﺪﻣﺖ‬ ‫ﺃﻧﻨﻲ‬ ‫ﻻﺣﻆ‬ ،‫ﺍﻟﺠﻤﻴﻞ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻫﺬﺍ‬ ‫ﻓﻲ‬yield‫ﻭﻛﺄﻧﻬﺎ‬ return‫ﻭﺃﻧﻮﺍﻋﻬﺎ‬ ‫ﺍﻟﺒﻴﺎﻧﺎﺕ‬ ‫ﻣﺨﺘﻠﻒ‬ ‫ﺍﺭﺟﺎﻉ‬ ‫ﺍﺳﺘﻄﻌﺖ‬ ‫ﻭﺑﻬﺬﺍ‬ ،)data type( ‫ﺍﻝ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬yield... ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 91. YIELD KEYWORD & FUN *() ‫ﺍﻟﺪﻭﺭﺓ‬ ‫ﻫﺬﻩ‬ ‫ﻓﻲ‬ ‫ﺃﺧﺮﻯ‬ ‫ﺟﺰﺋﻴﺔ‬ ‫ﺍﻟﻰ‬ ‫ﻧﻨﺘﻘﻞ‬ ،‫ﺍﻟﻤﻮﺿﻮﻉ‬ ‫ﻫﺬﺍ‬ ‫ﻭﺑﻌﺪ‬ ،‫ﻭﺍﻵﻥ‬ ‫ﺍﻷﻣﺜﻠﺔ‬ ‫ﺟﻤﻴﻊ‬ ‫ﻟﻨﺸﺎﻫﺪ‬ ،‫ﺍﻟﺠﺪﻳﺪ‬ ‫ﺍﻟﻤﻮﺿﻮﻉ‬ ‫ﺍﻟﻰ‬ ‫ﺍﻹﻧﺘﻘﺎﻝ‬ ‫ﻭﻗﺒﻞ‬ ‫ﻟﻜﻦ‬ ،‫ﺍﻟﻤﺘﻮﺍﺿﻌﺔ‬ ‫ﺍﻟﻤﻮﺿﻮﻉ‬ ‫ﻫﺬﺍ‬ ‫ﻓﻲ‬ ‫ﺑﻌﺮﺿﻬﺎ‬ ‫ﻗﻤﻨﺎ‬ ‫ﺍﻟﺘﻲ‬)..‫ﺍﻟﻤﻬﻢ‬ ‫ﻫﻮ‬ ‫ﺍﻟﺘﻄﺒﻴﻖ‬ ‫ﺃﻥ‬ ‫ﺗﻨﺴﻰ‬ ‫ﻭﻻ‬( ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 92. ‫ﺍﻟﺮﺟﻴﻢ‬ ‫ﺍﻟﺸﻴﻄﺎﻥ‬ ‫ﻣﻦ‬ ‫ﻮﺫ ﺑﺎہﻠﻟ‬ َ ‫ﱠ‬‫ﷲ‬ ‫ﱠ‬‫ﻥ‬ِ‫ﺇ‬ َ ‫ﱠ‬‫ﷲ‬ ‫ﻮﺍ‬ُ‫ﻘ‬‫ﱠ‬‫ﺗ‬‫ﺍ‬َ‫ﻭ‬ ٍ‫ﺪ‬َ‫ﻐ‬ِ‫ﻟ‬ ْ‫ﺖ‬َ‫ﻣ‬‫ﱠ‬‫ﺪ‬َ‫ﻗ‬ ‫ﺎ‬‫ﱠ‬‫ﻣ‬ ٌ‫ﺲ‬ْ‫ﻔ‬َ‫ﻧ‬ ْ‫ﺮ‬ُ‫ﻈ‬‫ﻨ‬َ‫ﺘ‬ْ‫ﻟ‬َ‫ﻭ‬ َ ‫ﱠ‬‫ﷲ‬ ‫ﻮﺍ‬ُ‫ﻘ‬‫ﱠ‬‫ﺗ‬‫ﺍ‬ ‫ﻮﺍ‬ُ‫ﻨ‬َ‫ﻣ‬‫ﺁ‬ َ‫ﻳﻦ‬ِ‫ﺬ‬‫ﱠ‬‫ﺍﻟ‬ ‫ﺎ‬َ‫ﻬ‬‫ﱡ‬‫ﻳ‬َ‫ﺃ‬ ‫ﺎ‬َ‫ﻳ‬ َ‫ﻮﻥ‬ُ‫ﻠ‬َ‫ﻤ‬ْ‫ﻌ‬َ‫ﺗ‬ ‫ﺎ‬َ‫ﻤ‬ِ‫ﺑ‬ ٌ‫ﺮ‬‫ﻴ‬ِ‫ﺒ‬َ‫ﺧ‬ ‫ﺍﻟﻌﻈﻴﻢ‬ ‫ﷲ‬ ‫ﺻﺪﻕ‬ ‫ﺍﻟﺤﺸﺮ‬ ‫ﺳﻮﺭﺓ‬–‫ﺍﻵﻳﺔ‬:18
  • 93. SET OBJECT ‫ﻫﻨﺎﻙ‬ ‫ﻳﻜﻦ‬ ‫ﻟﻢ‬ ،‫ﺳﻜﺮﺑﺖ‬ ‫ﺍﻟﺠﺎﻓﺎ‬ ‫ﻣﻦ‬ ‫ﺍﻟﺨﺎﻣﺲ‬ ‫ﻟﻺﺻﺪﺍﺭ‬ ‫ﻭﺻﻮﻻ‬collection ‫ﺍﻝ‬ ‫ﺳﻮﻯ‬Array‫ﺑﺘﻌﺮﻳﻒ‬ ‫ﺭﻏﺒﻨﺎ‬ ‫ﺍﺫﺍ‬ ‫ﻭﻛﻨﺎ‬ ،index‫ﺍﻝ‬ ‫ﻧﺴﺘﺨﺪﻡ‬ ‫ﺭﻗﻤﻲ‬ ‫ﻏﻴﺮ‬ object‫ﺍﻝ‬ ‫ﻓﻈﻬﺮﻣﻔﻬﻮﻡ‬ ،‫ﺍﻟﻴﻮﻡ‬ ‫ﺑﻌﺪ‬ ‫ﻳﻜﻔﻲ‬ ‫ﻳﻌﺪ‬ ‫ﻟﻢ‬ ‫ﺍﻷﻣﺮ‬ ‫ﻫﺬﺍ‬ ‫ﻟﻜﻦ‬ ،“SET” ‫ﻟﻺﺻﺪﺍﺭ‬ ‫ﺳﻜﺮﺑﺖ‬ ‫ﺑﺎﻟﺠﺎﻓﺎ‬6)‫ﺍﻟﻤﻬﺎﻡ‬ ‫ﻟﺘﺤﻘﻴﻖ‬ ‫ﺃﺩﺍء‬ ‫ﻭﺃﻓﻀﻞ‬ ‫ﺍﺣﺘﺮﺍﻓﻴﺔ‬ ‫ﺃﻛﺜﺮ‬ ‫ﺍﻟﻬﺪﻑ‬( ‫ﺍﻝ‬ ‫ﻁﺒﻌﺎ‬SET‫ﻣﻌﺮﻭﻓﺔ‬ ‫ﻓﻬﻲ‬ ،‫ﺍﻟﺒﺮﻣﺠﺔ‬ ‫ﻟﻐﺎﺕ‬ ‫ﻋﻠﻰ‬ ‫ﺟﺪﻳﺪﺍ‬ ‫ﻣﻔﻬﻮﻣﺎ‬ ‫ﻟﻴﺴﺖ‬ ‫ﺍﻝ‬ ‫ﻟﻤﺒﺮﻣﺠﻴﻦ‬python‫ﻭﺍﻟﺠﺎﻓﺎ‬..‫ﺍﻝ‬ ‫ﺗﻌﺮﻳﻒ‬ ‫ﺃﻣﺎ‬ ،‫ﺍﻟﺦ‬SET‫ﻓﻬﻮ‬: ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﻘﻴﻢ‬ ‫ﻣﻦ‬ ‫ﻣﺮﺗﺒﺔ‬ ‫ﻗﺎﺋﻤﺔ‬،‫ﺗﻜﺮﺍﺭﻫﺎ‬ ‫ﻳﻤﻜﻦ‬ ‫ﻻ‬‫ﺍﻟﻘﻴﻢ‬ ‫ﻫﺬﻩ‬ ‫ﻛﺎﻧﺖ‬ ‫ﺳﻮﺍء‬ primitive‫ﺃﻭ‬object...^_^. ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 94. SET OBJECT ‫ﺍﻝ‬ ‫ﻣﻦ‬ ‫ﺍﻟﺒﺴﻴﻄﺔ‬ ‫ﺍﻟﺼﻴﻐﺔ‬ ‫ﻳﻮﺿﺢ‬ ‫ﻣﺜﺎﻻ‬ ‫ﻟﻨﺸﺎﻫﺪ‬ ‫ﻭﺍﻵﻥ‬Set‫ﻳﻤﻜﻨﻨﺎ‬ ‫ﻭﺍﻟﺘﻲ‬ ‫ﺍﺳﺘﺨﺪﺍﻣﻬﺎ‬^_^: ‫ﺃﻥ‬ ‫ﺍﻟﺒﺴﻴﻂ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻫﺬﺍ‬ ‫ﻓﻲ‬ ‫ﻻﺣﻆ‬ ‫ﺍﻝ‬Set()‫ﺍﻝ‬ ‫ﺣﺮﻑ‬ ‫ﻓﻴﻬﺎ‬ ‫ﻳﻜﺘﺐ‬ S Capital... ‫ﺍﻝ‬ ‫ﺃﻣﺎ‬add:‫ﻟﻠﻤﺼﻔﻮﻓﺔ‬ ‫ﺟﺪﻳﺪﺓ‬ ‫ﻋﻨﺎﺻﺮ‬ ‫ﺇﺿﺎﻓﺔ‬ ‫ﻋﻦ‬ ‫ﺍﻟﻤﺴﺆﻭﻟﺔ‬ ‫ﺍﻟﺪﺍﻟﺔ‬ ‫ﻓﻬﻲ‬. ‫ﺍﻝ‬size:‫ﺍﻝ‬ ‫ﺣﺠﻢ‬ ‫ﺗﺤﺪﻳﺪ‬ ‫ﻋﻦ‬ ‫ﺍﻟﻤﺴﺆﻭﻟﺔ‬ ‫ﺍﻟﺪﺍﻟﺔ‬ ‫ﻫﻲ‬Set_^* ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﺑﺘﻨﻔﻴﺬ‬ ‫ﻗﻢ‬..‫ﺍﻟﺘﺎﻟﻴﺔ‬ ‫ﻟﻠﺸﺮﻳﺤﺔ‬ ‫ﺍﻧﺘﻘﻞ‬ ‫ﺛﻢ‬.. ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 95. SET OBJECT ‫ﻣﺜﺎﻝ‬1: ‫ﻟﻠﺮﻗﻢ‬ ‫ﺍﻹﺿﺎﻓﺔ‬ ‫ﻋﻤﻠﻴﺔ‬ ،‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻫﺬﺍ‬ ‫ﻓﻲ‬ ‫ﺍﻟﻤﻬﻤﺔ‬ ‫ﺍﻟﻔﻜﺮﺓ‬ ‫ﻻﺣﻆ‬24‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬ ‫ﻛﺎﻧﺖ‬ ‫ﻧﺼﻲ‬ ‫ﺷﻜﻞ‬ ‫ﻭﻋﻠﻰ‬ ،‫ﻭﺍﻟﺜﺎﻧﻲ‬ ‫ﺍﻷﻭﻝ‬ ‫ﻓﻲ‬ ‫ﺭﻗﻤﻲ‬“24”‫ﻟﻜﻦ‬ ،‫ﺍﻟﺜﺎﻟﺚ‬ ‫ﺍﻟﺴﻄﺮ‬ ‫ﻓﻲ‬ ‫ﺍﻝ‬ ‫ﻟﺤﺠﻢ‬ ‫ﺍﻟﻨﻬﺎﺋﻴﺔ‬ ‫ﺍﻟﻨﺘﻴﺠﺔ‬Set‫ﺳﻴﻜﻮﻥ‬3‫؟‬!‫؟‬ ‫ﺑﺮﺃﻳﻚ‬ ‫ﻟﻤﺎﺫﺍ‬ ‫ﺍﻝ‬ ‫ﺑﺄﻥ‬ ‫ﻳﻜﻤﻦ‬ ‫ﺍﻟﺠﻮﺍﺏ‬Set‫ﻳﺘﻢ‬ ‫ﺍﻟﺘﻜﺮﺍﺭ‬ ‫ﻓﺈﻥ‬ ‫ﻭﻟﺬﻟﻚ‬ ،‫ﺫﻛﺮﻧﺎ‬ ‫ﻛﻤﺎ‬ ‫ﺍﻟﺘﻜﺮﺍﺭ‬ ‫ﺗﻤﻨﻊ‬ ‫ﻗﻴﻤﺔ‬ ‫ﺑﻴﻦ‬ ‫ﻣﻴﺰ‬ ‫ﺍﻟﻮﻗﺖ‬ ‫ﺑﺬﺍﺕ‬ ‫ﻟﻜﻨﻪ‬ ،‫ﺗﺠﺎﻫﻠﻪ‬24‫ﻭﺍﻝ‬ ‫ﺍﻟﺮﻗﻤﻴﺔ‬24‫ﺍﻟﻨﺼﻴﺔ‬^_^ ‫ﺍﻟﺸﻜﻞ‬ ‫ﻳﺼﺒﺢ‬ ‫ﻭﺑﻬﺬﺍ‬ ،‫ﻓﻘﻂ‬ ‫ﺍﺩﺧﻠﺖ‬ ‫ﻗﻴﻤﺔ‬ ‫ﺃﻭﻝ‬ ‫ﺍﻋﺘﻤﺎﺩ‬ ‫ﻭﻳﺘﻢ‬24-”24”-”anees” ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 96. SET OBJECT ‫ﻣﺜﺎﻝ‬2:‫ﻟﻞ‬ ‫ﺍﺑﺘﺪﺍﺋﻴﺔ‬ ‫ﻗﻴﻤﺔ‬ ‫ﺗﻌﺮﻳﻒ‬ ‫ﻳﻤﻜﻨﻨﺎ‬Set‫ﺩﻭﻥ‬ ‫ﻣﺒﺎﺷﺮﺓ‬ ‫ﺑﺎﻧﺸﺎﺋﻬﺎ‬ ‫ﻧﺮﻏﺐ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﺪﺍﻟﺔ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬add()‫ﻣﺼﻔﻮﻓﺔ‬ ‫ﺷﻜﻞ‬ ‫ﻋﻠﻰ‬ ‫ﺍﻟﻘﻴﻢ‬ ‫ﺍﺭﺳﺎﻝ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬ ‫ﺫﻟﻚ‬ ‫ﻭﻳﻜﻮﻥ‬ ، ‫ﺍﻟﻰ‬constructor^_^..‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻟﻨﺸﺎﻫﺪ‬: ،‫ﺗﻠﻘﺎﺋﻲ‬ ‫ﺑﺸﻜﻞ‬ ‫ﺗﺘﻢ‬ ‫ﺍﻟﺘﻜﺮﺍﺭ‬ ‫ﺗﺠﺎﻫﻞ‬ ‫ﻋﻤﻠﻴﺔ‬ ‫ﺃﻥ‬ ‫ﻫﻨﺎ‬ ‫ﻻﺣﻆ‬)‫ﺍﻟﻤﻘﺎﺭﻧﺔ‬ ‫ﻋﻤﻠﻴﺔ‬ ‫ﺑﺎﻟﻤﻨﺎﺳﺒﺔ‬ ‫ﺍﻟﺘﺎﻟﻲ‬ ‫ﺑﺎﻟﺸﻜﻞ‬ ‫ﺗﺘﻢ‬( ===‫ﺗﻜﻮﻥ‬ ‫ﺃﻥ‬ ‫ﻳﻤﻜﻦ‬ ‫ﺍﺭﺳﺎﻟﻬﺎ‬ ‫ﺗﻢ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﻘﻴﻢ‬ ‫ﺃﻥ‬ ‫ﻛﻢ‬ ،obj‫ﺃﻭ‬ ‫ﻋﺎﺩﻱ‬ ‫ﺭﻗﻢ‬ ‫ﺃﻭ‬ ‫ﻣﺼﻔﻮﻓﺔ‬..‫ﺍﻟﺦ‬ ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 97. SET OBJECT ‫ﻣﺜﺎﻝ‬3: ‫ﺗﺪﻋﻰ‬ ‫ﺟﺪﻳﺪﺓ‬ ‫ﻟﺪﺍﻟﺔ‬ ‫ﺗﻄﺮﻗﻨﺎ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻫﺬﺍ‬ ‫ﻓﻲ‬has‫ﻣﻦ‬ ‫ﺍﻟﺘﺄﻛﺪ‬ ‫ﻋﻠﻰ‬ ‫ﺗﻘﻮﻡ‬ ‫ﺍﻟﺪﺍﻟﺔ‬ ‫ﻫﺬﻩ‬ ، ‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬ ‫ﻣﻮﺟﻮﺩﺓ‬ ‫ﻣﺎ‬ ‫ﻗﻴﻤﺔ‬ ‫ﺃﻥ‬set‫ﺑﺎﺭﺟﺎﻉ‬ ‫ﺫﻟﻚ‬ ‫ﻋﻠﻰ‬ ‫ﺑﻨﺎﺋﺎ‬ ‫ﻭﺗﻘﻮﻡ‬ ،‫ﻻ‬ ‫ﺃﻡ‬ True or False^_^ ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 98. SET OBJECT ‫ﻣﺜﺎﻝ‬4: ‫ﺍﻟﺪﺍﻟﺔ‬ ‫ﺗﺴﺘﺨﺪﻡ‬delete‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬ ‫ﻣﻮﺟﻮﺩ‬ ‫ﻋﻨﺼﺮ‬ ‫ﻟﺤﺬﻑ‬set‫ﺍﻟﻨﺘﺎﺋﺞ‬ ‫ﻫﻨﺎ‬ ‫ﺷﺎﻫﺪ‬ ، ‫ﺍﻟﺤﺬﻑ‬ ‫ﻋﻤﻠﻴﺔ‬ ‫ﺑﻌﺪ‬ ‫ﺗﻐﻴﺮﺕ‬ ‫ﻛﻴﻒ‬... ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 99. SET OBJECT ‫ﻣﺜﺎﻝ‬5: ‫ﺍﻟﺪﺍﻟﺔ‬ ‫ﺑﺎﺳﺘﺨﺪﺍﻡ‬ ‫ﻗﻤﻨﺎ‬ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻫﺬﺍ‬ ‫ﻓﻲ‬clear()‫ﺟﻤﻴﻊ‬ ‫ﺣﺬﻑ‬ ‫ﻋﻠﻰ‬ ‫ﺗﻘﻮﻡ‬ ‫ﺍﻟﺪﺍﻟﺔ‬ ‫ﻫﺬﻩ‬ ، ‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬ ‫ﺍﻟﻤﻮﺟﻮﺩﺓ‬ ‫ﺍﻟﻘﻴﻢ‬Set.. ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com
  • 100. SET OBJECT ‫ﺍﻝ‬ ‫ﺩﺍﺧﻞ‬ ‫ﺍﻟﻤﻮﺟﻮﺩﺓ‬ ‫ﺍﻟﻌﻨﺎﺻﺮ‬ ‫ﻁﺒﺎﻋﺔ‬ ‫ﻳﻤﻜﻨﻨﺎ‬ ‫ﻛﻴﻒ‬ ،‫ﻭﺍﻵﻥ‬Set‫؟‬ ‫ﺍﻟﺠﻮﺍﺏ‬:‫ﺍﻝ‬ ‫ﺧﻼﻝ‬ ‫ﻣﻦ‬For of‫ﺳﺎﺑﻘﺎ‬ ‫ﺗﻌﻠﻤﻨﺎﻫﺎ‬ ‫ﺍﻟﺘﻲ‬^_^ ‫ﺍﻟﻤﺜﺎﻝ‬ ‫ﻟﻨﺸﺎﻫﺪ‬6: ‫ﺍﻝ‬ ‫ﺍﺳﺘﺨﺪﺍﻡ‬ ‫ﺍﻟﻰ‬ ‫ﺗﺪﻋﻮﻧﺎ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﻨﻘﺎﻁ‬ ‫ﺃﻫﻢ‬ ‫ﻣﻦ‬Set‫ﺃﻱ‬ ‫ﻭﺟﻮﺩ‬ ‫ﻋﺪﻡ‬ ‫ﻧﻀﻤﻦ‬ ‫ﺍﻧﻨﺎ‬ ‫ﻳﺒﻘﻰ‬ ‫ﻭﺍﻟﺮﻗﻤﻲ‬ ،‫ﻧﺼﻲ‬ ‫ﻳﺒﻘﻰ‬ ‫ﻓﺎﻟﻨﺼﻲ‬ ،‫ﺍﺭﺳﺎﻟﻬﺎ‬ ‫ﻳﺘﻢ‬ ‫ﺍﻟﺘﻲ‬ ‫ﺍﻟﺒﻴﺎﻧﺎﺕ‬ ‫ﻧﻮﻉ‬ ‫ﻋﻠﻰ‬ ‫ﺗﻌﺪﻳﻞ‬ ‫ﻣﺼﻔﻮﻓﺔ‬ ‫ﺗﺒﻘﻰ‬ ‫ﻭﺍﻟﻤﺼﻔﻮﻓﺔ‬ ،‫ﺭﻗﻤﻴﺎ‬...‫ﺍﻟﺦ‬ ‫ﻣﺠﺎﻧﻴﺔ‬‫ﺩﻭﺭﺓ‬-aneeshikmat@2nees.com