მნიშვნელობისა და ტიპის ტოლობა JavaScript-ში
დავუშვათ, გსურთ შეადაროთ ისე, რომ ბრჭყალებში მოქცეული რიცხვი არ იყოს ტოლი იმავე რიცხვის ბრჭყალების გარეშე. სხვა სიტყვებით რომ ვთქვათ, გსურთ შედარება ისე, რომ იგი მოხდეს არა მხოლოდ მნიშვნელობით, არამედ მონაცემთა ტიპითაც.
ამისთვის ოპერატორი == უნდა შეიცვალოს
ოპერატორით ===. შემდეგ
მაგალითში სტრიქონის '3' და
რიცხვის 3 შედარებისას პირობა იქნება მცდარი,
რადგან ცვლადები, თუმცა ტოლია მნიშვნელობით,
მაგრამ არ არის ტოლი ტიპით:
if ('3' === 3) {
console.log('+++');
} else {
console.log('---'); // ეს შესრულდება
}
ხოლო ორი სტრიქონის '3'
შედარებისას პირობა იქნება ჭეშმარიტი:
if ('3' === '3') {
console.log('+++'); // ეს შესრულდება
} else {
console.log('---');
}
ასევე, როგორც რიცხვების შედარებისას:
if (3 === 3) {
console.log('+++'); // ეს შესრულდება
} else {
console.log('---');
}
ოპერატორ ==-სა და ოპერატორ
===-ს შორის განსხვავება
გამოიხატება ზუსტად მაშინ, როდესაც
მნიშვნელობები ერთნაირია, მაგრამ განსხვავებული ტიპის მონაცემებია.
დანარჩენ შემთხვევებში ეს ოპერატორები მუშაობენ
ერთნაირად. მაგალითად, სხვადასხვა
რიცხვის შედარებისას, რა თქმა უნდა, გამოიყვანს '---'-ს:
if (2 === 3) {
console.log('+++');
} else {
console.log('---'); // ეს შესრულდება
}
კოდის გაშვების გარეშე, დაადგინეთ, რა დაიწერება კონსოლში:
let test1 = '3';
let test2 = '3';
if (test1 == test2) {
console.log('+++');
} else {
console.log('---');
}
კოდის გაშვების გარეშე, დაადგინეთ, რა დაიწერება კონსოლში:
let test1 = '3';
let test2 = '3';
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}
კოდის გაშვების გარეშე, დაადგინეთ, რა დაიწერება კონსოლში:
let test1 = 3;
let test2 = '3';
if (test1 == test2) {
console.log('+++');
} else {
console.log('---');
}
კოდის გაშვების გარეშე, დაადგინეთ, რა დაიწერება კონსოლში:
let test1 = 3;
let test2 = '3';
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}
კოდის გაშვების გარეშე, დაადგინეთ, რა დაიწერება კონსოლში:
let test1 = 3;
let test2 = 3;
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}