Процесс преобразования значения из одного типа в другой известен как Приведение типов.

Например: преобразование числа в строку, числа в логическое значение или наоборот.

Чтобы узнать больше о типах данных JavaScript, посетите: https://medium.com/@Nayana22/javascript-journey-hour-1-b94aeb246c18.

- Приведение типа может быть явным и неявным.

A. Явное приведение (т. е. явное приведение типов) обычно достигается с помощью встроенных функций типов данных, таких как: Number(value);

B. Неявное приведение типов происходит внутри, это означает, что JavaScript позаботится об этом, поскольку JavaScript является языком со слабой/слабой типизацией.

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

Примечание. Лучше избегать неявного приведения типов.

вар операндОдин = 40;

вар операнддва = ‘40’;

если (ОперандОдин == ОперандДва){

console.log('оба равны.');

еще

console.log('оба не равны');

- В приведенном выше примере OperandTwo будет автоматически приведен к числу, и мы получим вывод как «оба равны».

если (ОперандОдин === ОперандДва){

console.log('оба равны.');

еще

console.log('оба не равны');

- В приведенном выше примере OperandTwo не будет неявно приведен к числу, потому что оператор строгого равенства (===) не вызывает неявное приведение. Следовательно, мы получим вывод как «оба не равны».

- Примечания:

я. Оператор строгого равенства (===) не запускает неявное приведение.

II. Равенство или неравенство (==, !=) настраиваются автоматически.

- Если мы используем + (сложение), то конкатенация произойдет для обоих операндов без принуждения, тогда как если мы используем — (вычитание), то неявное принуждение произойдет для требуемого операнда, и мы получим числовой результат.

Короче говоря, если выражение включает «+» (сложение), результатом будет строка.

Если выражение включает «-» (вычитание) (т. е. операции, отличные от сложения (+)), то результатом будет число. Оператор + имеет ассоциативность слева направо. Следовательно, оценка выражения будет выполняться слева направо.

Например:

console.log(22+”0); //220

console.log("22"+0); //220

console.log("22"+"0); //220

console.log(0+”22); //022

console.log("22"+7+27+03+31); //22727331

console.log(7+27+03+31+”22); //6822

console.log(22-”0); //22

console.log("22"-0); //22

console.log("22"-"0); //22

console.log(0-”22); //-22

console.log("22"-7–27–03–31); //-46

console.log(7–27–03–31–”22); //-76

· Правила преобразования:

1. Как примитивные, так и не примитивные значения преобразуются только в любой из следующих типов данных в JavaScript:

а. Число

б. Нить

в. логический

2. Процесс преобразования примитивного и непримитивного типа данных отличается от каждого

разное.

Сегодня, в этот час, мы рассмотрим только процесс приведения к примитивным типам данных. Итак, начинаем экскурсию.

Непримитивное принуждение — скоро.

а. Номер:

  • Чтобы явно преобразовать любое значение в число, мы используем функцию Number().

Пример:

Номер('123456'); // 123456

Номер('31.7'); //31,7

Номер('317e-1'); //31,7

Номер('317e-2'); //3.17

Число('0x11'); //17

  • Логическое значение true преобразуется в 1, тогда как false преобразуется в 0. Пример: Number(true); // 1

Номер(ложь); // 0

  • Любая буквенно-цифровая строка или строка специальных символов и значение undefined возвращает NaN.

Пример: число («ABC»); // NaN

Номер("31сб"); // NaN

Число("$"); // NaN

Номер (не определено); // NaN

  • Все символы escape-последовательности, когда они явно преобразуются в число, мы получим 0, кроме символа возврата и «\ 0».

Пример:

Число("\n"); //0

Число("\b"); // NaN

Число("\0"); // NaN

Число("\f"); //0

Число("\r"); //0

Число("\т"); //0

Число("\v"); //0

  • Для пустой строки возвращается 0. Пример. Число(""); //0
  • При преобразовании строки в число, если строка содержит конечные и начальные пробелы, движок автоматически обрезает пробелы вокруг строки, а затем проверяет, является ли строка допустимым числом или нет. Если строка не является допустимым числом, она вернет NaN, т.е. не число.

Пример:

Номер("3103072227"); //3103072227

Номер("3103072227 мой номер"); //NaN

Номер("Мой номер 3103072227"); //NaN

Номер("567345с"); //NaN

  • При преобразовании null становится равным 0, тогда как undefined становится NaN.

Номер (нулевой); // 0

Номер (не определено); // NaN

  • Символы не могут быть преобразованы в числа ни явно, ни неявно.

Поскольку символы не преобразуются в числа, и если мы попытаемся преобразовать их принудительно, мы получим «TypeError».

Пример:

var newSymbol = Symbol('Символ валюты');

Число (новый символ); // ошибка типа

  • Дата также преобразуется в число.

Пример:

var сегодня = новая дата();

console.log(Число(сегодня)); //1524736892037

› Неявное принуждение:

Нам не нужно использовать какую-либо функцию для неявного преобразования значений.

Неявное преобразование происходит при выполнении любой из операций:

я. Арифметические операции над операндами. (+, —, *, /, %)

II. Операции сравнения, такие как ›,‹, ›=,‹=,

III. Свободная проверка на равенство или неравенство (==, !==). Но если оба операнда

являются строками, то неявного преобразования в число не произойдет.

A) Существует одно исключение, т. е. числовое преобразование не произойдет, если для проверки установлено значение null или undefined.

Это потому, что они могут быть равны либо сами себе, либо друг другу.

Пример:

undefined == null // правда

null == null // правда

не определено == не определено // верно

не определено == 0 // ложь

ноль == 0 // ложь

B) NaN не может быть равен ни самому себе, ни каким-либо другим значениям типа данных.

console.log(NaN!= 0); // истинный

console.log(NaN!= NaN); // true => console.log(NaN == NaN); // false => console.log(NaN === NaN); // ложный

IV. Побитовые операции, такие как

а. Побитовое И (&)

б. Побитовое ИЛИ (|)

в. Побитовое исключающее ИЛИ (^)

д. Побитовое НЕ (~)

е. Заполнение нулями Левый Shift (‹‹)

ф. Сдвиг вправо со знаком (››)

г. Заполнение нулями Правый Shift (›››)

Пример:

console.log(5 и 1); // 1

console.log («5» и 1); // 1

console.log («5» и «1»); // 1

б. строка:

  • Функция String() используется для явного преобразования значений других типов данных в строку.

Пример:

Строка(8712345); // ‘8712345’

Строка (истина); // 'истинный'

Строка('abc');// abc

Строка (не определена); // 'неопределенный'

Строка (ложь); // 'ложный'

  • Значение преобразуется, что означает, что неявное преобразование происходит, когда происходит любая конкатенация строк, например

console.log(true + ‘12’); // правда12

console.log(45 + ‘10’); // 4510

В приведенных выше примерах такие значения, как «true» и «45», преобразуются в строку.

  • Явное преобразование для Symbol возможно, тогда как TypeError будет выдано при неявном преобразовании.

Пример: console.log(Symbol('Мой дом')); // 'Мой дом'

var result = Symbol('Мой евро') + 10; // ошибка типа

в. Логическое значение:

  • Чтобы преобразовать значение любого типа данных в логическое значение, мы должны использовать функцию Boolean().

Пример:

логическое(''); // ложный

логическое (0); // ложный

логическое (истинное); // истинный

логическое (ложное); //ложный

логическое (-0); // ложный

логическое (не определено); // ложный

логическое (нулевое); // ложный

логическое значение (NaN); // ложный

логическое (бесконечность); // истинный

Boolean(Symbol('Мой дом')); // истинный

Это потому, что Symbol является истинным значением.

  • Массив, дата, функция, объекты преобразуются в истину.

Пример:

логическое ([]); // истинный

Логическое (функция () { console.log ('привет');}); // истинный

Boolean(Symbol('Мой дом')); // истинный

логическое ({}); // истинный

  • Когда мы выполняем любую логическую операцию над операндами, значения неявно преобразуются в логические значения.

если(6 && 8)

console.log («истина»);

еще

console.log («ложь»);

вар операндОдин = истина;

если(!!операндОдин)

console.log («истина»);

еще

console.log («ложь»);

  • При выполнении логической операции И, ИЛИ, если первый операнд возвращает истину, он возвращает второй операнд вместо возврата логического результата, иначе он возвращает первый.

Пример:

var result = «Манго» && «Ананас»; // Должен вернуть логическое значение, но возвращает «ананас»

var result = false && 'Манго'; // ложный

var result = true && 'Манго'; // Манго

var result = ‘Манго’ && false; // ложный

вар результат = ложь || (10 == (5*2)); // ложный

var result = 'Арбуз' || ложный; // 'Арбуз'

var result = 'Арбуз' || «Мускусная дыня»; // 'Арбуз'