English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основы JavaScript

Объекты JavaScript

Функции JavaScript

JS HTML DOM

JS Браузер BOM

Основы AJAX

JavaScript Референс Мануал

Преобразование типов JavaScript

Типовая конверсия - это метод преобразования одного типа данных в другой.

В JavaScript типы данных используются для классификации специфического типа данных, определения значений, которые могут быть分配лены к этому типу, и операций, которые можно выполнять над ним.

Типы данных JavaScript

В JavaScript есть 5 типов данных, которые могут содержать значения:

  • string

  • number

  • boolean

  • object

  • function

Есть 3 типа объектов:

  • Object

  • Date

  • Array

Есть еще 2 типа данных, которые не могут содержать значения:

  • null

  • undefined

Типы операторов

Оператор typeof помогает вам определить тип переменной.

Оператор typeof возвращает тип переменной или выражения.

typeof "" // возвращает "string"
typeof "Vishal" // возвращает "string"
typeof "42" // возвращает "string" (число в кавычках является строкой)
typeof 42  // 返回 "number"
typeof 42 // возвращает "number"
typeof true // возвращает "boolean"
typeof false // возвращает "boolean"
typeof undefined // возвращает "undefined"
typeof null // возвращает "object"
typeof {name:"Vishal", age:22} // возвращает "object"
typeof [2, 4, 6, 8] // возвращает "object" (не "массив")
Проверьте, что‹/›

typeof function myFunc(){} // возвращает "function"

Вы можете использовать оператор typeof для поиска типа данных JavaScript переменной.

Скрытое преобразование

Как языку программирования, JavaScript очень терпим к неожиданным значениям. Поэтому JavaScript пытается преобразовать неожиданные значения, а не сразу их отвергать. Это скрытое преобразование называется типовой coercing.

Например, в математических вычислениях значения автоматически преобразуются в числа.

Но результат не всегда соответствует вашим ожиданиям:
"3" + 2 // возвращает "32" (поскольку 2 преобразуется в "2")
"3" - 2 // возвращает 1 (поскольку "3" преобразуется в 3)
"3" * "2" // возвращает 6 (поскольку "3" и "2" преобразуются в 3 и 2)
2 + true // возвращает 3 (поскольку true преобразуется в 1)
2 + false // возвращает 2 (поскольку false преобразуется в 0)
2 + null // возвращает 2 (поскольку null преобразуется в 0)
Проверьте, что‹/›

"2" + null // возвращает "2null" (поскольку null преобразуется в "null")

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

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

В следующих разделах мы будем подробно обсуждать эти методы.

Мы можем преобразовать значение в строку, вызывая:String()Функция илиx.toString()Метод преобразует значение в строку явно.

Через этотString()Функция, мы будемtrueПередавая её в качестве аргумента, мы можем преобразовать булево значение в строку:

String(true);// возвращает "true"
Проверьте, что‹/›

Кроме того, мы можем передать число функции:

String(108);// возвращает "108"
Проверьте, что‹/›

Мы можем использовать оператор typeof для проверки типа:

typeof String(true);// Возвращает "string"
typeof String(108); // Возвращает "string"
Проверьте, что‹/›

Мы можем использовать аналогичным образомx.toString()Метод. Мы можем заменить x переменной:

let temp = 108;
temp.toString();
Проверьте, что‹/›

Или, мы можем поместить значение в скобки, а не использовать x.toString() для установки переменной:

(9048).toString();// Возвращает "9048"
(false).toString();   // Возвращает "false"
(50 + 20).toString(); // Возвращает "70"
Проверьте, что‹/›

ИспользуяString()илиx.toString()Мы можем явно преобразовать значения типа Boolean или number в строковые значения, чтобы обеспечить выполнение нашего кода по ожидаемому сценарию.

Преобразование значений в число

При преобразовании значений в тип данных "число" мы будем использоватьNumber()Функция。

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

Мы можем передать строку числа функцииNumber()Функция:

Number("1992");// Возвращает 1992
Проверьте, что‹/›

Мы также можем присвоить строку переменной и затем преобразовать её:

let debt = "3500";
Number(debt); // Возвращает 3500
Проверьте, что‹/›

Пробельные строки или пустые строки будут преобразованы в 0 (ноль):

Number(" ");// Возвращает 0
Number(""); // Возвращает 0
Проверьте, что‹/›

    Обратите внимание, что ненумерационные строки будут преобразованы в NaN, где NaN означаетНенумерация.Это включает числа, разделенные пробелами:

Number("seventy");   // Возвращает NaN
Number("Hello world");   // Возвращает NaN
Number("12,000");// Возвращает NaN
Number("5 7");   // Возвращает NaN
Number("26-11-2008");// Возвращает NaN
Проверьте, что‹/›

Для булевых данных типов,falseЗначение0trueЗначение1:

Number(false);  // Возвращает 0
Number(true);   // Возвращает 1
Проверьте, что‹/›

Если параметр является объектом Date, тоNumber()Функция возвращает количество миллисекунд с полуночи 1 января 1970 года UTC:

Number(new Date());
Проверьте, что‹/›

ДанныйNumber()Функция преобразует данные, не являющиеся числами, в числа.

Преобразование значения в булево значение

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

Любое значение, интерпретируемое как пустое (например, цифра 0, пустая строка или undefined или NaN или null), преобразуется вfalse:

Boolean(0); // возвращает false
Boolean("");// возвращает false
Boolean(undefined); // возвращает false
Boolean(NaN);   // возвращает false
Boolean(null);  // возвращает false
Проверьте, что‹/›

Другие значения преобразуются вtrueвключая строки, состоящие только из пробелов:

Boolean(50); // возвращает true
Boolean(-50);// возвращает true
Boolean(3.14);   // возвращает true
Boolean("false");// возвращает true
Boolean("Hello World");  // возвращает true
Проверьте, что‹/›

Обратите внимание, что " 0" в качестве строкового литерала преобразуется вtrue,Потому что это не пустая строковая величина:

Boolean("0");   // возвращает true
Проверьте, что‹/›

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

Преобразование массива в строку

toString()Этот метод преобразует массив в строку (разделенную запятыми) значений массива.

var months = ["Jan", "Feb", "Mar", "Apr", "May"];
document.getElementById("result").innerHTML = months.toString();
Проверьте, что‹/›

join()Этот метод также преобразует все элементы массива в новый строковый объект.

行为类似于该方法toString()Но вы также можете指定 разделитель.

var fruits = ["Banana", "Apple", "Mango"];
fruits.join(" + ");   // Banana + Apple + Mango
fruits.join(" / ");   // Banana / Apple / Mango
fruits.join(" © ");  // Banana © Apple © Mango
Проверьте, что‹/›

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

Когда вы пытаетесь выводить массив, он всегда будет таким.

let fruits = ["Apple", "Mango", "Banana", "Orange"];
document.getElementById("result").innerHTML = fruits;
Проверьте, что‹/›

Преобразование строки в массив

split()Метод для разделения строки на массив подстрок и возвращения нового массива.

Мы будем использоватьsplit()Метод разделяет массив, используя символы пробела, как показано.

var str = 'Air Pollution is introduction of chemicals to the atmosphere.';
var arr = str.split(" ");
Проверьте, что‹/›

Теперь вarrВ переменной появился новый массив, и мы можем использовать индекс для доступа к каждому элементу:

arr[0];   // Air
arr[2];   // is
Проверьте, что‹/›

В следующем примере мы будем использовать "i" в качестве разделителя:

var str = 'Air Pollution is introduction of chemicals to the atmosphere.';
var arr = str.split("i");
Проверьте, что‹/›

Если использовать пустую строку (" ") в качестве разделителя, строка будет преобразована в массив символов:

var str = 'Air Pollution is introduction of chemicals to the atmosphere.';
var arr = str.split(" ");
Проверьте, что‹/›