«Сложно о простом». Типы данных JS. В поисках истины примитивов и объектов. Переменные в JavaScript Какие типы данных существуют в javascript

Урок №3
Типы данных в языке JavaScript

В прошлом уроке мы выяснили, что переменная — это именованная область памяти, которая хранит в себе какие-либо данные (значения).

У каждого значения в JavaScript, имеется свой тип данных . Всего в JavaScript существует 6 типов данных, в этом уроке по JavaScript, мы рассмотрим 4 типа данных:
— числовой тип данных number ,
— строковый тип данных string ,
— логический тип данных boolean ,
— неопределённый тип данных undefined .

Остальные два изучим чуть позже:
— объектный тип данных object
— пустой тип данных null

Оператор typeof

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

Alert(typeof имяПеременной);

После этого скрипт должен выдать какое-либо сообщение: number , string , boolean , undefined , object .

Тип данных: число (number)

Когда переменной, в качестве значения, присваивается какое-либо число (без кавычек) , её тип данных становится number

Var myNumber; myNumber = 5; alert(typeof myNumber);

В первой строке мы создали переменную с именем myNumber , во второй строке, присвоили переменной значение 5 , в третьей с помощью оператора typeof вычислили тип данных у переменной myNumber , а функция alert() показала нам результат этих вычислений.

В итоге, данный скрипт выведет нам сообщение number . Если число обрамить кавычками (одинарными "5" или двойными "5" ) , то оно превратится в строку string .

Тип данных: строка (string)

Когда переменной в качестве значения присваивается какое-либо значение, заключённое в двойные " " или одинарные кавычки " " , то её тип данных становится string .

Var myString; myString = "Привет, я строка JavaScript!"; alert(typeof myString);

В первой строке мы создали переменную с именем myString , во второй строке, присвоили переменной значение "Привет, я строка JavaScript!" , в третьей с помощью оператора typeof вычислили тип данных у переменной myString , а функция alert() показала нам результат этих вычислений. В итоге, данный скрипт должен вывести нам сообщение string .

Тип данных: логический тип данных (boolean)

Когда переменной в качестве значения присваивается true или false , без кавычек , то её тип данных становится boolean .

Тип данных boolean — это логический тип данных, он имеет всего два значения: true (правда) или false (ложь) .

Var myBoolean; myBoolean = true; alert(typeof myBoolean);

В первой строке мы создали переменную с именем myBoolean , во второй строке, присвоили переменной значение true , в третьей с помощью оператора typeof вычислили тип данных у переменной myBoolean , а функция alert() показала нам результат этих вычислений. В итоге, данный скрипт должен вывести нам сообщение boolean .

Логический тип данных, мы изучим более подробно в следующих уроках, посвящённых операциям сравнения, логическим операциям и оператору ветвления if

Тип данных: undefined

Тип данных undefined появляется тогда, когда переменная объявлена, но не инициализирована, т.е. переменная создана, но значения ей не присвоили.

Var myUndefined; alert(typeof myUndefined);

В первой строке мы создали переменную с именем myUndefined , во второй строке с помощью оператора typeof вычислили тип данных у переменной myUndefined , а функция alert() показала нам результат этих вычислений. В итоге, данный скрипт должен вывести нам сообщение undefined .

Доступ к значению переменной

Чтобы получить доступ, к значению переменной, нужно обратиться к ней по имени:

// объявляем переменные var myString; var myNumber; // инициализируем переменные myString = "Привет, МИР!"; myNumber = 5; // обращаемся к переменным alert(myString); alert(myNumber);

В первой и второй строках кода мы создали переменные myString и myNumber , в третьей и четвёртой строках присвоили переменным значения "Привет, МИР!" и 5 , в пятой и шестой строках с помощью функции alert() вывели результаты Привет, МИР! и 5

String, Number, Boolean, Array, Object.

Типы данных JavaScript

Переменные JavaScript может содержать множество типов данных: numbers, strings, arrays, objects и многое другое:

var length = 16; // Number
var lastName = "Johnson"; // String
var cars = ["Saab", "Volvo", "BMW"]; // Array
var x = {firstName:"John", lastName:"Doe"}; // Object

Концепция типов данных

В программировании, типы данных является важным понятием.

Для того, чтобы иметь возможность работать с переменными, важно знать, что-то о типе.

Без типов данных, компьютер не может безопасно решить эту проблему:

Var x = 16 + "Volvo";

Имеет ли смысл добавить "Volvo" до шестнадцати? Будет ли выдавать ошибку или он будет производить результат?

JavaScript будет рассматривать приведенный выше пример, как:

Var x = "16" + "Volvo";

При добавлении числа и строки, JavaScript будет рассматривать номер как строку.

JavaScript вычисляет выражения слева направо. Различные последовательности могут привести к разным результатам:

В первом примере, JavaScript обрабатывает 16 и 4 , как числа, до тех пор, пока не достигнет "Volvo" .

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

JavaScript имеет динамические типы

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

пример

var x; // Now x is undefined
var x = 5; // Now x is a Number
var x = "John"; // Now x is a String

JavaScript Строки

Строка (или текстовая строка) представляет собой серию символов, как "John Doe" .

Строки написаны в кавычках. Вы можете использовать одинарные или двойные кавычки:

пример

var carName = "Volvo XC60"; // Using double quotes
var carName = "Volvo XC60"; // Using single quotes

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

пример

var answer = "It"s alright"; // Single quote inside double quotes
var answer = "He is called "Johnny""; // Single quotes inside double quotes
var answer = "He is called "Johnny""; // Double quotes inside single quotes

Попробуй сам "

Вы узнаете больше о строках позже в этом руководстве.

JavaScript Числа

JavaScript имеет только один тип чисел.

Числа могут быть записаны, или без десятичных знаков:

пример

var x1 = 34.00; // Written with decimals
var x2 = 34; // Written without decimals

Очень большие или экстра маленькие числа могут быть написаны с научной (экспоненциальной) нотации:

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

JavaScript Booleans

Булев может иметь только два значения: истина или ложь.

пример

var x = true;
var y = false;

Booleans часто используются в условном тестировании.

Вы узнаете больше об условном тестировании позже в этом руководстве.

Массивы JavaScript

массивы JavaScript записываются с помощью квадратных скобок.

элементы массива разделяются запятыми.

Следующий код объявляет (создает) массив называется автомобилей, содержащий три пункта (названия автомобиля):

Индексы массивов начинаются с нуля, что означает, что первый элемент , вторая , и так далее.

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

Объекты JavaScript

Объекты JavaScript записываются в фигурные скобки.

Свойства объекта записываются в виде имя: пар значений, разделенных запятыми.

Объект (человек) в приведенном выше примере имеет 4 свойства: firstName, lastName, age и eyeColor .

Вы узнаете больше об объектах позже в этом руководстве.

TypeOf Оператор

Вы можете использовать код JavaScript typeof оператора, чтобы найти тип переменной JavaScript:

пример

typeof "John" // Returns string
typeof 3.14 // Returns number
typeof false // Returns boolean
typeof // Returns object
typeof {name:"John", age:34} // Returns object

Всего в JavaScript, существует 6 типов данных :
— Число number ,
— Строка string ,
— Логический (булев) тип данных boolean ,
— Отсутствие значения undefined ,
— Пустота, ничто null ,
— Объект object .

Эти 6 типов данных, делятся на два вида, простые типы данных и составные (объектные) типы данных.

Простые (примитивные) типы данных: number, string, boolean, undefined, null.
Составные (объектные) типы данных: object

Составным типом данных являются: объект, функция, массив (см. в конце статьи).

Прежде чем рассмотреть каждый тип данных, познакомимся сначала с оператором typeof . Данный оператор позволяет узнать, какой тип данных у переменной, делается это так:

Var имяПеременной; имяПеременной = значение; alert(typeof имяПеременной);

Тип данных: number

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

Var myNumber = 5; var myNumber2 = 5.5;

В JavaScript в числах с плавающей запятой, используются точки, а не запятые 🙂

Alert(typeof myNumber); alert(typeof myNumber2);

В обоих случаях, скрипт выдаст нам сообщение number .

Тип данных: string

String — тип данных строка. Чтобы превратить значение переменной в строку, её нужно обрамить кавычками: дойными «строка» или одинарными ‘строка’. Если число обрамить кавычками, то её тип данных из number превратится в string:

Var myString = "Привет я строка JavaScript"; var myString2 = "5";

Проверяем с помощью оператора typeof, тип данных наших переменных:

Alert(typeof myString); alert(typeof myString2);

В обоих случаях скрипт выдаст нам сообщение string .

Тип данных: boolean

Boolean — логический (булев) тип данных, он может иметь только одно их двух значений: true (правда) или false (ложь). Значения true или false обычно появляются в операциях сравнения или логических операциях.

Var myBoolean = true; var myBoolean2 = false;

Проверяем с помощью оператора typeof, тип данных наших переменных:

Alert(typeof myBoolean); alert(typeof myBoolean2);

В обоих случаях, скрипт выдаст нам сообщение boolean .

Если логический тип данных обрамить кавычками, то его тип данных из boolean превратится в string.

Тип данных: undefined

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

// Объявили переменную, но не присвоили ей значения var myUndefined; // Проверяем с помощью оператора typeof, тип данных нашей переменной alert(typeof myUndefined);

Функция alert() выдаст нам сообщение undefined .

Если переменной присвоить значение undefined , то её тип данных тоже будет undefined .

Var myUndefined2 = undefined; alert(typeof myUndefined2);

Если значение undefined обрамить кавычками, то его тип данных из undefined превратится в string.

Тип данных: object

Object — тип данных объект.

Var myObject; myObject = { svoistvo: "znachenie", svoistvo2: "znachenie2", };

Проверяем с помощью оператора typeof, тип данных нашего объекта:

Alert(typeof myObject);

Скрипт выдаст нам сообщение object . Так же оператор typeof, покажет object у массивов и функций (см. ниже).

Тип данных: null

Null — это специальный тип данных обозначающий пустоту (ничего). Null — это специальный пустой объект. Например null может появиться при нажатии на кнопку отмена при использовании функции promt() .

Var myNull = null; alert(typeof myNull);

Данный скрипт выдаст сообщение object , почему так происходит читайте ниже.

Если null обрамить кавычками, то его тип данных из null превратится в string.

Уточнение по работе с оператором typeof

Здесь сообщу о некоторых подводных камнях которые есть в операторе typeof, например при работе с null и с функциями он выдаёт не верный тип данных, что часто путает начинающих. Ниже я составил небольшую табличку, показывающую как работает

Почти в любом языке программировании существуют различные типы переменных и JavaScript тут сюрпризов не преподносит. Как правило, это стандартный набор типов: целый (integer ), вещественный (double ), строковый (string ), булевский (boolean ) и массив (array ). Давайте разберём каждый тип переменной в JavaScript подробнее.

Во-первых, сразу заметим, что переменная любого типа начинается с ключевого слова "var ", и лишь значение переменной определяет тип переменной. Более того, тип переменной в JavaScript может быть изменён в любой точке программы.

Начнём с самого простого - целого типа, знакомого нам по предыдущей статье. Целый тип - это обычные целое число, например, -100, -34, 0, 15, 259 и так далее. Соответственно, целый тип создаётся с помощью присвоения переменной целого значения, например, так:

Var number = -323;

Следующий тип переменной - это вещественный тип, или, как принято его называть, double . Тип double - это вещественные числа, то есть абсолютно любые числа, кроме мнимых (если не знаете, что такое мнимые числа, то не обращайте на это внимание). Например, -3.4, -1.032, 35.599212, 0.0001. Так же как и с другими типами, для создания вещественной переменной необходимо инициализировать переменную одним из подобных значений. Вот пример:

Var number = 32.3291;

Обратите внимание, что целая часть от дробной отделяется не "запятой " (как принято у нас), а "точкой ".

Следующий тип переменной - это строковый. Строковый тип в JavaScript используется очень часто, не реже, чем другие, если не больше. Строковый тип - это какая-либо строка. Для примера такая: "string", "732", "My name"s Michael". Обратите внимание, что строка задаётся в кавычках. В частности, строка "732" отличается от числа 732. Создаётся строка аналогично другим типам в JavaScript :

Var str = "some string";

Ещё один тип переменной - это булевский. Тип этой переменной может содержать одно из двух значений: true (истина) или false (ложь). Переменная используется в условных операторах, о которых мы поговорим позднее. А пока пример создания булевской переменной:

Var bool = true;

И последний тип - это массив. Самый сложный тип из всех, однако, очень важный и присутствующий почти во всех языках программирования. Это тип, который содержит в себе несколько различных переменных, причём, возможно, что даже разных типов. Создаётся массив в JavaScript таким образом:

Var array = new Array(3, 7, 12, true, 4.5, "some string", true);

В примере создаётся массив из 7-ми значений, которые могут быть считаны или перезаписаны. Встаёт вопрос: как обратиться к элементу массива. Очень просто! Синтаксис обращения к элементу массива следующий: название_ массива[номер_элемента]. Обратите внимание, что нумерация в массиве начинается с "0 ". Поэтому элемент со значением "3 " - это элемент под номером "0 ". Для примера покажу, как можно вывести элемент массива в окно браузера и перезаписать его.

Document.write(array);
array = array + 1;
document.write(array);

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

Это все типы переменных в JavaScript .

Переменные в JavaScript объявляются с помощью ключевого слова var , например:

После этого можно задать значение переменной:

x = “Sample string”;

Язык JavaScript позволяет создавать переменные «на лету» без их объявления, например:

y = “Second string”;

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

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

JavaScript поддерживает пять базовых типов данных: Number – числа; String – строки; Boolean – Булев тип; Undefined – неопределенный; Null – пустой. Эти пять типов данных называются базовыми, т.к. на основе их строятся более сложные типы данных. Фактический интерес с точки зрения хранения данных представляют три: числа, строки и логические значения, неопределенный и пустой типы представляют интерес в определенных ситуациях.

Числа

В языке JavaScript численный тип данных включает целые и вещественные числа. Целые числа могут принимать значения от –2 53 до 2 53 , вещественные могут принимать большие значения в пределах ±1.7976 x 10 308 или быть точными в пределах ±2.2250 x 10 -308 .

Числа также могут записываться в экспоненциальной форме.

Для записи целого шестнадцатеричного числа в начале ставится ноль, затем буква x , затем само число, которое может содержать цифры от 0 до 9 и буквы от A до F .

Числа в шестнадцатеричной системе счисления могут пригодиться при использовании битовых операций, а также для хранения цветов – для Web все цвета хранятся в шестнадцатеричном виде.

В языке JavaScript также имеется возможность записи чисел в восьмеричной системе счисления: для записи числа в начале ставится 0 , затем идут цифры от 0 до 7 .

Специальные числа

Если результат математической операции выходит за допустимые пределы, переменная принимает значение Infinity – бесконечность. При совершении любых операций над таким числом результатом будет бесконечность. При сравнении положительная бесконечность всегда больше любого действительного числа, и наоборот, отрицательная бесконечность всегда меньше любого действительного числа.

Еще одним важным специальным значением является NaN – «не число» (not a number). Типичным примером операции, которая возвращает NaN , является деле­ние на ноль. Для определения, является ли значение переменной NaN , используется функция isNaN() , которая возвращает true , если число является действии­тельным (включая бесконечность), и false , если значение переменной NaN .

К специальным числам относятся максимальное и минимальное значения, кото­рые может принимать переменная. Все специальные числа приведены в таблице:

Строки

Строка – это последовательность символов огрниченная двойными или одинарными кавычками.

После создания строки она имеет одно свойство – length , возвращающее длину строки, и большое количество методов:

charAt (index : Number) : String – возвращает символ, находящийся на определенной позиции;

concat ([string1 : String [, [, stringN : String]]]]) : String – соединяет строки (аналогично оператору «+»);

indexOf (subString : String [, startIndex : Number]) : Number – возвращает номер вхождения подстроки в строку, необязательным параметром является номер символа, с которого начинается поиск. Если подстрока не найдена, возвращается -1 . Поиск выполняется слева направо, для поиска справа налево используется метод lastIndexOf() , который имеет аналогичный синтаксис;

replace (rgExp : RegExp, replaceText : String) : String – выполняет замену регулярного выражения строкой;

split ([ separator : { String | RegExp } [, limit : Number]]) : Array – разбивает строку на массив подстрок. В качестве первого параметра передается разделитель, на основе которого производится разбиение, если разделитель не указан, возвращается массив, содержащий один элемент с исходной строкой. Второй параметр определяет максимальное количество элементов в возвращаемом массиве;

substr (start : Number [, length : Number]) : String – возвращает подстроку, которая начинается с определенной позиции и имеет определенную длину;

substring (start : Number, end : Number) : String – возвращает подстроку, которая начинается и заканчивается в позициях, определенных параметрами.

Булев тип

Переменные булевого типа могут принимать одно из двух значения: true – истина; false – ложь. Переменные булевого типа часто используются в условном операторе if . Пример:

var doAlert = true;

if (doAlert) { alert(“Hello, World!”); }

Переменные типа Undefined и Null

Тип Undefined используется для несуществующих переменных или переменных, значения которых еще не определены. В следующем примере переменная x будет иметь значение Undefined – то есть не определена.

Тип Null означает пустое значение. Пример объявления пустой переменной:

Массивы

В JavaScript массив – это упорядоченная коллекция различных данных. Все элементы массива пронумерованы, первый элемент массива имеет нулевой индекс. Доступ к определенному элементу массива осуществляется с помощью квадратных скобок и номера этого элемента. Пример:

myArr = “Hello!”;

Объявление пустого массива и массива, содержащего данные:

var emptyArr = ;

var filledArr = ["Hello", "World"];

Массивы могут быть многомерными. Объявление и обращение к многомерному массиву выглядит так:

var myArr = [,,];

//создается массив размером 3х2 и выводится элемент, содержащийся
в третьей строке, во втором столбце, равный 6.

Так как по своей сути массив представляет собой объект, его можно объявлять следующим образом.

Инструкции