Як правильно перевірити тип змінної JavaScript. JavaScript - Змінні. Константи. Типи даних Типи даних джава скрипт

Головна / 2 Cool Reader

Programming languages ​​all have built-in data structures, але these often differ from one language to another. Це article attempts to list the built-in data structures available in JavaScript and what properties they have; вони можуть бути використані для будівництва інших структур даних. Дещо можливо, comparisons з іншими мовами є намальовані.

Dynamic typing

JavaScript is a loosely typed or a dynamic language. Variables in JavaScript не є безпосередньо поєднаними з будь-яким типовим типом типу, і будь-яким варіантом може бути визначено (і re-assigned) значення всіх типів:

Let foo = 42; // foo is now a number foo = "bar"; // foo is now a string foo = true; // foo is now a boolean

Data types

Останній стандарт ECMAScript defines eight data types:

  • Seven data types that are :

Primitive values

Всі типи except objects define immutable values ​​(values, які є incapable of being changed). Для прикладу і unlike до C, Strings є immutable. Вирішити значення цих типів як "primitive values".

Boolean type

Boolean репрезентує логічну entity і може мати два значення: true , and false . Натисніть Boolean and Boolean for more details.

Null type

Properties

У JavaScript, об'єкти можуть бути як колекції properties. З object literal syntax , a limited set of properties are initialized; then properties can be added and removed. Властивості можуть бути значеннями для будь-якого типу, включаючи інші предмети, які мають надійні зведення комплексних структур даних. Properties є identified using key values. A key value is either a String або Symbol value.

Існують два типи об'єктів properties, які мають певні ознаки: The data property and accessor property.

Data property

Associates a key with value і має following attributes:

Attributes of a data property
Attribute Type Description Default value
[] Any JavaScript type Значення retrieved by get access of the property. undefined
[] Boolean If false , the property"s [] can"t be changed. false
[] Boolean for...in loops. See also Enumerability and ownership of properties false
[] Boolean Якщо false , property can't be deleted, can't be changed to accessor property and attributes other than [] and [] can"t be changed. false
Абсолютні атрибути (як ECMAScript 3, renamed in ECMAScript 5)
Attribute Type Description
Read-only Boolean Reversed state of the ES5 [] attribute.
DontEnum Boolean Reversed state of the ES5 [] attribute.
DontDelete Boolean Reversed state of the ES5 [] attribute.

Accessor property

Associates key with one or 2 accessor functions (get and set) to retrieve or store value and has following attributes:

Attributes of accessor property
Attribute Type Description Default value
[] Function object or undefined Ця функція називається empty argument list і відновить властивість, якщо отримати доступ до значення є виконаною. See also get. undefined
[] Function object or undefined Функція називається з думкою, що встановлена ​​величина і виконана, коли особливу особливість є спрямована на зміну. See also set. undefined
[] Boolean Якщо true , the property will be enumerated in for...in loops. false
[] Boolean Якщо false , the property can't be deleted and can't be changed to a data property. false

Note: Attribute is usually used by JavaScript engine, so you can't directly access it (see more about Object.defineProperty()).

"Normal" objects, and functions

JavaScript object is a mapping між keys and values. Keys є strings (або Symbol s) і значення можуть бути будь-яким. Це дозволяє об'єкти природного fit для hashmaps .

Функції є регулярні об'єкти з додатковою здатністю до callable.

Dates

Якщо він представляє дані, кращий вибір використовується для зведення в поточний час використання JavaScript.

Indexed collections: Arrays and typed Arrays

Arrays є регулярні об'єкти для яких є особливими відносинами між integer-key-ed properties і "length" property. Додатково, arrays inherit from Array.prototype які надходять до них найкращі методи сприяння manipulable arrays. Для прикладу, indexOf (searching value in the array) або push (adding an element to the array), etc. Це робиться Arrays як хороший candidate до репрезентних листів або sets.

Typed Arrays є новий для JavaScript з ECMAScript 2015 і сучасний array-like view of underlying binary data buffer. Наступні табличні прилади виконаєте еквівалентні C data типи:

TypedArray objects

Type Value Range Size in bytes Description Web IDL type Equivalent C type
Int8Array -128 to 127 1 8-bit two's complement signed integer byte int8_t
Uint8Array 0 to 255 1 8-bit unsigned integer octet uint8_t
Uint8ClampedArray 0 to 255 1 8-bit unsigned integer (clamped) octet uint8_t
Int16Array -32768 to 32767 2 16-bit two"s complement signed integer short int16_t
Uint16Array 0 to 65535 2 16-bit unsigned integer unsigned short uint16_t
Int32Array -2147483648 to 2147483647 4 32-bit two's complement signed integer long int32_t
Uint32Array 0 to 4294967295 4 32-bit unsigned integer unsigned long uint32_t
Float32Array 1.2x10 -38 to 3.4x10 38 4 32-bit IEEE floating point number (7 significant digits e.g. 1.1234567) unrestricted float float
Float64Array 5.0x10 -324 to 1.8x10 308 8 64-bit IEEE floating point number (16 significant digits e.g. 1.123...15) unrestricted double double
BigInt64Array -2 63 to 2 63 -1 8 64-bit two"s complement signed integer bigint int64_t (signed long long)
BigUint64Array 0 to 2 64 -1 8 64-bit unsigned integer bigint uint64_t (unsigned long long)

Keyed collections: Maps, Sets, WeakMaps, WeakSets

Ці структури даних такі об'єкти, як keys і є внесені в ECMAScript Edition 6. Set і WeakSet представляє собою set of objects, while Map and WeakMap associate a value to an object. Відмінність між Maps і WeakMaps is that in the forer, object keys can be enumerated over. Це дозволяє garbage collection optimizations в короткий час.

Один може реалізувати maps and sets in pure ECMAScript 5. However, since objects не може бути compared (в глухому куті "не ні" для stanstance), look-up performance необхідно бути linear. Нативна implementations them (включаючи WeakMaps) може мати look-up performance, що є приблизним логотипом до постійного часу.

Зазвичай, щоб bind data до DOM node, один може містити properties безпосередньо на об'єкті або використовувати data-* attributes. Це має значення, що дані є доступними до будь-якого script running in the same context. Maps and WeakMaps дає змогу легко до private bind data to an object.

Structured data: JSON

JSON (JavaScript Object Notation) є lightweight data-interchange format, derivated з JavaScript, але використовує багато програмних мов. JSON будівельні універсальні дані структури. Відвідайте JSON і JSON для більш детальної інформації.

Більше objects in the standard library

JavaScript має standard library of built-in objects. Please have a look at the reference to find out of more objects.

Визначення типів, використовуючи типоператора

Typeof operator може допомогти вам йти до типу вашої variable. Please read the more details and edge cases.

Specifications

Specification Status Comment
ECMAScript 1st Edition (ECMA-262) Standard Initial definition.
ECMAScript 5.1 (ECMA-262)
Definition of "Types" in thatspecification.
Standard
ECMAScript 2015 (6th Edition, ECMA-262)
Standard Added Symbol.
ECMAScript Latest Draft (ECMA-262)
Визначення "ECMAScript Data Types and Values" в цьому значенні.
Draft

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 встановлені правила синтаксису:

  • Для імен змінних використовуються символи: a-z, A-Z, цифри, символ $, символ підкреслення (_).
  • Ім'я змінної не може починатися з цифри.
  • JavaScript чутливий до регістру, це потрібно пам'ятати при програмуванні. itcounter та it C ounter – це різні змінні.
  • JavaScript не має обмежень на довжину імені змінної.

Приклади правильних імен змінних:

  • itcounter
  • $_itcounter
  • it_counter

Помилкові імена змінних:

  • 9room
  • it-counter
  • #itcounter
  • &itcounter

Змінні оголошуються командою var.

У змінних можна зберігати рядки та числа. Насправді можна зберігати інші типи даних, але про них поговоримо пізніше.

Рядкові змінні

Щоб записати в змінний рядок, потрібно її значення укласти в лапки, подвійні або одинарні.

Var $stroka_1 = "Привіт!"; var $stroka_2 = "Обережно!";

У рядок, створений одинарною лапкою, можна включити подвійну лапку і навпаки.

Var $stroka_1 = ""Привіт!" - це привітання."; var $stroka_2 = ""Обережно!" - це попередження."; document.write($stroka_1); document.write("

Щоб вивести лапку того ж типу, її потрібно екранувати символом зворотного слеша. Все просто:


"); document.write($stroka_2);

Значення змінних можна надавати іншим змінним:

Var $stroka_1 = ""Привіт!" - це привітання."; var $stroka_2 = ""Обережно!" - це попередження."; document.write($stroka_1); document.write("
"); document.write($stroka_2); $stroka_2 = $stroka_1; document.write("
"); document.write($stroka_2);

У цьому прикладі ми спочатку в змінну $stroka_2 надали одне рядкове значення, але потім надали їй значення змінної $stroka_1.

Об'єднання рядків

Дуже часто потрібно об'єднати кілька рядків в один. Наприклад, наш останній приклад надто громіздкий.

Об'єднання (конкатенація) рядків у JavaScript здійснюється за допомогою знака + .

Для виведення на екран 2 рядкових змінних розділених тегом
можна використовувати одну команду document.write() .

Var $stroka_1 = ""Привіт!" - це привітання."; var $stroka_2 = ""Обережно!" - це попередження."; document.write($stroka_1 + "
+ $ stroka_2);

Оператор конкатенації + також можна використовувати в змінних:

Var $stroka_1 = ""Привіт!" - це привітання."; var $stroka_2 = ""Обережно!" - це попередження."; var $stroka_3 = $stroka_1 + "
+ $stroka_2; document.write($stroka_3);

Числові змінні

Щоб створити числову змінну, потрібно просто привласнити їй числове значення.

Var $ count_1 = 23; var $count_2 = 10.34; document.write($count_1 - $count_2);

Тепер інший приклад:

Var $ count_1 = 23; // Числова змінна. var $stroka_1 = "57"; // Рядкова змінна. document.write($stroka_1 + $count_1);

Бачите, значення змінної $stroka_1 взято в лапки, це текстова змінна. Потім ми складаємо текстову та числову змінну і отримуємо рядок "5723", так працює JavaScript в таких випадках - перетворює число в рядок і додає до рядка, що підсумовується.

Булеви змінні

Є такий тип змінних – булеви. Все просто, тут тільки два значення: істина та брехня, тобто true (істина) та false (брехня).

Цей тип даних використовується у операціях порівняння. Ось прості приклади:

  • 9 > 1 – це істина.
  • 2 > 5 – це брехня.
var $count = 2

Тепер спробуємо підставити булеви значення арифметичні дії. Підсумовуємо дві операції порівняння:

Var $count = (3> 2) + (4> 2); document.write($count);

Цей дивний запис, я знаю. Але змінна $count дорівнюватиме 2. У математичному контексі значення true = 1, а значення false = 0.

Операції порівняння використовуються в часто застосовуваній інструкції if JavaScript. Слово if англійською означає - якщо.

Var $count = 100; if ($count == 100) document.write("Змінна $count дорівнює 100.");

У даному прикладіповідомлення буде виведено на екран, оскільки умова інструкції if ($count == 100) дорівнює істині (true). Якщо змінити значення змінної $count на 99, то умова ($count == 100) дорівнюватиме false (брехня) і екран нічого не виведеться.

Прості типи змінних

У JavaScript зміннікласифікуються кілька типів. Строковий, числовий та булевий (логічний) типи ми вже розглянули. Ось ширший список простих типів:

  • string – рядкова змінна.
  • number – числова змінна.
  • boolean - булева змінна.
  • null – спеціальне значення «ніщо».
  • undefined – тип «значення не присвоєно».

Значення змінної null утворює свій окремий тип null, що з єдино можливого значення null. null – це спеціальне значення, яке має сенс «нічого» чи «значення невідоме».

Var $ price = null; // Це означає, що ціна не відома.

У JavaScript можна дізнатися тип змінних за допомогою інструкції typeof.

Var $count; document.write(typeof $count + "
"); var $count = true; document.write(typeof $count + "
"); var $count = "true"; document.write(typeof $count + "
"); var $count = 100; document.write(typeof $count + "
"); var $count = null; document.write(typeof $count + "
");

Синтаксис інструкції типу може бути таким:

  • typeof $count
  • typeof($count)

Отже, запустіть код з останнього прикладу та подивіться на результат. Тип змінної null буде об'єктом. Ця помилка в мові, і вона, ймовірно, ніколи не буде виправлена ​​через необхідність збереження сумісності вже написаних сценаріїв JavaScript з новими версіями мови.

Тип object – це вже не примітивний тип, про нього ми говоритимемо в інших уроках.

Вони поділяються на вбудовані та користувальницькі (визначені програмістом).

Літерали- Дані, що безпосередньо використовуються в програмі. Літерали можуть бути різних типів.

  • Числові літерали: 10 2.310 2.3е+2
  • Рядковий літерал: "Рядковий" "Рядковий"

Літерали використовуються в операціях присвоєння:

Присвоєння виконується праворуч наліво:

Екранування лапок у тексті знаком "/".

Змінні

Оголошення змінних відбувається через var, можна визначати через кому, присвоюючи їй значення чи ні.

Тип змінної визначається її значенням. JavaScript є гнучко типізованою мовою в різних частинах програми, одна і та ж змінна може мати значення різних типів.

Для визначення типу зміною існує оператор typeof();

Області видимості

Оголошення з var поза функцією робить змінну глобальною.

Оголошення var усередині функції робить змінну локальною.

Конфлікт локальних та глобальних змінних

Буде видано 7, тому що в блоці виведення фігурує глобальна змінна.

Примітка, що при оголошенні можна var не писати.

Відсутність var у функції робить змінну конструктора.

Нестандартний приклад із несподіваним висновком

Буде виведено 5, оскільки виклик f(3) змінив значення змінної k.

Масиви

Масиви діляться на вбудовані, звані колекціями, та користувальницькі.

Для визначення користувача використовується конструктор Array.

Елементи нумеруються з 0. Не можуть бути багатовимірними. Але можливо масив масивів.

Методи роботи з масивами

Метод join() поєднує елементи масиву в рядок.

p align="justify"> Зворотний метод split() робить терміну на елементи масиву по роздільнику.

Отриманий масив

Змінюємо значення у 0 та 1 елементів масиву:

Склеїмо значення, що вийшло:

Метод reverse()

Метод reverse() застосовується зміни порядку елементів масиву на протилежний. Ініціалізуємо масив: Упорядкуємо його у зворотному порядку, викликавши метод reverse(), тоді новий масив міститиме:

Метод sort()

Метод sort() інтерпретує елементи масиву як рядкові літерали та сортуємо масив в алфавітному (лексикографічному) порядку. Метод sort() змінює масив. У попередньому прикладі, застосувавши a.sort, отримаємо: Якщо необхідно відсортувати числа, до функції sort() додається необов'язковий аргумент, що є ім'ям функції, що задовольняє наступним вимогам:
  • у неї має бути два аргументи
  • вона повинна повертати число
  • якщо перший аргумент функції має вважатися меншим (великим, рівним), ніж другий аргумент, то функція має повернути негативне (позитивне, нуль) значення

Функція має вигляд:

Якщо нам необхідно сортувати числа, ми можемо використовувати наступну функцію:

Наприклад створимо масив \(b = new Array(10,6,300,25,18)\) і порівняємо результати сортування без аргументу і з функцією compar як аргумент:\(Алфавітний порядок:)\) \(10, 18, 25, 300, 6)\) \(Числовий порядок:)\) \(6, 10, 18, 25, 300)\) Метод sort() розуміє елементи масиву як рядки, але з перетворює в рядки.

Оператори

  • {...}
  • if ... else ...
  • while
  • break
  • continue
  • return

{...}

Фігурні дужки визначають складовий оператор – блок.

Призначення – визначення тіла циклу, тіло умовного оператора чи функції.

if ... else ...

Умовний операторзастосовується для розгалуження програми за логічною умовою. Є два варіанти синтаксису:

Приклад використання:

()?

Цей оператор називається умовним виразом, що видає одне з двох значень залежно від виконання деякої умови. Синтаксис: Є альтернативою if...else... . Наступні приклади рівносильні:

while

Оператор while задає цикл. Визначається так: Формально, цикл while працює наступним чином:
  • виконуємо тіло_цикла;
  • переходимо до п.1.
  • Такий цикл використовується, коли заздалегідь невідома кількість ітерацій, наприклад, в очікуванні певної події. Приклад:

    for

    Оператор for – оператор циклу. Він має вигляд: Цикл працює наступним чином:
    1. виконується ініціалізація_змінних_циклу;
    2. перевіряється умова_продовження циклу:
    • якщо воно хибне (false), цикл закінчено,
    • якщо ж воно істинне (true), продовжуємо далі
  • виконуємо тіло_цикла;
  • виконується модифікація_змінних_циклу
  • переходимо до п.1.
  • Приклад використання: Math - потроєний об'єкт, що надає численні математичні константи та функції, а Math.pow(n,m) обчислює статечну функцію \(n^(m)\).

    break

    Оператор break дозволяє достроково залишити тіло циклу. Змінимо приклад із кубами чисел, роздрукуємо лише куби, які перевищують 5000. Попри те,що змінну n ми змусили пробігати від 1 до 100, тобто. Свідомо із запасом, реально ж цикл виконається для значень від 1 до k, де k - номер останньої ітерації у разі.

    continiue

    Якщо нам потрібно вивести куби чисел від 1 до 100, що перевищують 10 000, то ми можемо скласти такий цикл:

    return

    Оператор return використовують для повернення значення функції або обробника події. Оператор return як вказує, яке значення має повернути функція, а й припиняє виконання подальших операторів у тілі функції. При використанні в обробниках подій оператор return дозволяє скасувати або не скасовувати стандартну дія, яку робить браузер при виникненні цієї події. Скасувати його можна не для всіх подій. У цьому прикладі без оператора return false користувач побачив би вікно попередження "Не відправимо!" і далі був перенаправлений на сторінку newpage.html. Оператор же return false дозволяє скасувати відправлення форми, і користувач лише побачить вікно попередження. Аналогічно, щоб скасувати стандартну дію для параметрів подій onClick, onKeyDown, onKeyPress, onMouseDown, onMouseUp, onSubmit, onReset, потрібно використовувати return false. Для події onMouseOver з цією ж метою потрібно використовувати оператора return true. Для деяких подій, наприклад onMouseOut, onLoad, onUnload, скасувати дію за умовчанням неможливо.

    Змінна – це іменований ділянку пам'яті, куди можна як зберегти деяку інформацію, і отримати її з неї.

    Оголошення (створення) змінних здійснюється за допомогою ключового слова var.

    // message – ім'я змінної var message;

    При створенні змінної їй відразу можна присвоїти значення.

    Надання змінної значення здійснюється за допомогою оператора «=».

    // наприклад, створимо змінну email і надамо їй рядок " [email protected]" var email = " [email protected]// встановимо змінної email нове значення email = " [email protected]";

    Щоб отримати значення змінної досить просто звернутися до неї на ім'я.

    // Наприклад, виведемо в консоль браузера значення змінної email: console.log (email);

    Для того щоб оголосити не одну, а кілька змінних за допомогою одного ключового слова var, необхідно використовувати кому.

    Var price = 78.55, quantity = 10, message;

    JavaScript є мовою з динамічною чи слабкою типізацією.Це означає, що при оголошенні змінної не потрібно вказувати тип даних, який вона може приймати. Отже, змінну можна помістити спочатку значення, має один тип даних, та був інший.

    Var output = "успіх"; // Змінна має рядковий тип даних output = 28; // ця змінна, але вже має тип даних «число» output = true; // ця ж змінна, але вже зберігає булевське значення

    Значення змінної можна змінювати необмежену кількість разів.

    // Створена змінна age var age; // змінної age присвоєно значення 67 age = 67; // змінною age встановлено значення "Пенсійний вік" age = "Пенсійний вік"; // змінної age встановлено число 55 age = 55;

    Хорошою практикою розробки клієнтських вважається використання певної змінної лише однієї типу даних, тобто. не записувати в змінну значення, що мають різні типиданих. Щоб зрозуміти який тип даних варто очікувати змінної рекомендується під час створення змінної її відразу ініціалізувати певним значенням.

    Ім'я змінної можна складати з літер, цифр та символів $ та _. При цьому перший символ змінної не може бути цифрою. Крім цього як ім'я змінної не можна використовувати зарезервовані слова.

    // Створення двох змінних, перша змінна має ім'я phone, друга - meassage; var phone, message;

    Регістр літер у імені змінної має значення. Тобто, наприклад, змінна phone та Phone - це дві різні змінні.

    Якщо строгий режим не використовується, створити змінну з початковим значенням можна і без ключового слова var.

    Price = 250.00; // Створили змінну та ініціалізували її числом 250.00 percent = "20%"; // створили змінну та ініціалізували її рядком «20%»

    Але створювати таким чином змінні не рекомендується.

    Типи даних

    У JavaScript типи даних можна поділити на примітивні та об'єктні.

    Змінні, що містять примітивні типи даних, зберігають значення явно.

    JavaScript виділяють 5 примітивних типів даних:

    • число (число);
    • рядок (string);
    • булевий тип (boolean);
    • null;
    • undefined.

    Якщо одній змінній надати значення іншій, яка містить примітивний тип даних, то вона отримає власну копію цього значення.

    Var x = 77, y = x; x = 55; y; // 77

    Змінні, що містять об'єкт, насправді зберігають не сам об'єкт, а посилання на нього.

    Якщо одній змінній привласнити значення інший, що містить об'єкт (посилання нею), вона теж отримає посилання нею. В результаті цієї операції ці дві змінні міститимуть посилання на один і той же об'єкт.

    // Приклад 1 (з типом даних «об'єкт») var coord1 = (x: 77, y: 100), coord2 = coord1; coord1.x = 55; // Встановимо властивості x об'єкта нове значення coord2.x; // 55, т.к. coord1 і coord2 містять посилання на той самий об'єкт // приклад 2 (з типом даних «масив») var coord1 = , coord2 = coord1; coord1 = 55; // Встановимо елементу з індексом 0 нове значення coord2; // 55, т.к. coord1 і coord2 містять посилання на той самий об'єкт // приклад 3 (з типом даних «дата») var date1 = new Date(2018,00,01), date2 = date1; date2 = date2.setDate(date2.getDate()+7); // збільшимо дату на 7 днів date1; // 07.01.2018, т.к. date1 і date2 містять посилання на один і той самий об'єкт

    Число (number)

    Числовий тип у JavaScript данихє універсальним. Він використовується для подання як цілих, так і дробових чисел.

    Var int = 5; // ціле число var float = 5.98; // дробове число

    Формат представлення чисел у JavaScript здійснюється відповідно до стандарту IEEE 754-2008.

    Цілі числа в JavaScript можна ставити не тільки в десятковій системічислення, але й у вісімковій (0) або шістнадцятковій системі числення (0x)з використанням префіксів, зазначених у круглих дужках:

    Var int = 010; // 8 int = 055; // 45 int = 0xFF; //255 int = 0xB8; // 184

    Записувати числа можна в експоненційної форми:

    Var num = 2e3; // Експонентний запис числа 2 * 10 ^ 3 (2000) num = 2e-3; // Експонентний запис числа 2*10^-3 (0,002) num = 3.2e3; //3200 num = 1.5e-2; // 0.015

    Числовий тип даних крім чисел містить ще спеціальні числові значення:

    • Infinity (позитивна нескінченність);
    • -Infinity (негативна нескінченність);
    • NaN (Not a Number – не число).

    Спеціальне значення Infinity означає дуже велике позитивне число, тобто. число, яке не може бути представлене в JavaScript через те, що воно занадто велике.

    Спеціальні значення -Infinity означає навпаки дуже велике негативне число, тобто. число, яке не може бути представлене JavaScript через те, що воно теж занадто велике.

    Приклад виразів у результаті обчислення яких буде повернуто спеціальні числові значення:

    5/0; //Infinity -5/0; //-Infinity Math.pow (10,399); // Infinity (10 у ступені 399) Math.pow(10,399); //-Infinity (-10 у ступені 399)

    Значення NaN повертається внаслідок виконання математичних операцій, які JavaScript не може обчислити.

    5 - "Hi"; // NaN (від числа 5 відібрати рядок) 1000 / "20px"; // NaN (число поділити на рядок) true * "1rem"; // NaN ( логічне значення true помножити на рядок)

    При цьому дуже цікавим є те, що значення NaN JavaScript не дорівнює нічому включаючи себе.

    NaN = NaN; // false NaN === NaN; //false

    Логічний тип даних (Boolean)

    Boolean – примітивний тип даних, який має лише два значення: true (істина) та false (брехня).

    Var a = true; var b = false;

    Рядок (String)

    Рядок (String) – це тип даних, який використовується в JavaScript для представлення тексту.

    Рядок JavaScript може складатися з 0 або більше символів.

    Як формат рядка в JavaScript завжди використовується кодування Unicode.

    Створення рядка (літералу рядка) виконується за допомогою укладання тексту в одинарні або подвійні лапки.

    "JavaScript"; "ECMAScript";

    У JavaScript немає різниці між одинарними та подвійними лапками.

    Але в деяких випадках є сенс використовувати саме одинарні лапки, а не подвійні і навпаки.

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

    "ECMAScript"; // без екранування (з використанням одинарних лапок) "ECMAScript"; // з екрануванням

    Рядок у JavaScript може містити спеціальні символи. Наприклад, \n (переклад рядка), \t (табуляція), \r (повернення каретки) та ін.

    "Ця пропозиція.\nА це теж пропозиція, але вона буде починатися з нової лінії.";

    З рядками можна зробити операцію складання (об'єднання) або іншими словами конкатенацію. Для цього використовується оператор "+". Смисл цієї операції полягає в приєднанні другого рядка до кінця першого.

    "Я люблю" + "JavaScript"; // Я люблю JavaScript

    Значення "undefined"

    undefined - спеціальний примітивний тип даних, який має одне значення, рівне undefined.

    Цей тип даних має оголошена змінна, якій ще не надано значення.

    Var num; // undefined

    Значення undefined також буде повернуто при зверненні до неіснуючої властивості об'єкта.

    Var obj = (); // Порожній об'єкт obj.prop; // undefined

    Значення "null"

    null - спеціальний примітивний тип даних, який має одне значення, що дорівнює null.

    null - це спеціальне значення, що має сенс «нічого» чи «невідоме значення», тобто. воно явно нічого не означає.

    Об'єкт (Object)

    Об'єкт - це структура даних, що складається з пар ім'я-значення.

    Створення об'єкта за допомогою нотації літералу об'єкта здійснюється так:

    ( ім'я_1: значення_1, ім'я_2: значення_2, ім'я_3: значення_3, ... )

    Як видно, ім'я від значення відокремлюється за допомогою двокрапки, а пари між собою за допомогою коми.

    При цьому якщо значення пари виступає функція, то вона називається методом цього об'єкта. Решта пари, тобто. пари в яких значення не використовується функція, називаються властивостями об'єкта.

    Іншими словами, об'єкт - це структура даних, що складається з властивостей та методів.

    Var person = ( name: "Віталій", age: 27, getAge: function () ( return "Вік: " + this.age; ) )

    Звернення до властивостей об'єкта виконується через точку або за допомогою скобкового запису.

    // виведемо значення якості age в консоль браузера // 1 метод (через точку) console.log(person.age); // 2 спосіб (за допомогою дужок) console.log(person["age"]); // Викликаємо метод getAge; значення, яке він поверне, виведемо у консоль console.log(person.getAge());

    Оператор typeof

    Оператор типувикористовується для отримання інформації про тип даних виразу у вигляді рядка.

    Синтаксис оператора typeof (варіант без круглих дужок):

    Typeof вираз

    Синтаксис оператора typeof (з використанням круглих дужок):

    Typeof(вираз)

    Var name, age = 37, email = " [email protected]", isLicense = true, interest: null, lastExperience: ( period: "June 2011 - June 2018", place: "ISACA, Moscow", position: "Web designer" ), getExperience: function() ( return lastExperience.period + "(" + lastExperience.position + " - " + lastExperience.place + ")"; ); typeof name; // "undefined" typeof age; // "number" typeof isLicense; / "object" (1) typeof lastExperience; // "object" typeof getExperience; // "function" (2) /* (1) - це помилка, яка присутня в мові, починаючи з її першої реалізації; З метою збереження сумісності і це необхідно враховувати при написанні сценаріїв, null - це примітивний тип даних, він не є об'єктом */ /* (2) - це дуже зручно, що оператор typeof виділяє функції окремо, але функція в JavaScipt - це теж об'єкт, в цьому легко переконатися, якщо виконати наступну конструкцію: */ typeof getExperience.__proto__.__proto__ // "object" (прототипом функції є об'єкт)

    Константи

    З виходом ECMAScript 6 з'явилася можливість створювати константи. Це здійснюється за допомогою ключового слова const.

    Const COLOR_RED = "#ff0000";

    Константа – це змінна, значення якої захищене від зміни. Тобто. при спробі змінити значення буде кинуто помилку.

    Const COLOR_RED = "#ff0000"; COLOR_RED = "#f44336"; // Uncaught TypeError: Assignment to constant variable.

    Якщо, наприклад, константа містить об'єкт, він не може бути змінений, а точніше посилання на нього. Але властивості цього об'єкта можна змінити.

    Const COLORS = ( red: "#ff0000", green: "#00ff00", blue: "#00ff00") COLORS = ["#ff0000", "#00ff00", "#00ff00"]; // Uncaught TypeError: Assignment to constant variable. COLORS.green = "#4caf50";

    © 2022 androidas.ru - Все про Android