الفرق بين المراجعتين لصفحة: «JavaScript/Assignment Operators»
لا ملخص تعديل |
ط استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}' |
||
سطر 362: | سطر 362: | ||
* معيار [http://www.ecma-international.org/ecma-262/5.1/#sec-11.13 ECMAScript 5.1]. | * معيار [http://www.ecma-international.org/ecma-262/5.1/#sec-11.13 ECMAScript 5.1]. | ||
* معيار [http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%201st%20edition,%20June%201997.pdf#sec-11.13 ECMAScript 1st Edition]. | * معيار [http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%201st%20edition,%20June%201997.pdf#sec-11.13 ECMAScript 1st Edition]. | ||
[[تصنيف:JavaScript]] | [[تصنيف:JavaScript|{{SUBPAGENAME}}]] | ||
[[تصنيف:JavaScript Operator]] | [[تصنيف:JavaScript Operator|{{SUBPAGENAME}}]] |
المراجعة الحالية بتاريخ 15:40، 28 يناير 2018
معاملات الإسناد (assignment operators) تُسنِد القيمة التي على يمين المعامل إلى القيمة التي على يساره.
لمحة
معامل الإسناد البسيط هو رمز المساواة =، الذي يؤدي إلى إسناد القيمة التي على يمينه إلى القيمة التي على يساره، أي لو كان عندنا x = y فستُسنَد قيمة y إلى x؛ أما بقية معاملات الإسناد فهي اختصارٌ للعمليات القياسية كما هو واضح في الأقسام والأمثلة التالية.
الاسم | المعامل | المعنى |
---|---|---|
معامل الإسناد | x = y
|
x = y
|
معامل الإسناد والإضافة | x += y
|
x = x + y
|
معامل الإسناد والطرح | x -= y
|
x = x - y
|
معامل الإسناد والضرب | x *= y
|
x = x * y
|
معامل الإسناد والقسمة | x /= y
|
x = x / y
|
معامل الإسناد وحساب باقي القسمة | x %= y
|
x = x % y
|
معامل الإسناد ورفع العدد إلى القوة | x **= y
|
x = x ** y
|
معامل الإسناد والإزاحة إلى اليسار | x <<= y
|
x = x << y
|
معامل الإسناد والإزاحة إلى اليمين | x >>= y
|
x = x >> y
|
معامل الإسناد والإزاحة إلى اليمين دون الحفاظ على الإشارة | x >>>= y
|
x = x >>> y
|
معامل الإسناد وإجراء عملية AND الثنائية | x &= y
|
x = x & y
|
معامل الإسناد وإجراء عملية XOR الثنائية | x ^= y
|
x = x ^ y
|
معامل الإسناد وإجراء عملية OR الثنائية | x |= y
|
x = x | y
|
معامل الإسناد
معامل الإسناد البسيطة يُسنِد قيمةً (بعد تقديرها) إلى متغيرٍ، ومن الممكن إنشاء سلسلة من عمليات الإسناد لإسناد قيمة واحدة إلى عدِّة متغيرات (راجع قسم الأمثلة أدناه).
البنية العامة
x = y
أمثلة
// لتكن لدينا المتغيرات الآتية
// x = 5
// y = 10
// z = 25
x = y // x: 10
x = y = z // x, y, z: 25
معامل الإسناد والجمع
معامل الإسناد والجمع يُضيف قيمة ما على يمينه إلى قيمة المتغير ثم يُسنِد الناتج إلى المتغير، ويُحدِّد نوعا القيمتين سلوك معامل الإسناد والجمع، راجع صفحة معامل الجمع لمزيدٍ من المعلومات.
البنية العامة
x += y // x = x + y
أمثلة
// لتكن لدينا المتغيرات الآتية
// foo = 'foo'
// bar = 5
// baz = true
// رقم + رقم -> عملية جمع
bar += 2 // 7
// رقم + قيمة منطقية -> عملية جمع
baz += 1 // 2
// قيمة منطقية + قيمة منطقية -> عملية جمع
baz += false // 1
// رقم + سلسلة نصية -> عملية إضافة
bar += 'foo' // "5foo"
// سلسلة نصية + قيمة منطقية -> عملية إضافة
foo += false // "foofalse"
// سلسلة نصية + سلسلة نصية -> عملية إضافة
foo += 'bar' // "foobar"
معامل الإسناد والطرح
معامل الإسناد والطرح يطرح قيمة ما على يمينه من قيمة المتغير ثم يُسنِد الناتج إلى المتغير، راجع صفحة معامل الطرح لمزيدٍ من المعلومات.
البنية العامة
x -= y // x = x - y
أمثلة
// لتكن لدينا المتغيرات الآتية
// bar = 5
bar -= 2 // 3
bar -= 'foo' // NaN
معامل الإسناد والضرب
معامل الإسناد والضرب يضرب قيمة ما على يمينه بقيمة المتغير ثم يُسنِد الناتج إلى المتغير، راجع صفحة معامل الضرب لمزيدٍ من المعلومات.
البنية العامة
x *= y // x = x * y
أمثلة
// لتكن لدينا المتغيرات الآتية
// bar = 5
bar *= 2 // 10
bar *= 'foo' // NaN
معامل الإسناد والقسمة
معامل الإسناد والقسمة يقسم قيمة المتغير على قيمة ما على يمينه ثم يُسنِد الناتج إلى المتغير، راجع صفحة معامل القسمة لمزيدٍ من المعلومات.
البنية العامة
x /= y // x = x / y
أمثلة
// لتكن لدينا المتغيرات الآتية
// bar = 5
bar *= 2 // 10
bar *= 'foo' // NaN
معامل الإسناد وحساب باقي القسمة
معامل الإسناد وحساب باقي القسمة يقسم قيمة المتغير على قيمة ما على يمينه ثم يُسنِد باقي الناتج إلى المتغير، راجع صفحة معامل باقي القسمة لمزيدٍ من المعلومات.
البنية العامة
x %= y // x = x % y
أمثلة
// لتكن لدينا المتغيرات الآتية
// bar = 5
bar %= 2 // 1
bar %= 'foo' // NaN
bar %= 0 // NaN
معامل الإسناد ورفع العدد إلى قوة
معامل الإسناد ورفع العدد إلى قوة يرفع قيمة المتغير إلى قوة قيمة ما على يمينه ثم يُسنِد الناتج إلى المتغير، راجع صفحة معامل قوة العدد لمزيدٍ من المعلومات.
لاحظ أنَّ دعم هذا المعامل ما يزال ضعيفًا، إذ أُضيف في إصدار ECMAScript 2016 (أي ES7)، لذا انظر إلى دعم المتصفحات قبل استعماله.
البنية العامة
x **= y // x = x ** y
أمثلة
// لتكن لدينا المتغيرات الآتية
// bar = 5
bar **= 2 // 25
bar **= 'foo' // NaN
معامل الإسناد والإزاحة إلى اليسار
معامل الإسناد والإزاحة إلى اليسار يؤدي إلى إزاحة بتات المتغير إلى اليسار بالمقدار المحدد ثم يُسنِد الناتج إلى المتغير. راجع صفحة معامل الإزاحة إلى اليسار لمزيدٍ من المعلومات.
البنية العامة
x <<= y // x = x << y
أمثلة
var bar = 5; // (00000000000000000000000000000101)
bar <<= 2; // 20 (00000000000000000000000000010100)
معامل الإسناد والإزاحة إلى اليمين
معامل الإسناد والإزاحة إلى اليمين يؤدي إلى إزاحة بتات المتغير إلى اليمين بالمقدار المحدد ثم يُسنِد الناتج إلى المتغير. راجع صفحة معامل الإزاحة إلى اليمين لمزيدٍ من المعلومات.
البنية العامة
x >>= y // x = x >> y
أمثلة
var bar = 5; // (00000000000000000000000000000101)
bar >>= 2; // 1 (00000000000000000000000000000001)
var bar -5; // (-00000000000000000000000000000101)
bar >>= 2; // -2 (-00000000000000000000000000000010)
معامل الإسناد والإزاحة إلى اليمين دون الحفاظ على الإشارة
معامل الإسناد والإزاحة إلى اليمين دون الحفاظ على الإشارة يؤدي إلى إزاحة بتات المتغير إلى اليمين بالمقدار المحدد دون الحفاظ على إشارة العدد ثم يُسنِد الناتج إلى المتغير. راجع صفحة معامل الإزاحة إلى اليمين دون الحفاظ على الإشارة لمزيدٍ من المعلومات.
البنية العامة
x >>>= y // x = x >>> y
أمثلة
var bar = 5; // (00000000000000000000000000000101)
bar >>>= 2; // 1 (00000000000000000000000000000001)
var bar = -5; // (-00000000000000000000000000000101)
bar >>>= 2; // 1073741822 (00111111111111111111111111111110)
معامل الإسناد وإجراء عملية AND الثنائية
معامل الإسناد وإجراء عملية AND الثنائية يؤدي إلى استخدام التمثيل الثنائي للقيمتين وإجراء العملية AND عليهما ثم يُسنِد الناتج إلى المتغير. راجع صفحة المعامل AND لمزيدٍ من المعلومات.
البنية العامة
x &= y // x = x & y
أمثلة
var bar = 5;
// 5: 00000000000000000000000000000101
// 2: 00000000000000000000000000000010
bar &= 2; // 0
معامل الإسناد وإجراء عملية XOR الثنائية
معامل الإسناد وإجراء عملية XOR الثنائية يؤدي استخدام التمثيل الثنائي للقيمتين وإجراء العملية XOR عليهما ثم يُسنِد الناتج إلى المتغير. راجع صفحة المعامل XOR لمزيدٍ من المعلومات.
البنية العامة
x ^= y // x = x ^ y
أمثلة
var bar = 5;
bar ^= 2; // 7
// 5: 00000000000000000000000000000101
// 2: 00000000000000000000000000000010
// -----------------------------------
// 7: 00000000000000000000000000000111
معامل الإسناد وإجراء عملية OR الثنائية
معامل الإسناد وإجراء عملية OR الثنائية يؤدي استخدام التمثيل الثنائي للقيمتين وإجراء العملية OR عليهما ثم يُسنِد الناتج إلى المتغير. راجع صفحة المعامل OR لمزيدٍ من المعلومات.
البنية العامة
x |= y // x = x | y
أمثلة
var bar = 5;
bar |= 2; // 7
// 5: 00000000000000000000000000000101
// 2: 00000000000000000000000000000010
// -----------------------------------
// 7: 00000000000000000000000000000111
أمثلة
في بعض الحالات الغريبة لا يكون فيها معامل الإسناد (مثل x += y
) مطابقًا للتعبير الطويل الذي يختصره (أي x = x + y
) وذلك عندما تكون القيمة التي على يسار معامل الإسناد تحتوي على معامل إسناد آخر، لاحظ كيف ستختلف القيمة هنا بين الشكلين، وذلك لأنَّ قيمة المتغير i
ستُقدَّر مرتين في التعبير الثاني:
a[i++] += 5 // ستقدر قيمة المتغير مرة واحدة
a[i++] = a[i++] + 5 // ستقدر قيمة المتغير مرتين
دعم المتصفحات
الميزة | Chrome | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
الدعم الأساسي | نعم | نعم | نعم | نعم | نعم |
قوة العدد | 52 | 52 | غير مدعومة | نعم | ؟ |
مصادر ومواصفات
- مسودة المعيار ECMAScript Latest Draft.
- معيار ECMAScript 2015 (6th Edition).
- معيار ECMAScript 5.1.
- معيار ECMAScript 1st Edition.