در حال بارگذاری...

عملگرهای منطقی

مقایسه یک جواب بله/خیر داد. در کار واقعی اغلب چند جواب با هم لازم است: هم سن کافی باشد و هم نمره؟ عضو است یا مهمان اجازه دارد؟ ابزاری که این جواب‌ها را به هم وصل یا برعکس می‌کند عملگر منطقی است: && و || و !. truthy و falsy را بلدید؛ اینجا سه نماد روزمره را می‌خوانید و به booleanی که می‌سازند تکیه می‌کنید.

عملگر منطقی یعنی چه؟

عملگر منطقی با مقدارهای شبیه boolean کار می‌کند. چیزی داخل نام ذخیره نمی‌کند (=) و نمی‌پرسد «مقدار یکی است؟» (===). یا چند جواب بله/خیر را ترکیب می‌کند، یا یکی را برعکس می‌کند. بعد از true && false نتیجه false است. بعد از true || false نتیجه true است. بعد از !false نتیجه true است. همان boolean را می‌توانید لاگ کنید، در متغیر نگه دارید، یا روی صفحه بنویسید.

نگاه سریع به عملگرها

📊 عملگرهای منطقی روزمره

عملگر خواندن روزمره نتیجهٔ نمونه
&& هر دو طرف قبول‌اند؟ true && true → true
! بله/خیر را برعکس کن !false → true

این جدول را دم دست بگذارید. برای شروع، به این عملگرها boolean شفاف بدهید — از مقایسه (age >= 18) یا خود true / false. مقدارهای دیگر هم truthy یا falsy حساب می‌شوند، ولی با بله/خیر صادق کمتر گیج می‌شوید.

AND با &&

javascript
console.log(true && true);
console.log(true && false);
console.log(false && true);
console.log(false && false);
let ok = true;
console.log(ok && true);

&& هر دو طرف را می‌خواهد

دو علامت & یعنی «و». برای اینکه کل عبارت truthy شود، هر دو طرف باید truthy باشند. اگر سمت چپ رد شود، جواب ترکیبی از همان اول خیر است — «نیمه‌بله» وجود ندارد.

کنسول به‌ترتیب true، false، false، false، true می‌دهد. فقط خط اول و آخر هر دو طرف را پاس می‌کنند. مثل دری با دو قفل: هر دو کلید باید بچرخد.

OR با ||

javascript
console.log(true || true);
console.log(true || false);
console.log(false || true);
console.log(false || false);
let guest = false;
console.log(guest || true);

|| یک طرف کافی است

دو خط عمودی یعنی «یا». اگر حداقل یک طرف truthy باشد، کل عبارت truthy است. فقط وقتی هر دو طرف رد شوند false می‌گیرید.

خروجی true، true، true، false، true است. فقط خط چهارم کامل می‌بازد. یک راه باز کافی است — مثل دری با دو کلید جدا که هر کدام به‌تنهایی باز می‌کند.

NOT با !

javascript
console.log(!true);
console.log(!false);
let ready = false;
console.log(!ready);
let open = true;
console.log(!open);

! جواب را برمی‌گرداند

یک ! جلوی عبارت یعنی «نه». truthy می‌شود falsy و برعکس. وقتی می‌خواهید بپرسید «هنوز آماده نیست؟» بدون اینکه مقایسه را دوباره بنویسید، !ready به‌کار می‌آید.

کنسول false، true، true، false چاپ می‌کند. ready برابر false بود، پس !ready می‌شود true. open برابر true بود، پس !open می‌شود false.

وصل کردن نتیجهٔ مقایسه‌ها

javascript
let age = 20;
let score = 75;
console.log(age >= 18 && score >= 60);
console.log(age >= 18 && score >= 90);
let member = false;
let pass = true;
console.log(member || pass);

چند مقایسه را به یک چک تبدیل کنید

منطق روزمره معمولاً دور نتیجهٔ مقایسه می‌پیچد. age >= 18 && score >= 60 دو سؤال رتبه‌بندی می‌پرسد و با «و» وصلشان می‌کند. member || pass می‌پرسد آیا حداقل یک مسیر باز است. سؤال را با === / >= بپرسید؛ وصل کردن جواب‌ها کار && / || است.

ذخیرهٔ پرچم ترکیبی

javascript
let age = 20;
let score = 75;
let allowed = age >= 18 && score >= 60;
console.log(allowed);
let member = false;
let guestOk = true;
let enter = member || guestOk;
console.log(enter);

allowed می‌شود true (هر دو چک قبول‌اند). enter هم true است چون مسیر مهمان باز است، حتی اگر member برابر false باشد. عبارت منطقی خودش boolean را ساخته — شما فقط اسم گذاشته‌اید.

یک دروازه روی صفحه

یک boolean ترکیبی حساب کنید، بعد برچسب کوتاهی روی صفحه بنویسید.

دروازهٔ صفحه با عملگر منطقی

html
<!DOCTYPE html>
<html>
<head>
<title>Logical — page gate</title>
</head>
<body>
<p id="out">…</p>
<script>
let age = 20;
let score = 75;
let allowed = age >= 18 && score >= 60;
let box = document.getElementById("out");
box.textContent = "allowed=" + allowed;
</script>
</body>
</html>

age برابر 20 و score برابر 75 است؛ پس هر دو طرف && قبول‌اند و صفحه allowed=true را نشان می‌دهد. score را 50 کنید، رفرش کنید؛ باید allowed=false ببینید. جلسه‌های بعد با if شاخه می‌زنند؛ این دمو فقط بله/خیر ترکیبی را چاپ می‌کند.

خودتان امتحان کنید

  1. true && false و true || false را لاگ کنید.
  2. !false و !true را لاگ کنید.
  3. let age = 16 بگذارید و age >= 18 && age < 65 را لاگ کنید.
  4. let age = 30 بگذارید و همان چک بازه را لاگ کنید.
  5. کنار هم false || true و false && true را ببینید و فرقشان را حس کنید.
  6. در دموی HTML فقط score را عوض کنید، رفرش کنید، متن تازهٔ allowed= را بخوانید.

اشتباه‌های رایج

  • نوشتن یک & یا | به‌جای && و ||
  • به‌کاربردن && وقتی منظورتان === بوده (وصل کردن در برابر «یکی است؟»)
  • انتظار اینکه && خودش دو عدد را مقایسه کند — اول هر طرف را با مقایسه بسازید
  • فراموش کردن که ! کل boolean جلویش را برعکس می‌کند
  • ریختن مقدار مبهم قبل از اینکه truthy/falsy را آرام بخوانید — با نتیجهٔ شفاف مقایسه شروع کنید

خلاصه

  • عملگر منطقی جواب بله/خیر را ترکیب یا برعکس می‌کند
  • && هر دو طرف را می‌خواهد؛ || حداقل یکی را؛ ! برعکس می‌کند
  • برای چک روزمره نتیجهٔ مقایسه‌ها را وصل کنید (age >= 18 && score >= 60)
  • اگر اسم می‌خواهید boolean را ذخیره کنید؛ اگر برچسب می‌خواهید روی صفحه بنویسید
  • نماد مقایسه و نماد منطقی شغل جدا دارند
  • بعدی: شرط if-else — با همین booleanها انتخاب می‌کنید کدام کد اجرا شود

🧠 دانش خود را بیازمایید

آماده شروع

دانش خود را بیازمایید

خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کرده‌اید

❓
8
سوالات
🎯
70%
برای قبولی
♾️
∞
زمان
🔄
∞
تلاش‌ها

📝 دستورالعمل‌ها

  • هر سوال را با دقت بخوانید
  • بهترین پاسخ را برای هر سوال انتخاب کنید
  • می‌توانید آزمون را هر چند بار که می‌خواهید تکرار کنید
  • پیشرفت شما در بالا نمایش داده می‌شود