បើយើងលើកយកបញ្ហាដោះស្រាយរកប្រាក់ចំណេញមកវិភាគមើលម្តងទៀត យើងឃើញថា ដើម្បីរកប្រាក់ចំណេញ យើងត្រូវមានព័ត៌មានពីរគឺ ថ្លៃលក់ និង ថ្លៃទិញ ពីព្រោះ ប្រាក់ចំណេញ គឺជាផលដករវាង ថ្លៃលក់ និង ថ្លៃទិញ ។ នៅក្នុងវិស័យព័ត៌មានវិទ្យា ព័ត៌មានចាំបាច់សម្រាប់យកមកដោះស្រាយបញ្ហាទាំងនោះត្រូវហៅថា ទិន្នន័យ (data) ។ ដូចនេះការដោះស្រាយបញ្ហារកប្រាក់ចំណេញកន្លងមក គឺជាការយកទិន្នន័យដែលជា ថ្លៃលក់ និងទិន្នន័យដែលជា ថ្លៃទិញ មកធ្វើប្រមាណវិធីដក។
នៅក្នុងការសរសេរកម្មវិធីជាភាសា JavaScript ដើម្បីឲ្យមានទិន្នន័យចាំបាច់ទាំងនោះ យើងចាំបាច់ត្រូវតែសរសេរចេញបញ្ជា តម្រូវឲ្យកំព្យូទ័របង្កើតទិន្នន័យទាំងនោះទុកនៅក្នុង សតិ (memory) របស់វាផ្ទាល់តែម្តង។ ហើយការសរសេរកម្មវិធីបង្កើតទិន្នន័យផ្សេងៗ នៅក្នុងភាសា JavaScript គឺត្រូវធ្វើឡើងដូចខាងក្រោមនេះ៖
1000
ខាងលើនេះ គឺជាកម្មវិធីជាភាសា JavaScript ជាអប្បបរិមា ដែលនៅក្នុងនោះមានបញ្ជាតម្រូវឲ្យបង្កើតទិន្នន័យ ដែលជាលេខ 1000 ទុកនៅក្នុងសតិរបស់កំព្យូទ័រ។
នៅក្នុងភាសា JavaScript ផ្នែកនៃសតិរបស់កំព្យូទ័រ ដែលមានព័ត៌មាននៅក្នុងនោះ ត្រូវហៅថា អថេរ (variable) ។ ដូចនេះការសរសេរលេខ 1000 នៅក្នុងកម្មវិធីខាងលើ គឺជាការបង្កើតអថេរមួយដែលជាផ្នែកតូចមួយនៃសតិរបស់កំព្យូទ័រដើម្បីរក្សាទុកនូវទិន្នន័យមួយដែលជាលេខ 1000 ។ ជាទូទៅ យើងអាចប្រៀបប្រដូចអថេរទៅនឹងប្រអប់មួយដែលមានទិន្នន័យនៅក្នុងនោះ។ មួយវិញទៀត ទិន្នន័យដែលត្រូវរក្សាទុកនៅក្នុងអថេរ ត្រូវគេអោយឈ្មោះថាជា តំលៃ (value) របស់អថេរ។
ក៏ប៉ុន្តែ អថេរដែលត្រូវបានបង្កើតឡើងដូចនៅក្នុងកម្មវិធីខាងលើនេះ ត្រូវបានលុបចេញទៅវិញជាបន្ទាន់ពីក្នុងសតិរបស់កំព្យូទ័រ គឺយើងមិនអាចយកវាទៅប្រើការធ្វើអ្វីផ្សេងទៀតបានឡើយ។ ហើយដើម្បីកុំឲ្យអថេរដែលត្រូវបានបង្កើតរួចហើយនោះ ត្រូវលុបចេញទៅវិញ យើងត្រូវដាក់ឈ្មោះឲ្យវា ដោយត្រូវធ្វើដូចខាងក្រោមនេះ៖
var sale = 1000;
នៅលើបន្ទាត់ទី 1 ការសរសេរថា var sale = 1000; គឺជាបញ្ជាតម្រូវឲ្យបង្កើតអថេរដែលមានតំលៃជាលេខ 1000 និងដែលមានឈ្មោះជាពាក្យថា sale ។
យើងក៏ត្រូវធ្វើការកត់សម្គាល់ផងដែរថា សញ្ញាស្មើ (=) នៅក្នុងភាសា JavaScript គឺជាសញ្ញាប្រើសម្រាប់ ភ្ជាប់ (bind) ឈ្មោះ (identifier) ទៅនឹងអថេរ គឺមិនមែនជាសញ្ញាប្រើសម្រាប់បញ្ជាក់លទ្ធផល បានមកពីការធ្វើប្រមាណវិធីឡើយ។
ឈ្មោះរបស់អថេរអាចជាពាក្យជាភាសាណាក៏បានដែរ ឲ្យតែឈ្មោះទាំងនោះ ត្រូវចាប់ផ្តើមដោយតួអក្សរ មិនមែនជាលេខ។ ក៏ប៉ុន្តែយើងអាចប្រើសញ្ញា _ ជាតួអក្សរទីមួយបាន។ ម៉្យាងទៀត ឈ្មោះរបស់អថេរមិនត្រូវមានអក្សរដកឃ្លា (space) នៅក្នុងនោះឡើយ ហើយឈ្មោះទាំងនោះ ត្រូវតែខុសពី ពាក្យពិសេស (keyword) មួយចំនួន ដែលមាននៅក្នុងភាសា JavaScript មានដូចខាងក្រោមនេះ
arguments break case catch class const continue debugger default delete do else enum eval export extends false finally for function if implements import in instanceof interface let new null package private protected public return static super switch this throw true try typeof var void while with yield
ចំពោះឈ្មោះរបស់អថេរ ដែលជាអក្សរឡាតាំង ឈ្មោះជាអក្សរធំខុសពីឈ្មោះជាអក្សរតូច ដូចជា NUMBER, Number, number គឺជាឈ្មោះខុសៗគ្នា។ ឈ្មោះរបស់អថេរគួរតែជាពាក្យមានន័យអ្វីម៉្យាង ដែលស្តែងចេញពីតួនាទីរបស់អថេរនោះ។
តាមការសង្កេតជាក់ស្តែង ការភ្ជាប់ឈ្មោះណាមួយទៅនឹងអថេរណាមួយ ស្រដៀងនឹងការតាងអញ្ញតនៅក្នុងគណិតវិទ្យាដែរ។ មួយវិញទៀត ក្រោយពីអថេរមួយមានឈ្មោះរួចហើយ គ្រប់ការយកឈ្មោះរបស់អថេរនោះទៅប្រើ នៅពេលក្រោយៗទៀត គឺជាការយកអថេរនោះទៅប្រើផ្ទាល់តែម្តង។
នៅក្នុងកម្មវិធីខាងលើនេះ ក្រោយពីឈ្មោះ sale ត្រូវបានភ្ជាប់ទៅនឹងអថេរដែលមានតំលៃជាលេខ 1000 រួចមក អថេរនោះអាចស្ថិតនៅក្នុងសតិរបស់កំព្យូទ័រ រហូតដល់ចប់កម្មវិធី។ ក៏ប៉ុន្តែទោះជាយ៉ាងណាក៏ដោយ ក៏យើងនៅតែមិនអាចមើលឃើញតំលៃលេខ 1000 របស់អថេរនោះដែរ គឺវាមានតែនៅក្នុងសតិរបស់កំព្យូទ័រតែប៉ុណ្ណោះ។ ហើយបើយើងចង់មើលឃើញតំលៃលេខនោះ យើងត្រូវតែធ្វើដូចខាងក្រោមនេះ៖
var sale = 1000;
console.log(sale);
នៅលើបន្ទាត់លេខ 2 ការសរសេរថា console.log(sale); គឺជាបញ្ជាតម្រូវឲ្យសរសេរបង្ហាញតំលៃលេខរបស់អថេរឈ្មោះ sale នៅលើ console របស់ Chrome browser ។
យើងឃើញថាការដាក់ឈ្មោះឲ្យអថេរ គឺជាប្រការដែលធ្វើឲ្យអថេរអាចស្ថិតនៅក្នុងសតិរបស់កំព្យូទ័រ រហូតដល់ចប់កម្មវិធី ហើយវាក៏ជាប្រការដែលធ្វើឲ្យយើងអាចយកអថេរនោះទៅប្រើការធ្វើអ្វីផ្សេងៗទៀតបានដែរ។ ក៏ប៉ុន្តែ លើសពីនេះទៀត ក្រៅពីការដាក់ឈ្មោះតែមួយ ឲ្យទៅអថេរណាមួយ យើងក៏អាចដាក់ឈ្មោះជាច្រើនឲ្យទៅអថេរនោះ ដោយធ្វើដូចខាងក្រោមនេះ៖
var sale = 1000;
var total = sale;
console.log(sale);
console.log(total);
នៅលើបន្ទាត់លេខ 2 ការសរសេរថា var total = sale; គឺជាបញ្ជាតម្រូវឲ្យភ្ជាប់ឈ្មោះ total មួយទៀតទៅនឹងអថេរដែលមានឈ្មោះថា sale មួយរួចទៅហើយ។ ជាលទ្ធផល អថេរដែលមានតំលៃលេខ 1000 មានឈ្មោះរហូតដល់ទៅពីរ គឺឈ្មោះមួយជា sale និងឈ្មោះមួយទៀតជា total ។
ឈ្មោះរបស់អថេរមានតួនាទីសំខាន់ណាស់ សម្រាប់សម្គាល់ទីតាំងរបស់អថេរនៅក្នុងសតិរបស់កំព្យូទ័រ ហើយបើគ្មានឈ្មោះនោះទេ យើងនឹងគ្មានមធ្យោបាយណាមួយ ដែលអនុញ្ញាតឲ្យយើងអាចយកអថេរទៅប្រើប្រាស់នៅទីកន្លែងផ្សេងៗទៀតបានឡើយ។ ក៏ប៉ុន្តែផ្ទុយទៅវិញ យើងអាចដកយកឈ្មោះរបស់អថេរណាមួយ ទៅភ្ជាប់នឹងអថេរផ្សេងទៀតបាន ដោយធ្វើដូចខាងក្រោមនេះ៖
var sale = 1000;
sale = 2000;
console.log(sale);
នៅលើបន្ទាត់លេខ 2 ការសរសេរថា sale = 2000; គឺជាបញ្ជាតម្រូវឲ្យយកឈ្មោះ sale ដែលជាឈ្មោះរបស់អថេរមានតំលៃជាលេខ 1000 រួចទៅហើយនោះ ទៅភ្ជាប់នឹងអថេរដែលមានតំលៃលេខ 2000 វិញម្តង។ ជាលទ្ធផល អថេរមានតំលៃលេខ 1000 ត្រូវបាត់ឈ្មោះ និងត្រូវលុបចេញពីក្នុងសតិរបស់កំព្យូទ័រដោយស្វ័យប្រវត្តិ។ ការលុបអថេរដោយស្វ័យប្រវត្តិតាមរបៀបនេះ គឺជា យន្តការបោសសំអាត (garbage collection) ដែលតែងតែកើតមានឡើងជារឿយៗ នៅពេលណាដែលអថេរទាំងឡាយត្រូវបាត់ឈ្មោះ។
ទន្ទឹមនឹងនេះ យើងក៏ត្រូវធ្វើការកត់សម្គាល់ផងដែរថា អថេរមួយត្រូវលុបចេញពីក្នុងសតិរបស់កំព្យ័ទ័រ តែក្នុងករណីណាដែលអថេរនោះត្រូវបាត់ឈ្មោះអស់តែប៉ុណ្ណោះ តែបើអថេរនោះមានឈ្មោះលើសពីមួយ ការយកឈ្មោះណាមួយទៅភ្ជាប់នឹងអថេរផ្សេងទៀត នឹងមិនបណ្តាលឲ្យអថេរនោះត្រូវលុបចេញពីក្នុងសតិរបស់កំព្យូទ័រឡើយ ពីព្រោះនៅមានឈ្មោះផ្សេងៗទៀតនៅជាប់នឹងអថេរនោះ។ ពិនិត្យកម្មវិធីខាងក្រោមនេះ៖
var sale = 1000;
var total = sale;
sale = 2000;
console.log(sale);
console.log(total);
នៅលើបន្ទាត់លេខ 3 ការសរសេរថា sale = 2000; គឺជាបញ្ជាតម្រូវឲ្យដកយកឈ្មោះ sale ដែលជាឈ្មោះរបស់អថេរមានតំលៃលេខ 1000 រួចទៅហើយនោះ ទៅភ្ជាប់នឹងអថេរដែលមានតំលៃលេខ 2000 វិញម្តង។ ប្រការនេះមិនបានធ្វើឲ្យអថេរដែលមានតំលៃលេខ 1000 ត្រូវលុបចេញពីក្នុងសតិរបស់កំព្យូទ័រឡើយ ពីព្រោះនៅមានឈ្មោះ total មួយទៀត នៅជាប់នឹងអថេរនោះ៕