Игра на «Морской Бой» на JavaScript: «Простая Игра» и «Игра для Двоих»
Yutex - Платный хостинг PHP.
Advego.ru - система покупки и продажи контента для сайтов, форумов и блогов

Технические фишки инфобизнеса 2014

Статьи для сайтов!!!
Типы данных - Оператор typeof Равенство == - Преобразование  типов Строгое равенство - Три знака равно

Оператор равенства == в JavaScript - Преобразование и сравнение типов

Количество просмотров: 391

Как Вы знаете символ « = » в Javascript означает «присвоить».

А символ « == » - оператор проверки равенства или неравенства различных типов данных. Именно об операторе равенства будет идти речь на этой странице и о том, как поисходит преобразование типов в Javascript.

Два значения относятся к одному типу

Сначала рассмотрим пример, когда два сравниваемых значения относятся к одному типу (строка и строка, число и число и т.д.).

var x = 1;
var y = 2;

if (x == y){
console.log(true);
}
else{
console.log(false);
}

var a = "Эхх...";
var b = "Эхх...";


if (a == b){
console.log(true);
}
else{
console.log(false);
}

Здесь все просто: два числа либо равны, либо нет. Со строками тоже: если набор символов в них совпадает, то они равны.

Два значения относятся к разным типам - Число и Строка

Как сравнить два операнда, если они относятся к разным типам?

Javascript имеет набор правил, согласно которым происходит преобразование типов (это когда одно из сравниваемых значений преобразовывается к типу другого значения, после чего происходит их сравнение).

Итак, начнем с самого простого сравнения - числа и строки. При этом Javascript преобразует строку в число.

var x = 99;
var y = "99";

if (x == y){
console.log(true);
}
else{
console.log(false);
}

Сравнение числа и строки

 

- - - - - - - - - - консоль браузера - - - - - - - - - -

true

При таком сравнении Javascript стремиться преобразовать строку в число. После этого сравниваются числа.

Число и Строка - NaN

Рассмотрим другую ситуацию сравнения числа и строки.

Если Javascript не удается преобразовать строку в число, то вместо строки мы увидим NaN.

var x = 99;
var y = "Эхх...";

if (x == y){
console.log(true);
}
else{
console.log(false);
}

Сравнение числа и строки - NaN

 

- - - - - - - - - - консоль браузера - - - - - - - - - -

false

Здесь при преобразовании, типов строку не удается привести к числовому значению, поэтому Javascript считает ее «не числом», т.е. NaN. При сравнении числа с NaN Javascript выдает false.

Булевы значения и числа

Для начала сравним булево значение с числом.

Следует знать: при сравнении булевых значений с другими типами данных булево значение всегда преобразуется в число.

Здесь важно запомнить правило: true преобразуется в 1, false в 0.

var x = 1;
var y = true;

if (x == y){
console.log(true);
}
else{
console.log(false);
}

Булево значение и число

 

- - - - - - - - - - консоль браузера - - - - - - - - - -

true

Булевы значения и строки

Сравним булево значение со строкой. При этом имеют место два преобразования.

var x = "1";
var y = true;

if (x == y){
console.log(true);
}
else{
console.log(false);
}

Булево значение и строка

 

- - - - - - - - - - консоль браузера - - - - - - - - - -

true

При сравнении булевых значений со строками преобразование типов в Javascript происходит следующим образом:

  • Шаг 1 - Булево значение «превращается» в число.
  • Шаг 2 - Строка «превращается» в число, либо в NaN.
  • Шаг 3 - Сравнение двух чисел.

По перечисленным правилам сравнения и преобразования типов можно правильно определить результат проверки любого равенства.

Ниже рассмотрим еще два варианта равенств, которые могут встречаться и о которых полезно иметь представление.

Сравнение null и undefined. Пустая строка и число

1. Что дает сравнение null и undefined?

2. Каков результат проверки равенства пустой строки и числа?

Комментарии...

  • сравнение null и undefined: хотя это разные значение (об этом здесь), но в сравнении они дают результат true, так как оба «говорят» об одном и том же - «отсутствие значения» (т.е. отсутствующий (не имеющий значения) объект и переменная без значения).
  • Что касается сравнения пустой строки с числом, то первая в процессе преобразования дает 0, который в сравнении с любым числом выдаст false.

Если же сравнивать NaN с null или с undefined, то оба результата ЛОЖНЫ - false, так как NaN, как Вы помните, не равно даже самому себе.

Теперь Вы знаете, как при помощи оператора проверки равенства « == » происходит сравнение различных типов данных в Javascript.

Частота просмотра уроков
JavaScript
Дизайн сайтов
Типы данных - Оператор typeof Строгое равенство - Три знака равно

Ваши комментарии:

Комментариев нет...

Добавить комментарий:

Ваше Имя:*
Комментарий:*
Ответьте на вопрос: *
Сколько дней в Високосном году?
* - поля обязательные для заполнения.
ПОИСК ПО САЙТУ:

Моё имя Антон. Связаться со мною Вы можете по e-mail: averagev@mail.ru