პროგრამირების საფუძვლები › დამწყები › ოპერატორები და გამოსახულებები
შედარება: ტოლია თუ არა
ეს თავი CodeQuest Pro-ს ნაწილია
Pro ხსნის სკოლის ყველა კურსს და თამაშის ყველა ლეველს, ვიდეოს და პროექტს. ერთჯერადი გადახდა, გამოწერის გარეშე.
რას ისწავლი
- ექვსი შედარების ოპერატორი და რას აბრუნებს თითოეული
- რატომ ვიყენებთ
===-ს და არა==-ს - როგორ ედარება ერთმანეთს სტრიქონები
კითხვა, რომელსაც პასუხი აქვს: კი ან არა
პროგრამები გამუდმებით სვამს კითხვებს: „მოთამაშემ 100 ქულა დააგროვა?“, „პაროლი სწორია?“. ასეთ კითხვას შედარების ოპერატორი (comparison operator) სვამს. მისი პასუხი ყოველთვის ლოგიკური მნიშვნელობაა: true ან false.
| ოპერატორი | ნიშნავს | მაგალითი | შედეგი |
|---|---|---|---|
=== | ტოლია | 5 === 5 | true |
!== | არ არის ტოლი | 5 !== 3 | true |
> | მეტია | 5 > 3 | true |
< | ნაკლებია | 5 < 3 | false |
>= | მეტია ან ტოლი | 5 >= 5 | true |
<= | ნაკლებია ან ტოლი | 4 <= 3 | false |
let age = 12;
console.log(age === 12); // true
console.log(age !== 12); // false
console.log(age > 10); // true
console.log(age <= 11); // falseშედარების შედეგი ჩვეულებრივი მნიშვნელობაა, ამიტომ შეგიძლია ცვლადში შეინახო: let isTeen = age >= 13;. შემდეგ მოდულში ასეთ მნიშვნელობებს გადაწყვეტილების მისაღებად გამოიყენებ.
ყურადღება მიაქციე, რომ შედარება ცვლადს არ ცვლის. age > 10 მხოლოდ კითხულობს age-ის მნიშვნელობას და პასუხს იძლევა, age კი ისევ 12 რჩება. შედარება კითხვაა და არა ბრძანება.
შედარებები ყველგანაა, სადაც პროგრამა რაღაცას ამოწმებს: საკმარისი ფული გაქვს თუ არა ყიდვისთვის, ჩაწერილი პაროლი ემთხვევა თუ არა შენახულს, მოთამაშემ რეკორდი ხომ არ მოხსნა. ყოველ ასეთ შემთხვევაში ორ მნიშვნელობას ადარებ და true-ს ან false-ს იღებ.
სამი ტოლობის ნიშანი
JavaScript-ში ტოლობის შესამოწმებლად ორი ოპერატორია: მკაცრი === და „რბილი“ ==. რბილი ტოლობა შედარებამდე ცდილობს, მნიშვნელობები ერთ ტიპზე მიიყვანოს, და ამიტომ ხანდახან მოულოდნელ პასუხს იძლევა:
console.log(5 == "5"); // true — რიცხვი და ტექსტი „ტოლად“ ჩათვალა
console.log(5 === "5"); // false — რიცხვი და ტექსტი სხვადასხვაა
console.log(0 == ""); // true — მოულოდნელია!
console.log(0 === ""); // falseმკაცრი === ადარებს ტიპსაც და მნიშვნელობასაც. ის ყოველთვის იმას აკეთებს, რასაც ელი, ამიტომ ამ კურსში მხოლოდ === და !== გამოიყენე.
სტრიქონების შედარება
სტრიქონები სიმბოლო-სიმბოლო, მარცხნიდან ედარება, როგორც სიტყვები ლექსიკონში. ქართული ასოები ანბანის რიგით ლაგდება:
console.log("ანა" < "ბექა"); // true: „ა“ წინ არის „ბ“-ზე
console.log("კატა" === "კატა"); // true
console.log("Cat" === "cat"); // false: დიდი და პატარა ასო სხვადასხვაა
console.log("10" < "9"); // true: „1“ წინ არის „9“-ზე!ბოლო ხაზი ხაფანგია: ორივე მხარე ტექსტია, ამიტომ კომპიუტერი რიცხვებს კი არა, პირველ სიმბოლოებს ადარებს. რიცხვები რიცხვებად შეადარე, ბრჭყალების გარეშე. თუ რიცხვი ტექსტად მოგივიდა, მაგალითად ფორმის ველიდან, ჯერ რიცხვად გადააქციე. როგორ, ამას ამ მოდულის ბოლო თავში ისწავლი.
სცადე თავად
გაუშვი, მერე შეცვალე score-ის მნიშვნელობა ისე, რომ ყველა პასუხი შეიცვალოს.
ხშირი შეცდომები
=ნაცვლად===-ისა. ერთი=მინიჭებაა და არა შედარება:age = 12ცვლადს ცვლის. შედარებისთვის სამი ნიშანი გჭირდება.=>ნაცვლად>=-ისა. „მეტია ან ტოლი“ იწერება>=, ჯერ ნიშანი, მერე ტოლობა.=>სულ სხვა რამეა და შეცდომას გამოიწვევს.- რიცხვები ბრჭყალებში.
"10" < "9"იძლევაtrue-ს. თუ რიცხვს ადარებ, დარწმუნდი, რომ ის ტექსტი არ არის.
სავარჯიშო
ცვლადში temperature ინახება 25. დაბეჭდე სამი პასუხი წარწერებით: არის თუ არა ზუსტად 25, არის თუ არა 30-ზე მეტი და არის თუ არა სულ მცირე 18. უნდა დაიბეჭდოს true, false და true.
💡 მინიშნება
„სულ მცირე 18“ ნიშნავს „18 ან მეტი“, ანუ >=.
✅ ამოხსნის ნახვა
let temperature = 25;
console.log("ზუსტად 25:", temperature === 25);
console.log("30-ზე მეტი:", temperature > 30);
console.log("სულ მცირე 18:", temperature >= 18);მინი-ქვიზი
1რას დაბეჭდავს console.log(7 >= 7);?
>= ნიშნავს „მეტია ან ტოლი“. 7 ტოლია 7-ის, ამიტომ პასუხია true.
2რას დაბეჭდავს console.log(3 === "3");?
მარცხნივ რიცხვია, მარჯვნივ ტექსტი. მკაცრი ტოლობა ტიპსაც ადარებს.
3რას დაბეჭდავს console.log("10" < "9");?
ორივე ტექსტია, ამიტომ პირველი სიმბოლოები ედარება: „1“ წინ არის „9“-ზე.
შეჯამება
- შედარების ოპერატორები:
===,!==,>,<,>=,<=. შედეგი ყოველთვისtrueანfalse-ა. - ტოლობისთვის გამოიყენე მკაცრი
===, რადგან რბილი==ტიპებს ურევს. - სტრიქონები ასო-ასო ედარება, ანბანის რიგით.
- ერთი
=მინიჭებაა, სამი===შედარება.