JS typeof operatori
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 .
Qiymati bo‘lmagan o‘zgaruvchining typeof
undefined . Qiymat ham undefined .
Qiymatni undefined ga o‘rnatish orqali har qanday o‘zgaruvchini bo‘shatish mumkin.
Tip ham undefined bo‘ladi.
Bo‘sh qiymatlar
Bo‘sh qiymatning undefined bilan aloqasi yo‘q.
Bo‘sh String ham yuridik qiymatga, ham turga ega.
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:
Konstruktor yordamida obyektning Sana ekanligini tekshirishingiz mumkin:
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!
