نوع جافا سكريبت
يوجد في JavaScript خمسة أنواع مختلفة من البيانات يمكن أن تحتوي على قيم:
string
number
boolean
object
function
هناك 6 أنواع من الأشياء:
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"
يرجى ملاحظة:
- نوع بيانات NaN هو رقم
- نوع بيانات المصفوفة هو كائن
- نوع بيانات التاريخ هو كائن
- نوع البيانات الفارغ هو كائن
- نوع بيانات المتغير غير المحدد غير محدد *
- نوع بيانات المتغير الذي لم يتم تعيين قيمة له هو أيضًا غير معرف *
لا يمكنك استخدام typeof
لتحديد ما إذا كان كائن JavaScript عبارة عن مصفوفة (أو تاريخ).
البيانات البدائية
قيمة البيانات الأولية هي قيمة بيانات بسيطة واحدة بدون خصائص وطرق إضافية.
يمكن typeof
للمشغل إرجاع أحد هذه الأنواع الأولية:
string
number
boolean
undefined
مثال
typeof "John" // Returns
"string"
typeof 3.14 // Returns
"number"
typeof true // Returns
"boolean"
typeof false // Returns
"boolean"
typeof x
// Returns "undefined" (if x has no value)
البيانات المعقدة
يمكن typeof
للمشغل إرجاع أحد النوعين المعقدين:
function
object
يُرجع typeof
عامل التشغيل "object" للكائنات ، والمصفوفات ، و null.
عامل التشغيل typeof
لا يعيد "الكائن" للوظائف.
مثال
typeof {name:'John', age:34} // Returns "object"
typeof [1,2,3,4]
// Returns "object" (not "array", see note below)
typeof null // Returns
"object"
typeof function myFunc(){} // Returns "function"
يُرجع typeof
عامل التشغيل " object
" للمصفوفات لأن المصفوفات في JavaScript عبارة عن كائنات.
نوع البيانات من typeof
العامل typeof
ليس متغير. إنه عامل. عوامل التشغيل (+ - * /) ليس لديهم أي نوع بيانات.
ولكن ، يُرجع typeof
عامل التشغيل دائمًا سلسلة (تحتوي على نوع المعامل).
خاصية المنشئ
تُرجع constructor
الخاصية وظيفة المُنشئ لجميع متغيرات JavaScript.
مثال
"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]}
يمكنك التحقق من خاصية المُنشئ لمعرفة ما إذا كان الكائن هو Array
(يحتوي على الكلمة "Array"):
مثال
function isArray(myArray) {
return myArray.constructor.toString().indexOf("Array") > -1;
}
أو حتى أبسط من ذلك ، يمكنك التحقق مما إذا كان الكائن عبارة عن دالة صفيف :
مثال
function isArray(myArray) {
return myArray.constructor
=== Array;
}
يمكنك التحقق من خاصية منشئ لمعرفة ما إذا كان الكائن هو
Date
(يحتوي على الكلمة "التاريخ"):
مثال
function isDate(myDate) {
return myDate.constructor.toString().indexOf("Date") > -1;
}
أو حتى أبسط من ذلك ، يمكنك التحقق مما إذا كان الكائن دالة تاريخ :
مثال
function isDate(myDate) {
return myDate.constructor === Date;
}
غير معرف
في JavaScript ، المتغير بدون قيمة له قيمة undefined
. النوع أيضًا undefined
.
مثال
let car; // Value is undefined,
type is undefined
يمكن إفراغ أي متغير من خلال ضبط القيمة على undefined
. سيكون النوع أيضًا undefined
.
مثال
car = undefined; // Value is undefined,
type is undefined
قيم فارغة
القيمة الفارغة لا علاقة لها بها undefined
.
تحتوي السلسلة الفارغة على قيمة قانونية ونوع.
مثال
let car = ""; //
The value is
"", the typeof is "string"
باطل
في جافا سكريبت null
"لا شيء". من المفترض أن يكون شيئًا غير موجود.
لسوء الحظ ، في JavaScript ، نوع البيانات null
هو كائن.
يمكنك اعتباره خطأ في جافا سكريبت typeof null
ككائن. يجب أن يكون null
.
يمكنك تفريغ كائن عن طريق تعيينه على null
:
مثال
let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = null; //
Now value is null,
but type is still an object
يمكنك أيضًا إفراغ كائن عن طريق تعيينه على undefined
:
مثال
let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = undefined; //
Now both value and type is undefined
الفرق بين غير محدد و Null
undefined
null
ومتساوية في القيمة ولكنها مختلفة في النوع :
typeof undefined
// undefined
typeof null
// object
null === undefined
// false
null == undefined
// true