JS typeof operatori

ULASHISH

Operator turi

typeof operatori JavaScript o‘zgaruvchisining ma’lumotlar turini qaytaradi.

Primitiv ma’lumotlar turlari

JavaScript-da ibtidoiy qiymat hech qanday xususiyat yoki usullarga ega bo‘lmagan yagona qiymatdir.

JavaScript 7 ta ibtidoiy ma’lumotlar turiga ega:

  • ip
  • raqam
  • mantiqiy
  • bigint
  • Belgi
  • null
  • Aniqlanmagan

typeof operatori o‘zgaruvchi yoki ifoda turini qaytaradi.

Misollar

typeof "John"         // Returns string
typeof ("John"+"Doe") // Returns string
typeof 3.14           // Returns number
typeof 33             // Returns number
typeof (33 + 66)      // Returns number
typeof true           // Returns boolean
typeof false          // Returns boolean
typeof 1234n          // Returns bigint
typeof Symbol()       // Returns symbol
typeof x              // Returns undefined
O‘zingiz sinab ko‘ring »
typeof null           // Returns object
O‘zingiz sinab ko‘ring »

JavaScript-da null ibtidoiy qiymatdir.

Biroq, typeof obyektni qaytaradi.

Bu JavaScript-dagi taniqli xato va tarixiy sabablarga ega.


Murakkab ma’lumotlar turlari

Murakkab ma’lumotlar turi bir nechta qiymatlarni va/yoki turli xil ma’lumotlar turlarini birgalikda saqlashi mumkin.

JavaScript bitta murakkab ma’lumotlar turiga ega:

  • obyekt

Arraylar, funksiyalar, to‘plamlar va Map’lar kabi boshqa barcha murakkab turlar faqat har xil turdagi obyektlardir.

typeof operatori faqat ikkita turni qaytaradi:

  • obyekt
  • funksiyasi

Misol

typeof {name:'John'}   // Returns object
typeof [1,2,3,4]       // Returns object
typeof new Map()       // Returns object
typeof new Set()       // Returns object

typeof function (){}   // Returns function
O‘zingiz sinab ko‘ring »

typeof operatori barcha turdagi obyektlar uchun obyektni qaytaradi:

  • Obyektlar
  • Arraylar
  • sanalar
  • Setlar
  • Map’lar

JavaScript Object Array yoki sana ekanligini aniqlash uchun typeof dan foydalana olmaysiz.


Massivni qanday tanib olish mumkin

O‘zgaruvchi Array ekanligini qanday bilish mumkin?

ECMAScript 5 (2009) buning uchun yangi usulni aniqladi: Array.isArray():

Misol

// Create an Array
const fruits = ["apples", "bananas", "oranges"];
Array.isArray(fruits);
O‘zingiz sinab ko‘ring »

Operatorning namunasi

instanceof operatori true qaytaradi agar obyekt belgilangan obyekt turining namunasi bo‘lsa:

Misollar

// Create a Date
const time = new Date();

(time instanceof Date);
O‘zingiz sinab ko‘ring »
// Create an Array
const fruits = ["apples", "bananas", "oranges"];

(fruits instanceof Array);
O‘zingiz sinab ko‘ring »
// Create a Map
const fruits = new Map([
  ["apples", 500],
  ["bananas", 300],
  ["oranges", 200]
]);

(fruits instanceof Map);
O‘zingiz sinab ko‘ring »
// Create a Set
const fruits = new Set(["apples", "bananas", "oranges"]);

(fruits instanceof Set);
O‘zingiz sinab ko‘ring »


Aniqlanmagan o‘zgaruvchilar

Aniqlanmagan o‘zgaruvchining typeof undefined .

Misol

typeof car;
O‘zingiz sinab ko‘ring »

Qiymati bo‘lmagan o‘zgaruvchining typeof undefined . Qiymat ham undefined .

Misol

let car;
typeof car;
O‘zingiz sinab ko‘ring »

Qiymatni undefined ga o‘rnatish orqali har qanday o‘zgaruvchini bo‘shatish mumkin.

Tip ham undefined bo‘ladi.

Misol

let car = "Volvo";
car = undefined;
O‘zingiz sinab ko‘ring »

Bo‘sh qiymatlar

Bo‘sh qiymatning undefined bilan aloqasi yo‘q.

Bo‘sh String ham yuridik qiymatga, ham turga ega.

Misol

let car = "";
typeof car;
O‘zingiz sinab ko‘ring »

Null

JavaScript-da null "hech narsa" dir. Bu mavjud bo‘lmagan narsa bo‘lishi kerak.

Afsuski, JavaScript-da null ma’lumotlar turi obyekt hisoblanadi.

Obyektni nullga o‘rnatish orqali uni bo‘shatish mumkin:

Misol

// Create an Object
let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};

person = null;
// Now value is null, but type is still an object
O‘zingiz sinab ko‘ring »

Obyektni undefined ga o‘rnatish orqali ham bo‘shatish mumkin:

Misol

let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};

person = undefined;
// Now both value and type is undefined
O‘zingiz sinab ko‘ring »

Aniqlanmagan va null o‘rtasidagi farq

undefined va null qiymatlari teng, lekin turi bo‘yicha farq qiladi:

typeof undefined      // undefined
typeof null           // object

null === undefined    // false
null == undefined     // true
O‘zingiz sinab ko‘ring »

Konstruktor xususiyati

constructor xossasi konstruktorni qaytaradi barcha JavaScript o‘zgaruvchilari uchun funksiya.

Misol

// Returns function Object() {[native code]}:
{name:'John',age:34}.constructor

// Returns function Array() {[native code]}:
[1,2,3,4].constructor

// Returns function Date() {[native code]}:
new Date().constructor

// Returns function Set() {[native code]}:
new Set().constructor

// Returns function Map() {[native code]}:
new Map().constructor

// Returns function Function() {[native code]}:
function () {}.constructor

O‘zingiz sinab ko‘ring »

Konstruktor yordamida obyekt Array ekanligini tekshirishingiz mumkin:

Misol

(myArray.constructor === Array);

O‘zingiz sinab ko‘ring »

Konstruktor yordamida obyektning Sana ekanligini tekshirishingiz mumkin:

Misol

(myDate.constructor === Date);

O‘zingiz sinab ko‘ring »


Hammasi birga

typeof "John"          // Returns "string"
typeof ("John"+"Doe")  // Returns "string"
typeof 3.14            // Returns "number"
typeof (33 + 66)       // Returns "number"
typeof NaN             // Returns "number"
typeof 1234n           // Returns "bigint"
typeof true            // Returns "boolean"
typeof false           // Returns "boolean"
typeof {name:'John'}   // Returns "object"
typeof [1,2,3,4]       // Returns "object"
typeof {}              // Returns "object"
typeof []              // Returns "object"
typeof new Object()    // Returns "object"
typeof new Array()     // Returns "object"
typeof new Date()      // Returns "object"
typeof new Set()       // Returns "object"
typeof new Map()       // Returns "object"
typeof function () {}  // Returns "function"
typeof x               // Returns "undefined"
typeof null            // Returns "object"
O‘zingiz sinab ko‘ring »

NaN ma’lumotlar turi (Raqam emas) bu raqam!


Bo‘sh operator

Void operatori ifodani baholaydi va aniqlanmaganni qaytaradi. Ushbu operator ko‘pincha "void (0)" yordamida aniqlanmagan ibtidoiy qiymatni olish uchun ishlatiladi (qaytish qiymatidan foydalanmasdan ifodani baholashda foydali).

Misol

<a href="javascript:void(0);">
  Useless link
</a>

<a href="javascript:void(document.body.style.backgroundColor='red');">
  Click me to change the background color of body to red
</a>
O‘zingiz sinab ko‘ring »


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!