Operator និងលក្ខខណ្ឌ
មាតិកា
- Operator ធ្វើការងារ
- ការប្រៀបធៀប និងភាពស្មើគ្នា
- Truthy និង Falsy
- if, else if, else
- switch
- Logical Operator៖ &&, ||, !
- តម្លៃលំនាំដើមដែលមានសុវត្ថិភាព៖ ?? និង ?.
- Ternary Operator
- រូបមន្ត៖ ការស្វាគមន៍តាមពេលវេលាក្នុងថ្ងៃ
- សាកល្បងដោយខ្លួនឯង
1. Operator ធ្វើការងារ
Operator គឺជានិមិត្តសញ្ញាដែលផ្សំតម្លៃឲ្យទៅជាតម្លៃថ្មី។ អ្នកបានប្រើ + និង = រួចហើយ។ នេះជា arithmetic operator៖
| Operator | អត្ថន័យ | ឧទាហរណ៍ | លទ្ធផល |
|---|---|---|---|
+ | បូក | 7 + 2 | 9 |
- | ដក | 7 - 2 | 5 |
* | គុណ | 7 * 2 | 14 |
/ | ចែក | 7 / 2 | 3.5 |
% | សំណល់ | 7 % 2 | 1 |
** | ស្វ័យគុណ | 7 ** 2 | 49 |
Operator សំណល់ % មានប្រយោជន៍ជាងអ្វីដែលវាមើលទៅ។ n % 2 === 0 ប្រាប់អ្នកថា n ជាលេខគូឬអត់។
Operator អាចផ្សំជាមួយ assignment ជាផ្លូវកាត់៖
let score = 10;
score += 5; // ដូច score = score + 5 -> 15
score -= 3; // 12
score++; // បូកមួយ -> 13
console.log(score);
2. ការប្រៀបធៀប និងភាពស្មើគ្នា
Comparison operator បង្កើត boolean (true ឬ false)៖
console.log(5 > 3); // true
console.log(5 <= 3); // false
console.log(5 !== 3); // true: "មិនស្មើ"
សម្រាប់ភាពស្មើគ្នា មានពីរកំណែ ហើយភាពខុសគ្នាសំខាន់៖
| Operator | ឈ្មោះ | ឥរិយាបថ |
|---|---|---|
=== | Strict equality | true ប្រសិនបើតម្លៃ និង type ត្រូវគ្នាប៉ុណ្ណោះ |
== | Loose equality | បំប្លែង type មុន បន្ទាប់មកប្រៀបធៀប |
console.log(5 === "5"); // false: number ទល់នឹង string
console.log(5 == "5"); // true: "5" ត្រូវបានបំប្លែងទៅជា 5
console.log(0 == ""); // true (គួរឲ្យភ្ញាក់ផ្អើល)
console.log(null == undefined); // true
console.log(null === undefined); // false
Loose equality ធ្វើតាមច្បាប់បំប្លែងដ៏ស្មុគស្មាញដែលមានមនុស្សតិចតួចចងចាំបាន។ ប្រើ === និង !== ជានិច្ច។ ស៊េរីទាំងមូលនេះធ្វើដូច្នោះ ហើយច្បាប់ style របស់ក្រុមភាគច្រើនតម្រូវវា។
3. Truthy និង Falsy
ប្រយោគ if ត្រូវការលក្ខខណ្ឌមួយ។ នៅពេលលក្ខខណ្ឌមិនមែនជា boolean JavaScript បំប្លែងវា។ គ្រប់តម្លៃសុទ្ធតែជា truthy (ដើរតួដូច true) ឬ falsy (ដើរតួដូច false)។
មានតម្លៃ falsy តែបន្តិចបន្តួចប៉ុណ្ណោះ។ ទន្ទេញបញ្ជីនេះ៖
false, 0, -0, 0n, "", null, undefined, NaN
អ្វីៗផ្សេងទៀតគឺ truthy រួមទាំង "0", " ", [] (array ទទេ) និង {} (object ទទេ)។ ពិនិត្យដោយ Boolean()៖
console.log(Boolean("Dara")); // true
console.log(Boolean("")); // false
console.log(Boolean(0)); // false
console.log(Boolean([])); // true <-- array ទទេគឺ truthy
Truthiness ផ្តល់វិធីខ្លីដើម្បីសួរថា "តើមានតម្លៃឬទេ?" ឧទាហរណ៍ if (name) ជា true នៅពេល name ជា string ដែលមិនទទេ។ ត្រូវប្រយ័ត្ននៅពេល 0 ជាតម្លៃត្រឹមត្រូវ៖ if (count) ជា false នៅពេល count ជា 0។
4. if, else if, else
ប្រយោគ if ដំណើរការ block កូដតែនៅពេលលក្ខខណ្ឌជា truthy ប៉ុណ្ណោះ៖
const age = 17;
if (age >= 18) {
console.log("Adult");
} else if (age >= 13) {
console.log("Teenager");
} else {
console.log("Child");
}
វាបោះពុម្ព Teenager។ JavaScript ពិនិត្យលក្ខខណ្ឌពីលើចុះក្រោម ហើយដំណើរការ block ដំបូង ដែលត្រូវគ្នា រួចរំលងដែលនៅសល់។ else នៅចុងបញ្ចប់ចាប់យកអ្វីៗផ្សេងទៀត ហើយវាជាជម្រើស។
ប្រើដង្កៀបអង្កាញ់ { } ជានិច្ច សូម្បីសម្រាប់តែមួយបន្ទាត់។ វាការពារកំហុសពេលអ្នកបន្ថែមបន្ទាត់ទីពីរនៅពេលក្រោយ។
5. switch
នៅពេលអ្នកប្រៀបធៀបតម្លៃមួយជាមួយជម្រើសជាក់លាក់ច្រើន switch ស្អាតជាងខ្សែ else if វែង៖
const day = "Sat";
switch (day) {
case "Sat":
case "Sun":
console.log("Weekend");
break;
case "Fri":
console.log("Almost the weekend");
break;
default:
console.log("Weekday");
}
វាបោះពុម្ព Weekend។ case នីមួយៗប្រៀបធៀបដោយ ===។ break បញ្ចប់ switch; បើគ្មានវា JavaScript បន្តដំណើរការចូលទៅ case បន្ទាប់ ("fall through")។ នៅទីនេះ "Sat" គ្មាន break ដោយចេតនា ដូច្នេះវាចែករំលែកកូដជាមួយ "Sun"។ default ដំណើរការនៅពេលគ្មានអ្វីត្រូវគ្នា។
ប្រើ switch សម្រាប់បញ្ជីតម្លៃជាក់លាក់។ ប្រើ if សម្រាប់ជួរដូចជា hour < 12។
6. Logical Operator៖ &&, ||, !
Logical operator ផ្សំលក្ខខណ្ឌ៖
| Operator | ឈ្មោះ | អត្ថន័យ |
|---|---|---|
&& | AND | ពិត នៅពេល ទាំងសងខាង ពិត |
|| | OR | ពិត នៅពេល យ៉ាងហោចណាស់ម្ខាង ពិត |
! | NOT | បត់ពី true ទៅ false និង false ទៅ true |
const hour = 14;
const isWorkHours = hour >= 9 && hour < 17;
console.log(isWorkHours); // true
console.log(!isWorkHours); // false
Operator ទាំងនេះមានលក្ខណៈពិសេសមានប្រយោជន៍មួយ៖ ពួកវាត្រឡប់មួយក្នុងចំណោម តម្លៃ ទាំងពីររបស់ពួកវា មិនមែនត្រឹមតែ true ឬ false ទេ ហើយពួកវាឈប់មុនកំណត់ ("short circuit")។ || ត្រឡប់តម្លៃ truthy ដំបូង ហើយ && ត្រឡប់តម្លៃ falsy ដំបូង៖
const nickname = "";
console.log(nickname || "Friend"); // "Friend": "" ជា falsy ដូច្នេះប្រើតម្លៃបម្រុង
console.log(true && "Shown"); // "Shown"
|| ច្រើនត្រូវបានប្រើសម្រាប់តម្លៃលំនាំដើម ប៉ុន្តែវាមានបញ្ហា៖ វាចាត់ទុក 0 និង "" ជា "បាត់" ទោះបីជាចម្លើយពិតក៏ដោយ។ ផ្នែកបន្ទាប់ដោះស្រាយរឿងនេះ។
7. តម្លៃលំនាំដើមដែលមានសុវត្ថិភាព៖ ?? និង ?.
Nullish coalescing (??) ផ្តល់តម្លៃលំនាំដើមតែនៅពេលផ្នែកខាងឆ្វេងជា null ឬ undefined ប៉ុណ្ណោះ។ វាទុក 0, "" និង false ឲ្យនៅដដែល៖
const likes = 0;
console.log(likes || 10); // 10 (ខុស: 0 ជាចំនួនពិត)
console.log(likes ?? 10); // 0 (ត្រឹមត្រូវ)
Optional chaining (?.) អាន property នៃអ្វីមួយដែលប្រហែលជាមិនមាន ដោយសុវត្ថិភាព។ បើគ្មានវា ការអាន property របស់ undefined បញ្ឈប់កម្មវិធីដោយកំហុស៖
const dara = { name: "Dara", address: undefined };
// console.log(dara.address.city); // TypeError: Cannot read properties of undefined
console.log(dara.address?.city); // undefined: មិន crash
console.log(dara.address?.city ?? "City not given"); // "City not given"
គូ ?. និង ?? ជារឿងធម្មតា៖ អានអ្វីមួយដែលប្រហែលជាបាត់ បន្ទាប់មកផ្តល់តម្លៃបម្រុង។ (Object ត្រូវបានពន្យល់ពេញលេញក្នុងជំពូកទី 6។)
8. Ternary Operator
Ternary operator គឺជា if/else ខ្លីដែលបង្កើតតម្លៃមួយ។ វាមានបីផ្នែក៖ condition ? valueIfTrue : valueIfFalse។
const projectCount = 1;
const label = projectCount === 1 ? "project" : "projects";
console.log(`${projectCount} ${label}`); // "1 project"
ប្រើវាសម្រាប់ជម្រើសសាមញ្ញរវាងតម្លៃពីរ។ ប្រសិនបើអ្នក nest ternary ឬបន្ទាត់ក្លាយជាវែង សូមប្រើ if ធម្មតាជំនួសវិញ។ ភាពងាយអានសំខាន់ជាងការសន្សំបន្ទាត់។
9. រូបមន្ត៖ ការស្វាគមន៍តាមពេលវេលាក្នុងថ្ងៃ
ទំព័ររបស់ Dara គួរស្វាគមន៍ភ្ញៀវតាមពេលវេលា។ Method new Date().getHours() ត្រឡប់ម៉ោងបច្ចុប្បន្នពី 0 ដល់ 23។ យើងដាក់ការសម្រេចចិត្តក្នុងកូដតូចមួយ៖
const hour = new Date().getHours();
let greeting;
if (hour < 12) {
greeting = "Good morning";
} else if (hour < 18) {
greeting = "Good afternoon";
} else {
greeting = "Good evening";
}
const visitorName = null;
const displayName = visitorName ?? "friend";
console.log(`${greeting}, ${displayName}! Welcome to Dara's page.`);
នៅម៉ោង 9:00 វាបោះពុម្ព Good morning, friend! Welcome to Dara's page. ដោយសារម៉ោងត្រូវបានពិនិត្យពីតូចទៅធំ លំដាប់នៃលក្ខខណ្ឌធ្វើការងារ៖ ប្រសិនបើ hour មិនតិចជាង 12 យើងដឹងរួចហើយថាវាជា 12 ឬច្រើនជាងនេះ ដូច្នេះការធ្វើតេស្តបន្ទាប់ត្រូវការតែ hour < 18។
បន្ថែមកូដដូចគ្នាទៅ js/main.js។ ក្នុង browser វានឹងបោះពុម្ពទៅ Console សិនឥឡូវនេះ។ ក្នុងជំពូកទី 8 អ្នកនឹងបង្ហាញវានៅលើទំព័រផ្ទាល់។
10. សាកល្បងដោយខ្លួនឯង
- គូ ឬសេស។ សរសេរកូដដែលមាន
let number = 7;ដែលបោះពុម្ព"even"ឬ"odd"ដោយប្រើ%និងif/else។ សាកល្បងលេខជាច្រើន។ - Strict ទល់នឹង loose។ ទាយលទ្ធផលនៃ
0 === false,0 == false,"" == 0និងnull === null។ ដំណើរការវា ហើយពិនិត្យ។ - ដាក់ពិន្ទុ។ ដោយមាន
scoreបោះពុម្ពAសម្រាប់ 90 ឡើងទៅBសម្រាប់ 80 ដល់ 89Cសម្រាប់ 70 ដល់ 79 និងTry againសម្រាប់អ្វីដែលទាបជាងនេះ ដោយប្រើelse if។ - ឈ្មោះថ្ងៃក្នុងសប្តាហ៍។ ប្រើ
new Date().getDay()(0 គឺថ្ងៃអាទិត្យ) និងswitchដើម្បីបោះពុម្ពឈ្មោះថ្ងៃនេះ។ បន្ថែមdefaultដើម្បីសុវត្ថិភាព។ - កែតម្លៃលំនាំដើម។ សរសេរ
const volume = 0;បន្ទាប់មកប្រៀបធៀបvolume || 50ជាមួយvolume ?? 50។ ពន្យល់ក្នុងមួយប្រយោគថាមួយណាត្រឹមត្រូវសម្រាប់ការកំណត់កម្រិតសំឡេង។ - បង្រួមដោយ ternary។ សរសេរកូដគូ ឬសេសរបស់អ្នកឡើងវិញជាមួយបន្ទាត់តែមួយដោយប្រើ ternary operator។ កំណែមួយណាងាយអានជាង?
បន្ទាប់ យើងនឹងរៀនពីរបៀបធ្វើការម្តងហើយម្តងទៀតដោយប្រើ loop ដើម្បីឲ្យអ្នកអាចដំណើរការបញ្ជីគម្រោងទាំងមូល ជំនួសឲ្យម្តងមួយតម្លៃ។ បន្តជាមួយ Loop និង Iteration។
ទិញកាហ្វេជូនខ្ញុំ
ចូលចិត្តមេរៀននេះមែនទេ? សូមពិចារណាទិញកាហ្វេជូនខ្ញុំមួយកែវ ដើម្បីគាំទ្រការបង្កើតមាតិកាឥតគិតថ្លៃបន្ថែមទៀត!