Неравенство по значение и тип в JavaScript
Освен оператора != съществува и
оператор !==, който взема предвид типа при
сравнението. Нека разгледаме разликите между
тях с примери.
Нека с помощта на оператора != се сравняват
две числа 3. Този оператор сравнява
стойностите дали са НЕ равни. Тъй като
нашите стойности всъщност са равни, то
условието ще бъде ложно:
if (3 != 3) {
console.log('+++');
} else {
console.log('---'); // ще се изпълни това
}
Нека сега една от нашите стойности бъде
в кавички. В този случай операторът !=
все пак ще ги счита за равни (тъй като стойността съвпада,
а типът не е важен за този оператор)
и отново условието ще бъде ложно:
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('---');
}
Без да стартирате кода, определете какво ще се изведе в конзолата:
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 = 2;
if (test1 !== test2) {
console.log('+++');
} else {
console.log('---');
}