Урок №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.
Так как по своей сути массив представляет собой объект, его можно объявлять следующим образом.
Инструкции