Skip to content

Latest commit

 

History

History
72 lines (57 loc) · 2.22 KB

plus_operator.md

File metadata and controls

72 lines (57 loc) · 2.22 KB

Использование унарного оператора + для приведения типов

Вопрос

Что будет выведено в консоль при выполнении следующего кода:

(function() {
	'use strict';

	var num = 3;
	num += '2';
	num = +num;
	console.log(num);
})();

Ответ

Число 32.

Оператор + может быть как унарным, так и бинарным:

// Унарный оператор +
var num = +'32'; // число 32

// Бинарный оператор +
var sum = 2 + 3; // число 5

var str = 2 + '3'; // строка '23'

Унарный оператор + используется для приведения типов - с помощью него можно перевести строку, содержащую только числовые символы в число:

var num = '32'; // num === '32'
typeof num; // string

num = +num; // Перевод строки в число, num === 32
typeof num; // number

Унарный + может переводить в числа не только строки, но и

  • null - +null === 0
  • true - +true === 1
  • false - +false === 0
  • массивы, состоящие из одного элемента - +['1'] === 1 и +[2] === 2

В отличие от других способов приведения значения к числу унарный + не работает со строками, содержащими нечисловые символы:

// Унарный плюс не справился
var num1 = +'2a',  // NaN
	num2 = +'a2';  // NaN

// parseInt справился
var num3 = parseInt('2a'),  // 2
	num4 = parseInt('a2'); // NaN

Итог

(function() {
	'use strict';

	// Инициализации переменной
	var num = 3; // num === 3

	// Добавление строки к числу
	// Тип данных в переменной num меняется на string
	num += '2'; // num === '32'

	// Оператор + конвертирует строку в число или NaN
	num = +num; // num === 32
	
	console.log(num); // 32
})();