Роўнасць па значэнні і тыпу ў 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('---');
}