برنامه نویسی

اجبار در JS – یک Brushup سریع

Summarize this content to 400 words in Persian Lang در جاوا اسکریپت، نوع اجبار بر نحوه تبدیل مقادیر هنگام استفاده تأثیر می گذارد حسابی و عملگرهای منطقی. بیایید ببینیم که اجبار با هر نوع اپراتور چگونه کار می کند و هر دو را پوشش می دهد ضمنی و اجبار صریح در عملیات حسابی و منطقی

عملگرهای حسابی و اجبار

جاوا اسکریپت دارای پنج عملگر اصلی محاسباتی است: +، -، *، /، و %. در اینجا نحوه برخورد هر یک با اجبار آمده است:

1. + (اضافه)

رفتار: اگر یک عملوند یک رشته باشد، + عملوند دیگر را به یک رشته وادار می کند و اجرا می کند الحاق رشته.

در غیر این صورت: هر دو عملوند به اعداد وادار می شوند و جمع انجام می شود.

console.log(5 + “3”); // “53” (5 is coerced to “5” and concatenated)
console.log(“10” + 2); // “102” (2 is coerced to “2”)
console.log(5 + 3); // 8 (no coercion needed)

2. – (تفریق) * (ضرب) / (بخش) % (مدول)

رفتار: همه این عملگرها مقادیر عددی را انتظار دارند، بنابراین هر دو عملوند اگر قبلاً وجود نداشته باشند به اعداد وادار می شوند.

اگر اجبار شکست بخورد: مقادیر غیر عددی که قابل تبدیل نیستند منجر به NaN.

console.log(10 – “3”); // 7 (“3” is coerced to 3)
console.log(“20” / “5”); // 4 (both “20” and “5” are coerced to numbers)
console.log(5 * “2”); // 10 (“2” is coerced to 2)
console.log(“hello” – 2); // NaN (“hello” can’t be coerced to a number)

اپراتورهای منطقی و اجبار

عملگرهای منطقی در جاوا اسکریپت شامل && (و) || (OR)، و ! (نه). این عملگرها مستقیماً عملیات حسابی را انجام نمی دهند، اما از آنها استفاده می کنند صداقت و تقلبی ارزش ها در اجبار

ارزش های درست و نادرست

در جاوا اسکریپت:

ارزش های دروغین: false، 0، “” (رشته خالی) null، undefined، و NaN.

ارزش های واقعی: هر چیز دیگری، از جمله رشته های غیر خالی، اعداد غیر صفر، اشیا و آرایه ها.

1. && (منطقی و)

رفتار: اگر عملوند اول باشد تقلبی، بلافاصله برگردانده می شود. در غیر این صورت عملوند دوم برگردانده می شود.

اجبار: عملوندها برای تعیین درستی به مقادیر بولی وادار می شوند، اما مقادیر عملوند واقعی برگردانده می شوند (نه نتایج بولی).

console.log(true && “hello”); // “hello” (true is truthy, so it returns the second operand)
console.log(0 && “hello”); // 0 (0 is falsy, so it returns 0 without checking the second operand)
console.log(“world” && 42); // 42 (“world” is truthy, so it returns the second operand)

2. || (یا منطقی)

رفتار: اگر عملوند اول باشد صداقت، بلافاصله برگردانده می شود. در غیر این صورت عملوند دوم برگردانده می شود.

اجبار: عملوندها برای چک به مقادیر بولی وادار می شوند، اما مقادیر عملوند واقعی برگردانده می شوند.

console.log(false || “hello”); // “hello” (false is falsy, so it returns the second operand)
console.log(0 || 42); // 42 (0 is falsy, so it returns 42)
console.log(“hi” || “world”); // “hi” (“hi” is truthy, so it returns “hi” without checking the second operand)

3. ! (منطقی نه)

رفتار: عملوند را به یک بولی وادار می کند و سپس آن را معکوس می کند.

اجبار: مقادیر غیر بولی برای وارونگی به Boolean اجباری می شوند.

console.log(!”hello”); // false (“hello” is truthy, so `!` inverts it to false)
console.log(!0); // true (0 is falsy, so `!` inverts it to true)
console.log(!undefined); // true (undefined is falsy, so `!` inverts it to true)

مقایسه اپراتورها و اجبار

عملگرهای مقایسه شامل ==، ===، !=، !==، >، <، >=، و <=. اجبار نوع بر برخی از این اپراتورها به روش های خاصی تأثیر می گذارد:

1. == (برابری سست) و != (نابرابری سست)

رفتار: این عملگرها در صورت متفاوت بودن انواع عملوندها، اجبار نوع را انجام می دهند. آنها هر دو عملوند را به انواع قابل مقایسه (معمولا اعداد یا رشته ها) تبدیل می کنند.

console.log(5 == “5”); // true (string “5” is coerced to number 5)
console.log(null == undefined); // true (null and undefined are loosely equal)
console.log(0 == false); // true (false is coerced to 0)

2. === (برابری دقیق) و !== (نابرابری شدید)

رفتار: هیچ اجباری انجام نمی شود; هر دو مقدار و نوع باید یکسان باشند.

console.log(5 === “5”); // false (no coercion, different types)
console.log(0 === false); // false (no coercion, different types)
console.log(null === undefined); // false (no coercion, different types)

3. اپراتورهای رابطه ای (>، <، >=، <=)

رفتار: اگر هر دو عملوند رشته ای باشند، از نظر لغوی (به ترتیب حروف الفبا) با هم مقایسه می شوند. اگر یک یا هر دو عملوند غیر رشته ای باشند، ابتدا به اعداد وادار می شوند.

console.log(5 > “3”); // true (“3” is coerced to 3)
console.log(“10” < “2”); // true (both are strings, so compared lexicographically)
console.log(“10” < 2); // false (“10” is coerced to 10, compared to 2)

جدول خلاصه

اپراتور
مثال
نتیجه اجبار
توضیح

+
5 + “3”
“53”
الحاق رشته (5 مجبور به “5”)


10 – “5”
5

“5” مجبور به شماره کردن

*
4 * “3”
12

“3” مجبور به شماره کردن

/
“20” / 4
5

“20” مجبور به شماره کردن

%
10 % “3”
1

“3” مجبور به شماره کردن

&&
“hello” && 0
0

“hello” حقیقت دارد؛ برمی گرداند 0 به عنوان دروغین

`

`
“””

{% خام %}==

5 == “5”
true

“5” مجبور به شماره کردن

===
5 === “5”
false
بدون اجبار؛ انواع مختلف

>
“10” > 5
true

“10” مجبور به شماره کردن

<
“10” < “2”
true
مقایسه واژگانی چون هر دو رشته هستند

در جاوا اسکریپت، نوع اجبار بر نحوه تبدیل مقادیر هنگام استفاده تأثیر می گذارد حسابی و عملگرهای منطقی. بیایید ببینیم که اجبار با هر نوع اپراتور چگونه کار می کند و هر دو را پوشش می دهد ضمنی و اجبار صریح در عملیات حسابی و منطقی

عملگرهای حسابی و اجبار

جاوا اسکریپت دارای پنج عملگر اصلی محاسباتی است: +، -، *، /، و %. در اینجا نحوه برخورد هر یک با اجبار آمده است:

1. + (اضافه)

  • رفتار: اگر یک عملوند یک رشته باشد، + عملوند دیگر را به یک رشته وادار می کند و اجرا می کند الحاق رشته.
  • در غیر این صورت: هر دو عملوند به اعداد وادار می شوند و جمع انجام می شود.
  console.log(5 + "3"); // "53" (5 is coerced to "5" and concatenated)
  console.log("10" + 2); // "102" (2 is coerced to "2")
  console.log(5 + 3); // 8 (no coercion needed)

2. - (تفریق) * (ضرب) / (بخش) % (مدول)

  • رفتار: همه این عملگرها مقادیر عددی را انتظار دارند، بنابراین هر دو عملوند اگر قبلاً وجود نداشته باشند به اعداد وادار می شوند.
  • اگر اجبار شکست بخورد: مقادیر غیر عددی که قابل تبدیل نیستند منجر به NaN.
  console.log(10 - "3"); // 7 ("3" is coerced to 3)
  console.log("20" / "5"); // 4 (both "20" and "5" are coerced to numbers)
  console.log(5 * "2"); // 10 ("2" is coerced to 2)
  console.log("hello" - 2); // NaN ("hello" can't be coerced to a number)

اپراتورهای منطقی و اجبار

عملگرهای منطقی در جاوا اسکریپت شامل && (و) || (OR)، و ! (نه). این عملگرها مستقیماً عملیات حسابی را انجام نمی دهند، اما از آنها استفاده می کنند صداقت و تقلبی ارزش ها در اجبار

ارزش های درست و نادرست

در جاوا اسکریپت:

  • ارزش های دروغین: false، 0، "" (رشته خالی) null، undefined، و NaN.
  • ارزش های واقعی: هر چیز دیگری، از جمله رشته های غیر خالی، اعداد غیر صفر، اشیا و آرایه ها.

1. && (منطقی و)

  • رفتار: اگر عملوند اول باشد تقلبی، بلافاصله برگردانده می شود. در غیر این صورت عملوند دوم برگردانده می شود.
  • اجبار: عملوندها برای تعیین درستی به مقادیر بولی وادار می شوند، اما مقادیر عملوند واقعی برگردانده می شوند (نه نتایج بولی).
  console.log(true && "hello"); // "hello" (true is truthy, so it returns the second operand)
  console.log(0 && "hello"); // 0 (0 is falsy, so it returns 0 without checking the second operand)
  console.log("world" && 42); // 42 ("world" is truthy, so it returns the second operand)

2. || (یا منطقی)

  • رفتار: اگر عملوند اول باشد صداقت، بلافاصله برگردانده می شود. در غیر این صورت عملوند دوم برگردانده می شود.
  • اجبار: عملوندها برای چک به مقادیر بولی وادار می شوند، اما مقادیر عملوند واقعی برگردانده می شوند.
  console.log(false || "hello"); // "hello" (false is falsy, so it returns the second operand)
  console.log(0 || 42); // 42 (0 is falsy, so it returns 42)
  console.log("hi" || "world"); // "hi" ("hi" is truthy, so it returns "hi" without checking the second operand)

3. ! (منطقی نه)

  • رفتار: عملوند را به یک بولی وادار می کند و سپس آن را معکوس می کند.
  • اجبار: مقادیر غیر بولی برای وارونگی به Boolean اجباری می شوند.
  console.log(!"hello"); // false ("hello" is truthy, so `!` inverts it to false)
  console.log(!0); // true (0 is falsy, so `!` inverts it to true)
  console.log(!undefined); // true (undefined is falsy, so `!` inverts it to true)

مقایسه اپراتورها و اجبار

عملگرهای مقایسه شامل ==، ===، !=، !==، >، <، >=، و <=. اجبار نوع بر برخی از این اپراتورها به روش های خاصی تأثیر می گذارد:

1. == (برابری سست) و != (نابرابری سست)

  • رفتار: این عملگرها در صورت متفاوت بودن انواع عملوندها، اجبار نوع را انجام می دهند. آنها هر دو عملوند را به انواع قابل مقایسه (معمولا اعداد یا رشته ها) تبدیل می کنند.
  console.log(5 == "5"); // true (string "5" is coerced to number 5)
  console.log(null == undefined); // true (null and undefined are loosely equal)
  console.log(0 == false); // true (false is coerced to 0)

2. === (برابری دقیق) و !== (نابرابری شدید)

  • رفتار: هیچ اجباری انجام نمی شود; هر دو مقدار و نوع باید یکسان باشند.
  console.log(5 === "5"); // false (no coercion, different types)
  console.log(0 === false); // false (no coercion, different types)
  console.log(null === undefined); // false (no coercion, different types)

3. اپراتورهای رابطه ای (>، <، >=، <=)

  • رفتار: اگر هر دو عملوند رشته ای باشند، از نظر لغوی (به ترتیب حروف الفبا) با هم مقایسه می شوند. اگر یک یا هر دو عملوند غیر رشته ای باشند، ابتدا به اعداد وادار می شوند.
  console.log(5 > "3"); // true ("3" is coerced to 3)
  console.log("10" < "2"); // true (both are strings, so compared lexicographically)
  console.log("10" < 2); // false ("10" is coerced to 10, compared to 2)

جدول خلاصه

اپراتور مثال نتیجه اجبار توضیح
+ 5 + "3" "53" الحاق رشته (5 مجبور به "5")
- 10 - "5" 5 "5" مجبور به شماره کردن
* 4 * "3" 12 "3" مجبور به شماره کردن
/ "20" / 4 5 "20" مجبور به شماره کردن
% 10 % "3" 1 "3" مجبور به شماره کردن
&& "hello" && 0 0 "hello" حقیقت دارد؛ برمی گرداند 0 به عنوان دروغین
` ` “””
{% خام %}== 5 == "5" true "5" مجبور به شماره کردن
=== 5 === "5" false بدون اجبار؛ انواع مختلف
> "10" > 5 true "10" مجبور به شماره کردن
< "10" < "2" true مقایسه واژگانی چون هر دو رشته هستند

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا