الحسابات العددية في JavaScript
السيناريوهات الشائعة لتعامل الأرقام هي العمليات الحسابية.
سيمبولات الحساب في JavaScript
سيمبولات الحساب تقوم بعمليات حسابية على الأرقام (كلمات أو متغيرات).
المشغل | الوصف |
---|---|
+ | الجمع |
- | الطرح |
* | الضرب |
** | القوة (ES2016) |
/ | القسمة |
% | النسبة المئوية |
++ | الزيادة |
-- | التناقص |
سيمبولات الحساب
عمليات الحساب التقليدية تتعامل مع قيمين.
هذه الأرقام يمكن أن تكون
النموذج
var x = 7 + 8;
أو متغيرًا:
النموذج
var x = a + b;
أو تعبيرًا:
النموذج
var x = (7 + 8) * a;
السيمبولات والمطلقين
في العمليات الحسابية، يُدعى الرقمالمطلق.
العمليات التي تتم بين المطلقينالمشغلالتعريف.
المطلق | المشغل | المطلق |
---|---|---|
7 | + | 8 |
النسبة المئوية
النسبة المئويةسيمبول (%
) يعطي الباقي بعد عملية التقسيم.
var x = 7; var y = 2; var z = x % y;
التعليق:في العمليات الحسابية، عملية التقسيم بين عددين صحيحين تنتج بالباقي.
التعليق:في الرياضيات، الناتج من عملية المودول هو الباقي بعد عملية التقسيم.
القوة
سيمبول الرفع إلى القوة (**) يرفع المطلق الأول إلى قوة المطلق الثاني.
النموذج
var x = 5; var z = x ** 2; // النتيجة هي 25
النتج من x ** y هو نفسه كما في Math.pow(x,y):
النموذج
var x = 5; var z = Math.pow(x,2); // الناتج هو 25
أولوية المشغلات
أولوية المشغلات (Operator precedence) توضح ترتيب تنفيذ العمليات في تعبير حسابي.
النموذج
var x = 200 + 50 * 2;
هل يجب أن يكون الناتج هو 250 * 2 أم 200 + 100؟
هل يجب أن يكون الجمع أم الضرب الأولوي؟
في الرياضيات التقليدية، يتم إعطاء الضرب الأولوية.
الضرب (*
)) والقسمة (%
)) والجمع (+
)) والطرح (-
)) تحتوي على أولوية أعلىالأولوية.
في نفس الوقت، يمكنك تغيير أولوية العمليات باستخدام الأقواس، كما في الرياضيات المدرسية:
النموذج
var x = (200 + 50) * 2;
عند استخدام الأقواس، يتم حساب العمليات الموجودة داخل الأقواس أولاً.
عندما يكون لديك عدة مشغلات بحاجة إلى نفس أولوية (مثل الإضافة والطرح)، يتم حسابها من اليسار إلى اليمين:
النموذج
var x = 200 + 50 - 2;
قيمة أولوية مشغلات JavaScript
القيمة | المشغل | الوصف | النموذج |
---|---|---|---|
20 | ( ) | تجميع التعبيرات | (3 + 4) |
19 | . | المكون | person.name |
19 | [] | المكون | person["name"] |
19 | () | دعوة الدالة | myFunction() |
19 | new | إنشاء | new Date() |
17 | ++ | الزيادة المكتملة | i++ |
17 | -- | التقليل المكتمل | i-- |
16 | ++ | الزيادة المقدم | ++i |
16 | -- | التقليل المقدم | --i |
16 | ! | اللا | !(x==y) |
16 | typeof | النوع | typeof x |
15 | ** | الحساب بالقوة (ES7) | 10 ** 2 |
14 | * | الضرب | 10 * 5 |
14 | / | القسمة | 10 / 5 |
14 | % | مقسوم الأعداد المتبقية | 10 % 5 |
13 | + | الإضافة | 10 + 5 |
13 | - | الطرح | 10 - 5 |
12 | << | إنتقال إلى اليسار | x << 2 |
12 | >> | إنتقال إلى اليمين | x >> 2 |
12 | >>> | إنتقال إلى اليمين (بلا إشارة) | x >>> 2 |
11 | < | أصغر | x < y |
11 | <= | أصغر أو تساوي | x <= y |
11 | > | أكبر | x > y |
11 | >= | أكبر أو تساوي | x >= y |
11 | in | خصائص الكائن | "PI" in Math |
11 | instanceof | مثال على الكائن | instanceof Array |
10 | == | تساوي | x == y |
10 | === | تساوي صارم | x === y |
10 | != | غير متساوي | x != y |
10 | !== | غير متساوي | x !== y |
9 | & | الوظيفة & | x & y |
8 | ^ | الوظيفة XOR | x ^ y |
7 | | | الوظيفة الموجبة | x | y |
6 | && | الوجود | x && y |
5 | || | اللا | x || y |
4 | ? : | الشرط | ? "نعم" : "لا" |
3 | = | تخصيص | x = y |
3 | += | تخصيص | x += y |
3 | -= | تخصيص | x -= y |
3 | *= | تخصيص | x *= y |
3 | %= | تخصيص | x %= y |
3 | <<= | تخصيص | x <<= y |
3 | >>= | تخصيص | x >>= y |
3 | >>>= | تخصيص | x >>>= y |
3 | &= | تخصيص | x &= y |
3 | ^= | تخصيص | x ^= y |
3 | |= | تخصيص | x |= y |
2 | تقاطع | إيقاف الدالة | تقاطع x |
1 | , | الcomma | 7 , 8 |
ملاحظة:الأحمر الفاتح يشير إلى تقنيات تجريبية أو مقترحة (ECMASScript 2016 أو ES7).
نصيحة:التعبير الموجود في البارtheses سيتم حسابه بشكل كامل قبل استخدام قيمته في باقي التعبير.