អ៊ីកម៉ាស្ក្រីបត៍ (ECMAScript)

ហេឡូវើរ៍ល! សួរស្ដី! បើអ្នកទាំងអស់គ្នារៀនកូដ ប្រាកដជាបានលឺពីចាវ៉ាស្ក្រីបត៍ហើយ ហើយក៏ប្រហែលជាបានលឺមកផងដែរថាវាជាភាសាមួយដែលមានគេស្អប់ និងឈឺក្បាលនឹងវាច្រើនបំផុតមួយដែរ។ ថ្ងៃនេះយើងមក​សិក្សាពី​កំណែអ៊ីកម៉ាស្រីបត៍ដែលជាស្ដង់ដាររបស់ចាវ៉ាស្ក្រីបត៍សង្ខេបៗទាំងអស់គ្នា។

អ៊ីកម៉ាស្ក្រីបត៍

អ៊ីកម៉ាអន្តរជាតិ (ecma international​ — European Computer Manufacturers Association International) ជាសមាគមន៍បង្កើតឡើងមកដើម្បីចុះស្ដង់ដារប្រព័ន្ធព័ត៌មាន និង​ទំនាក់ទំនង។ មុនដំបូងអត់មាន International ទេសម្រាប់តែ​ទ្វីប​អឺរ៉ុបទេ តែក្រោយមក​ថែម International ដើម្បីពង្រីកស្ដង់ដារនេះសម្រាប់ពិភពលោកទាំងមូល។

ECMA International

ប្រភពរូបភាព៖​ https://tc39.es/ecma262

អ៊ីកម៉ាស្ក្រីបត៍ ជាស្ដង់ដារសម្រាប់ភាសាស្ក្រីបត៍។ ចាវ៉ាស្ក្រីបត៍ ដែលជាកំណែមួយដែលផ្អែកទៅលើស្តង់ដារនេះ។ ស្ដង់ដារ​អ៊ីកម៉ាស្ក្រីបត៍ដំបូងចេញនៅឆ្នាំ 1997 ហើយវា (ចាវ៉ាស្ក្រីបត៍) បានក្លាយជាភាសាប្រូក្រាមមីង​ដ៏ពេញនិយមមួយ។ គេប្រើវាច្រើននៅសម្រាប់សរសេរស្ក្រីបត៍លើកម្មវិធីរុករក (Browser) តែមកដល់ពេលនេះវាពេញនិយមផងដែរជាភាសាប្រូក្រាមមីងទូទៅដែលត្រូវបានគេយកទៅប្រើស្ទើរតែគ្រប់កន្លែងតាំងពីហ្វ្រន់អ៊ែន បេកអ៊ែន និងសរសេរកម្មវិធីទូរស័ព្ទទៀត។

តាមពិតទៅ ស្ដង់ដារអ៊ីកម៉ា នេះចេញមកដោយផ្អែកទៅលើភាសា​ស្ក្រីបត៍សម័យនោះគឺ ​ ចាវ៉ាស្ក្រីបត៍ (បង្កើតឡើងដំបូងដោយលោក Brendan Eich នៅ NetScape) និង ចេស្ក្រីបត៍ (JScript) របស់ម៉ៃក្រូសូហ្វត៍ប្រើក្នុង Internet Explorer ។ មកដល់ពេលនេះ អ៊ីកម៉ាស្ក្រីបត៍ ចេញច្រើនជំនាន់ហើយសង្ខេបៗដូចខាងក្រោម៖

អ៊ីកម៉ា 1 និង 2 — ច្របាច់បញ្ចូលគ្នានៃភាសាស្ក្រីបត៍សម័យនោះដើម្បីចុះជាស្តង់ដារ។

អ៊ីកម៉ា 3​ — កំណែនេះបាននាំមកនូវមុខងារសំខាន់ៗជាច្រើនដូចជា RegEx, string Handling ដែលប្រសើរជាងមុន, New Control Statement, Try/Catch Exception Handling, និយមន័យ Errors ដែលច្បាស់ជាងមុន, Formatting for Numerical Output និង​កែ​សម្រួល​​ដើម្បី​ស្រួលបន្ថែមមុខងារទៀតនាពេលខាងមុខ។ បន្ទាប់ពីស្តង់ដារអ៊ីកម៉ា 3 បានចេញផ្សាយ គេឃើញមានការទទួលយកច្រើន ហើយជាភាសាប្រូក្រាមមីងសម្រាប់ស្ទើរតែគ្រប់កម្មវិធីរុករកទាំងអស់។

អ៊ីកម៉ា 4 — មិនបានចេញផ្សាយដោយត្រូវបានគេបោះបង់ចោល។ តែយ៉ាងណាមុខងារមួយចំនួនរបស់វាត្រូវបានគេសម្រេចបញ្ចូលក្នុងកំណែរអ៊ីកម៉ា 6។

អ៊ីកម៉ា 5 (ឆ្នាំ 2009)​ — ដែលចេញបន្ទាប់ពីចំណាយពេលជិត 10 ឆ្នាំតាំពីកំណែមុន បានក្លាយជាកំណែស្ដង់ដារសម្រាប់ស្ទើរតែគ្រប់កម្មវិធីរុករកទាំងអស់។ កំណែនេះរួមមានមុខងារមួយចំនួនដែលគ្រោងនឹងចេញតាំងពីកំណែ អ៊ីកម៉ា 3 និងមុខងារថ្មីៗជាច្រើនដូចជា Accessor Properties, Reflective Creation and Inspection of Objects, Program Control of Property Attributes, មុខងារ Array Manipultation បន្ថែម, សាប់ផតការអ៊ែនកូដ JSON Object, Strict Mode ដែលបង្កើនប្រសិទ្ធិភាពចាប់អ៊ែរឺ និងសុវត្តិភាពនៃភាសា។

ES6

អ៊ីកម៉ា 6 ឫអ៊ីកម៉ា2015 — ដំណាលពេលនឹងការចេញផ្សាយកំណែអ៊ីកម៉ា 5 គេក៏ចាប់ផ្ដើមរៀបចំសរសេរកំណែអ៊ីកម៉ា 6 នេះផងដែរ។ កំណែនេះរួមបញ្ចូលរាល់ការខិតខំឌីហ្សាញភាសានេះឲ្យល្អជាងមុនតាំងតែពីជំនាន់អ៊ីកម៉ា 3​ មកម្ល៉េះ គឺថាកំណែនេះហើយជាសមិទ្ធិផលនៃការខិតខំទាំងអស់នារយៈពេលប្រមាណ 15 ឆ្នាំកន្លងមកនេះ។ ចឹងហើយបានយើងសង្កេតឃើញថាបន្ទាប់ពីកំណែអ៊ីកម៉ា 6 នេះ ចាវ៉ាស្ក្រីបត៍ មានភាពល្អប្រើសើរជាងមុនខ្លាំង។ កំណែនេះនាំមកនូវមុខងារដូចជា Modules, ការប្រកាស Class, Lexical Block Scoping, Iterators និង Generators, Promises សម្រាប់ Asynchronous Programming, Destructuring Pattern, Proper Tail Call (PTC)។ បន្ថែមពីលើនេះទៀត កំណែនេះក៏សាប់ផត Data Abstractions ដូចជា Map, Sets និង Array Binary Numeric Values, Unicode Supplemental Characters និង RegEx បន្ថែមទៀត។

អ៊ីកម៉ា2016 — កំណែនេះគេលែងហៅអ៊ីកម៉ា 7 ហើយដោយហៅតាមឆ្នាំវិញ។ គេសរសេរលើ Github ជាឯកសារអក្សរធម្មតាដែលធ្វើចេញពីកំណែមុន។ ចាប់ពីកំណែនេះទៅនឹងមានបញ្ចេញ​មុខងារថ្មីក៏ដូចជាកែប័កជារៀងរាល់ឆ្នាំ។ កំណែអ៊ីកម៉ា 7 នេះរួមមាន Emarkup, Ecmarkdown, Grammarkdown, បន្ថែមមុខងារជាច្រើនចូល Array.prototype ដែលគេហៅថា includes និង​ចុងក្រោយ Exponentiation​ Operator (a**b មានន័យថា a ស្វ័យគុណ b)។

អ៊ីកម៉ា2017 — ក្នុងកំណែនេះគេបានបញ្ចូល Async Functions (Async — Await), Shared Memory និង Atomics រួមជាមួយការធ្វើឲ្យភាសា និងបណ្ណាល័យប្រសើរឡើង កែប័ក និងអាប់ដែតមួយចំនួនទៀត។ កំណែនេះក៏មានផងដែរស្តាទិចមេតូតរបស់ Object ដូចជា Object.values (បម្លែង Object ទៅជា Array<Properties​ របស់ Object>), Object.entries (បម្លែង Properties​ របស់ Object ទៅជា [Key, Value]) និង Object.getOwnPropertyDescriptors (សម្រាប់ទាញយក Own Property Descriptor របស់ Object)។

អ៊ីកម៉ា2018 — សាប់ផត Asynchronous Iterators ដោយប្រើ AsyncIterator Protocol និង Async Generators, ថែមសាប់ផង RegEx មួយចំនួនបន្ថែមទៀត Object Rest និង Spread Properties។​

អ៊ីកម៉ា2019 — គេបន្ថែម Build-In Functions គឺ Flat និង FlatMap សម្រាប់ Array.prototype, Object.fromEntries, ថែម trimStart និង trimEnd សម្រាប់ String.prototype, ប្ដូរ Syntax ខ្លះដើម្បីឲ្យត្រូវជាមួយ JSON, ធ្វើឲ្យ Array.prototype.sort ប្រើសើរឡើង, JSON.stringify ដែលរីធើន UTF-8 ដែលមានទម្រង់ត្រឹមត្រូវជាមុន និងធ្វើឲ្យ Function.prototype.toString ប្រសើរជាងមុន។

អ៊ីកម៉ាបន្ទាប់ (ESNext) — ជាអ៊ីកម៉ាដែលគ្រោងនឹងចេញនៅឆ្នាំបន្តមកទៀត។ សំណើរ ការត្រួតពិនិត្យ និងតេស្ដ ហើយបញ្ចេញជាផ្លូវការ។

###សរុបសេចក្ដី ថ្ងៃនេះយើងបានមកមើលដោយសង្ខេបៗពីកំណែអ៊ីកម៉ានីមួយៗ ហើយខ្ញុំសង្ឃឹមថាដូចខ្ញុំដែរអ្នកទាំងអស់គ្នាបន្ទាប់ពីបានអាន (ខ្ញុំវិញបន្ទប់ពីបានសរសេរ) អត្ថបទមួយនេះហើយបានដឹងកាន់តែច្បាស់ទៀតពីអ៊ីកម៉ាស្ក្រីបត៍។ ហើយសង្ឃឹមថាខ្ញុំនឹងអាចសរសេរលម្អិតពីកំណែរនីមួយៗដោយមានកូដមកបង្ហាញឲ្យកាន់តែច្បាស់ទៀត។ អរគុណទាំងអស់គ្នាដែរបានអាន ហើយបើសិនគិតថាអត្ថបទនេះជួយបានខ្លះដែរ សូមកុំរារែកក្នុងការចែករំលែក និងណែនាំដល់គ្នាយើង។ បាយបាយ ឡាសិនហៀលាសិនហើយ៕

ចំនួនអាន៖ 25
ចែករំលែក៖
រូបភាពជ្រើសរើស
កំពុងឡូដ...
អត្ថបទ​ពេញនិយម
Article's thumbnail

ការប្រើប្រាស់ Dependency ក្នុងការ​សរសេរសូហ្វវែរ៍

Article's thumbnail

ដំណើរកម្សាន្តបោះតង់ និងឡើងជួរភ្នំឱរ៉ាល់របស់ខ្ញុំ

Article's thumbnail

ពេលធ្វើ Software Project មិនគួររំលងរបស់ទាំងអស់នេះ

Article's thumbnail

មានអ្វីកើតឡើងពេល Apple ប្ដូរមក ARM?

Article's thumbnail

អ្វីទៅ UX/UI?

អត្ថបទ​ថ្មីៗ
Article's thumbnail

ការប្រើប្រាស់ Dependency ក្នុងការ​សរសេរសូហ្វវែរ៍

Article's thumbnail

លាហើយបណ្ដាញសង្គម

Article's thumbnail

រឿងដែលកំពុងតែកើតឡើងមកលើ Intel

Article's thumbnail

ចាវ៉ាស្ក្រីបត៍ក្នុងប្រៅស៍ស័រ

Article's thumbnail

គួរប្រើ Storage មួយណាសម្រាប់វែបសាយ?

You've reached singularity, the beginning of time!