JavaScript typeof

عملگر typeof

در جاوا اسکریپت ۵ نوع داده که می‌تواند دارای مقدار باشند:

  • string
  • number
  • boolean
  • object
  • function

۶ نوع شیء:

  • Object
  • Date
  • Array
  • String
  • Number
  • Boolean

و دو نوع داده که نمی‌توانند دارای مقدار باشند وجود دارد:

  • null
  • undefined

با استفاده از عملگر typeof می‌توانید نوع داده یک متغیر را در جاو اسکریپت پیدا کنید.

typeof "John"         // Returns "string"
typeof 3.14         // Returns "number"
typeof NaN         // Returns "number"
typeof false         // Returns "boolean"
typeof [1,2,3,4]         // Returns "object"
typeof {name:'John', age:34}         // Returns "object"
typeof new Date()         // Returns "object"
typeof function () {}         // Returns "function"
typeof myCar         // Returns "undefined" *
typeof null         // Returns "object"

نمی‌توانید از typeof جهت بررسی آرایه (یا تاریخ) بودن نوع شیء استفاده کنید.

خصوصیت constructor

خصوصیت constructor تابع سازنده را برای همه متغیرهای جاوا اسکریپت برمی‌گرداند.

"John".constructor       // Returns function String() {[native code]}
(3.14).constructor       // Returns function Number() {[native code]}
false.constructor       // Returns function Boolean() {[native code]}
[1,2,3,4].constructor       // Returns function Array() {[native code]}
{name:'John',age:34}.constructor       // Returns function Object() {[native code]}
new Date().constructor       // Returns function Date() {[native code]}
function () {}.constructor       // Returns function Function(){[native code]}

با استفاده از این خصوصیت می‌توانید تابعی بسازید که نوع آرایه بودن شیء را بررسی کند.

function isArray(myArray) {
    return myArray.constructor.toString().indexOf("Array") > -1;
}

یا به شکل خیلی ساده‌تر:

function isArray(myArray) {
    return myArray.constructor === Array;
}

برای بررسی تاریخ بودن شیء هم به همین نحو می‌توانید عمل کنید.