
بررسی پاسخهای بخش ۳:
**پاسخ ۱:
- خط اول:
"200" + "20" = "20020"وقتی با+دو رشته را جمع کنیم، آنها به هم وصل میشوند (concatenate) - خط دوم:
200 + 20 = 220
**پاسخ ۲:
Boolean("")=false(رشته خالی falsy است)Boolean("0")=true(هر رشته غیرخالی truthy است)Boolean(0)=false(عدد صفر falsy است)Boolean([])=true(آرایه خالی هم truthy است)
**پاسخ ۳:
toFixed()روی رشته کار نمیکندparseInt(userAge).toFixed() + 5- نتیجه نهایی
"25" + 5 = "255"میشود! چونtoFixed()یک رشته برمیگرداند
راه حل بهتر:
let userAge = "25سال";
let ageAfter5Years = parseInt(userAge) + 5; // عدد 30
// یا اگر حتماً نیاز به toFixed داریم:
let ageAfter5Years = (parseInt(userAge) + 5).toFixed(); // رشته "30"نکات مهمی که یاد گرفتیم:
+با رشتهها: وقتی حداقل یکی از operandها رشته باشد،+عمل concatenation انجام میدهد- تبدیل نوع: همیشه مراقب باشیم چه نوع دادهای داریم و چه متدهایی روی آن کار میکند
- truthy/falsy: آرایه خالی
[]truthy است اما رشته خالی""falsy است
حتماً! با کمال میل. بیا دقیقاً بر اساس متن اصلی که ارائه کردی پیش بریم.
بخش ۴: عملگرها - ریاضی، مقایسه و منطق (مطابق متن اصلی)
۱. عملگرهای حسابی (Arithmetic Operators)
برای انجام عملیات ریاضی استفاده میشوند:
| عملگر | توضیح | مثال | نتیجه |
|---|---|---|---|
+ | جمع | 5 + 6 | 11 |
- | تفریق | 10 - 8 | 2 |
* | ضرب | 5 * 4 | 20 |
/ | تقسیم | 20 / 5 | 4 |
% | باقیمانده | 7 % 3 | 1 |
++ | افزایش | let a = 2; a++ | a = 3 |
-- | کاهش | let b = 5; b-- | b = 4 |
مثال از متن:
let x1 = 10, y1 = 4;
console.log(x1 + y1); // 14
console.log(x1 - y1); // 6
console.log(x1 * y1); // 40
console.log(x1 / y1); // 2.5
console.log(x1 % y1); // 2
let a = 5;
a++;
console.log(a); // 6
let b = 10;
b--;
console.log(b); // 9۲. عملگرهای مقایسهای (Comparison Operators)
دو مقدار را با هم مقایسه میکنند و true یا false برمیگردانند:
| عملگر | توضیح | مثال | نتیجه |
|---|---|---|---|
== | برابر (با تبدیل نوع) | 5 == '5' | true |
=== | برابر دقیق (بدون تبدیل نوع) | 5 === '5' | false |
!= | نامساوی (با تبدیل نوع) | 5 != '5' | false |
!== | نامساوی دقیق (بدون تبدیل نوع) | 5 !== '5' | true |
> | بزرگتر از | 10 > 5 | true |
< | کوچکتر از | 10 < 5 | false |
>= | بزرگتر یا مساوی | 10 >= 10 | true |
<= | کوچکتر یا مساوی | 10 <= 5 | false |
مثال از متن:
let num1 = 10, num2 = 5, num3 = "10";
console.log(num1 == num3); // true (مقادیر یکسان پس از تبدیل نوع)
console.log(num1 === num3); // false (نوعها متفاوت است)
console.log(num1 > num2); // true
console.log(num1 <= num2); // false
console.log(num1 !== num3); // true (مقادیر یا نوعها متفاوت است)۳. عملگرهای منطقی (Logical Operators)
برای ترکیب چند شرط استفاده میشوند:
| عملگر | توضیح | مثال | نتیجه |
|---|---|---|---|
&& | AND (هر دو باید true باشند) | true && false | false |
| || | OR (یکی باید true باشد) | true || false | true |
! | NOT (برعکس میکند) | !true | false |
مثال از متن:
let a = 10, b = 5, c = 15;
// AND منطقی
if (a > b && c > a) {
console.log("هر دو شرط true هستند.");
} else {
console.log("حداقل یکی از شرطها false است.");
}
// خروجی: "هر دو شرط true هستند."
// OR منطقی
if (a < b || c > a) {
console.log("حداقل یکی از شرطها true است.");
}
// خروجی: "حداقل یکی از شرطها true است."
// NOT منطقی
let isLoggedIn = false;
if (!isLoggedIn) {
console.log("کارگر وارد سیستم نیست.");
}
// خروجی: "کارگر وارد سیستم نیست."۴. اولویت عملگرها (Operator Precedence)
تعیین میکند کدام عملگر زودتر اجرا شود:
()بالاترین اولویت را دارد*و/قبل از+و-اجرا میشوند&&قبل از||اجرا میشود
مثال از متن:
let result = 10 + 5 * 2; // ضرب اولویت دارد
console.log(result); // 20
let result2 = (10 + 5) * 2; // پرانتز اولویت دارد
console.log(result2); // 30سؤالات تمرینی بخش ۴ (مطابق متن اصلی):
۱. خروجی کد زیر چیست؟
let num = 7;
console.log(num++ + ++num);۲. کدام یک از عبارات زیر true برمیگرداند؟
5 == "5" // اول
5 === "5" // دوم
"" == false // سوم
0 == false // چهارم۳. با استفاده از عملگرهای منطقی، شرطی بنویس که بررسی کند:
- یک عدد بین ۱۸ تا ۶۰ است (شامل خود ۱۸ و ۶۰ باشد)
- یا اینکه عدد دقیقاً برابر ۱۶ باشد