JavaScript data types
في البرمجة ، تعد أنواع البيانات مفهوما مهما.
لتكون قادرا على العمل مع المتغيرات ، من المهم معرفة شيء عن انوع البيانات.
بدون أنواع البيانات ، لا يمكن للكمبيوتر حل هذا بأمان:
-:input
;”let x = 16 + “bmw
-:output
16bmw
هل من المنطقي إضافة “bmw” إلى 16؟ هل ستنتج خطأ أم أنها ستنتج نتيجة؟
ستتعامل جافا سكريبت مع المثال أعلاه على النحو التالي:
-:input
;”let x =”bmw”+ “16
-:output
bmw16
عند إضافة رقم وسلسلة ، ستتعامل JavaScript مع الرقم على أنه string
تقوم JavaScript بحل التعبيرات من اليسار إلى اليمين. يمكن لتسلسلات (string) مختلفة إنتاج نتائج مختلفة:
المثال الاول
-:input
;”let x = 16 + 4 + “bmw
-:output
20bmw
المثال الثاني
-:input
let x = “bmw” + 16 + 4
-:output
bmw164
في المثال الأول ، تعامل JavaScript مع 16 و 4 كأرقام ، حتى تصل إلى “bmw”.
في المثال الثاني ، نظرا لأن المعامل الأول عبارة عن سلسلة ، فإن جميع المعاملات هي تعامل كسلاسل.
جافا سكريبت هي لغة dynamic
لا ترتبط المتغيرات في JavaScript مباشرة بأي نوع لقيمة معينه ، ويمكن تعيين أي متغير (وإعادة تعيين) قيم من جميع الأنواع:
على سبيل المثال
-:input
let weight = 42; // weightis now a number
weight = “bar”; // weight is now a string
weight = true; // weight is now a Boolean
; console.log (weight)
-: output
true
جافا سكريبت weak typing
JavaScript هي أيضا لغة مكتوبة بشكل weak typing ، مما يعني أنها تسمح بتحويل النوع عن طريقه الفرض ( coercions ) اي العملية تتضمن أنواعا غير متطابقة وسيتم فرص نوع على نوع (مثل المثال اعلاه string +number)
على سبيل المثال
-:input
const weight = 42; // weight is a number
const result = weight + “1”; // JavaScript coerces weight to a string, so it can be concatenated with the other operand
console.log(result); // 421
-:output
421
يوجد في JavaScript نوعان مختلفان من البيانات:
اولا :- primitives
primitives هو ببساطة نوع بيانات ليس objects .
في JS ، هناك 7 أنواع بيانات بدائية:–
Type | type of return value | Object wrapper |
Null | “object” | N/A |
Undefined | “undefined” | N/A |
Boolean | “Boolean“ | Boolean |
Number | “number” | Number |
BigInt | “bigint” | BigInt |
String | “string” | String |
Symbol | “symbol” | Symbol |
Boolean
يمثل Boolean واحدة فقط من قيمتين: true أو false. فكر في القيمة المنطقية على أنها مفتاح تشغيل / إيقاف أو مفتاح true / false.
على سبيل المثال
-:input
; var bo1 = true
; var bo2 = false
; console.log(bo1)
; console.log(bo2)
-:output
true
false
Number
يتم تخزين جميع أرقام JavaScript كأرقام عشرية (فاصلة عائمة).
يمكن كتابة الأرقام مع أو بدون الكسور العشرية:
على سبيل المثال
-: input
let x1 = 34.00; // With decimals
let x2 = 34; // Without decimals
; console.log (x1)
; console.log (x2)
-: output
34.00
34
BigInt
يتم تخزين جميع أرقام JavaScript بتنسيق 64 بت.
BigInt هو نوع بيانات جديد يمكن استخدامه لتخزين قيم الأعداد الصحيحة الكبيرة جدا بحيث لا يمكن تمثيلها بواسطة رقم جافا سكريبت عادي.
على سبيل المثال
-: input
let v= BigInt(“123456789012345678901234567890”); //BigInt
; console.log(v)
-: output
123456789012345678901234567890
String
تستخدم ال string لتخزين النص. يجب أن تكون string داخل علامات اقتباس مزدوجة ” ” أو مفردة ‘ ’ . في JS ، تكون string غير قابلة للتغيير (لا يمكن تغييرها).
على سبيل المثال
-:input
; ‘var st1 = ‘hello, it is me
; ‘var st2 = ‘hello, it is me
; console.log(st1)
; console.log(st2)
-: output
hello, it is me
hello, it is me
Null
Null له قيمة واحدة: undefined
اي المتغير الذي ليس له قيمة غير محدد.
على سبيل المثال
-: input
var testcard; // undefined
; console.log(testcard)
-: output
undefined
Symbol
هو نوع بيانات بدائي تماما مثل Number, String, or Boolean.
إنه يمثل identifiers “مخفيا” unique لا يمكن لأي رمز آخر الوصول إليه عن طريق الخطأ.
على سبيل المثال ، إذا أراد مبرمجون مختلفون إضافة خاصية person.id إلى شخص ينتمي إلى رمز جهة خارجية ، ق يحث خلط قيم مع بعصها البعض. يؤدي استخدام Symbol لإنشاء unique identifiers إلى حل هذه المشكلة:
على سبيل المثال
-:input
; let id = Symbol (‘id’)
; id = 140353
; console.log(result)
-:output
140353
إذا قمت بإنشاء رمزين بنفس الوصف ، فسيكون لهما قيم مختلفة:
Symbol(“id”) == Symbol(“id”); // false
typeof Operator
يمكنك استخدام عامل تشغيل typeof للعثور على النوع من متغير جافا سكريبت.
على سبيل المثال
-:input
” typeof “John Doe
typeof (3 + 4)
-:output
string
number
ثانيا :-Non-primitive
هذه هي أنواع البيانات المشتقة من أنواع البيانات البدائية. يتم استخدامه لتخزين أو الاحتفاظ بقيم متعددة في وقت واحد.يتضمن arrays, objects, and functions يتم تخصيص الذاكرة في الذاكرة المؤقتة. أنواع البيانات هذه قابلة للتغيير ، أي يمكن تغييرها .
Objects
على سبيل المثال
-: input
} =const person
,”firstName : “John
,”lastName : “Doe
, age : 50
; “eyeColor : “blue
; console.log (firstName,lastName , age ,eyeColor )
-: output
John Doe 50 blue
Arrays
يتم استخدامه لتخزين عناصر متعددة.
على سبيل المثال
-: input
const cars = [“Saab”,”Volvo”,”BMW”]
; console.log (cars [0])
-: output
Saab
Function
الدالة عبارة عن كتلة من التعليمات البرمجية محاطة بأقواس متعرجة تستخدم لأداء مهمة محددة.
على سبيل المثال
-: input
} function myFunction(p1, p2)
; return p1 * p2
myFunction(4, 3)
-: output
12
ملحوظه هامه
هنا هي أنarrays, functions هي أنواع بيانات object. ولكن عند التحقق من نوع functions باستخدام عامل التشغيل “typeof” ، فإنه يقوم بإرجاع functions . هذا خطأ في جافا سكريبت.
نقترح عليك أن تقرأ
مواقع التحديات البرمجية الأكثر شهرة 2022
ما هو ال Flexbox في CSS وليه بيتم استخدام ال 2022FLEX BOX
ما هو الفرق بين مطوري Full Stack و Backend و2022Front End
ما هو ال Position في Css وما هي انواعها ومتى يتم استخدامها وكيفيه حل مشاكلها ب Z-index
Java مقابل JavaScript: الفرق الرئيسي بين Java و 2022JavaScript
المصدر المفتوح للمطورين – دليل المبتدئين لمساعدتك على بدء المساهمة 2022
8 أسباب لماذا PHP لا تزال مهمة جدا لتطوير الويب
ما هو PHP؟ وكيف يعمل PHP؟ 2023
كيفية تثبيت php ؟2023