Типи даних JavaScript: Пояснення типу

typeof- це ключове слово JavaScript, яке повертає тип змінної, коли ви її викликаєте. Ви можете використовувати це для перевірки параметрів функції або перевірки, чи визначені змінні. Є й інші способи використання.

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

Наприклад:

var x = 12345; // number x = 'string'; // string x = { key: 'value' }; // object

Як видно з наведеного прикладу, змінна в JavaScript може змінювати типи протягом виконання програми. Це може бути важко відстежувати як програміста, і тут typeofоператор корисний.

typeofОператор повертає рядок , яка представляє поточний тип змінних. Ви використовуєте його, набравши typeof(variable)або typeof variable. Повертаючись до попереднього прикладу, ви можете використовувати його для перевірки типу змінної xна кожному етапі:

var x = 12345; console.log(typeof x) // number x = 'string'; console.log(typeof x) // string x = { key: 'value' }; console.log(typeof x) // object

Це може бути корисно для перевірки типу змінної у функції та продовження за необхідності.

Ось приклад функції, яка може приймати змінну, яка є рядком або числом:

function doSomething(x) { if(typeof(x) === 'string') { alert('x is a string') } else if(typeof(x) === 'number') { alert('x is a number') } }

Інший спосіб, яким typeofможе бути корисний оператор, - це забезпечення того, щоб змінна була визначена перед спробою отримати до неї доступ у коді. Це може допомогти запобігти помилкам у програмі, які можуть виникнути при спробі отримати доступ до змінної, яка не визначена.

function(x){ if (typeof(x) === 'undefined') { console.log('variable x is not defined'); return; } // continue with function here... }

Результат typeofоператора може не завжди бути таким, як ви очікуєте, коли ви перевіряєте номер.

Числа можуть перетворюватися на значення NaN (не число) з багатьох причин.

console.log(typeof NaN); //"number"

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

var x = 1; var y = { number: 2 }; console.log(x * y); // NaN console.log(typeof (x * y)); // number

При перевірці числа недостатньо перевірити вихідні дані typeofдля числа, оскільки NaNтакож

проходить цей тест.

Ця функція перевіряє цифри, а також не дозволяє NaNпередавати значення.

function isNumber(data) { return (typeof data === 'number' && !isNan(data)); }

Навіть думаючи, що це корисний метод перевірки, ми повинні бути обережними, оскільки javascript має деякі дивні частини, і одна з них є результатом typeofнад конкретними інструкціями. Наприклад, у javascript багато речей просто objectsтак ви знайдете.

var x = [1,2,3,4]; console.log(typeof x) // object console.log(typeof null) // object

Більше інформації:

Документація MDN для typeof