This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

Logical OR (||)

Baseline Widely available

This feature is well established and works across many devices and browser versions. Itโ€™s been available across browsers since โจ2015๋…„ 7์›”โฉ.

๋…ผ๋ฆฌ์  OR (||) (๋…ผ๋ฆฌ์  ๋ถ„๋ฆฌ) ์—ฐ์‚ฐ์ž๋Š” ํ”ผ์—ฐ์‚ฐ์ž ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์ด ์ฐธ์ธ ๊ฒฝ์šฐ์—๋งŒ ์ฐธ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋ถˆ๋ฆฌ์–ธ(๋…ผ๋ฆฌ์ ) ๊ฐ’๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋ฉฐ, ์ด ๊ฒฝ์šฐ์—๋Š” ๋ถˆ๋ฆฌ์–ธ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ || ์—ฐ์‚ฐ์ž๋Š” ์‹ค์ œ๋กœ ์ง€์ •๋œ ํ”ผ์—ฐ์‚ฐ์ž ์ค‘ ํ•˜๋‚˜์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ, ์ด ์—ฐ์‚ฐ์ž๋ฅผ ๋ถˆ๋ฆฌ์–ธ์ด ์•„๋‹Œ ๊ฐ’๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ๋ถˆ๋ฆฌ์–ธ์ด ์•„๋‹Œ ๊ฐ’์ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

์‹œ๋„ํ•ด ๋ณด๊ธฐ

const a = 3;
const b = -2;

console.log(a > 0 || b > 0);
// Expected output: true

๋ฌธ๋ฒ•

js
x || y

๊ตฌ๋ฌธ

๋งŒ์•ฝ x๋ฅผ true๋กœ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด x๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด y๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ’์„ true๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ, ํ•ด๋‹น ๊ฐ’์€ ์†Œ์œ„ truthyํ•˜๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ’์„ false๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด, ํ•ด๋‹น ๊ฐ’์„ falsyํ•˜๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

false๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ํ‘œํ˜„์‹์˜ ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • null;
  • NaN;
  • 0;
  • ๋นˆ ๋ฌธ์ž์—ด ("" ๋˜๋Š” '' ๋˜๋Š” ``);
  • undefined.

|| ์—ฐ์‚ฐ์ž๋Š” ๋ถˆ๋ฆฌ์–ธ ๊ฐ’์ด ์•„๋‹Œ ํ”ผ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ฐ˜ํ™˜ ๊ฐ’์€ ํ•ญ์ƒ ๋ถˆ๋ฆฌ์–ธ ์›์‹œ ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ถˆ๋ฆฌ์–ธ ์—ฐ์‚ฐ์ž๋กœ ๊ฐ„์ฃผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜ํ™˜ ๊ฐ’(๋˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋ชจ๋“  ํ‘œํ˜„์‹)์„ ํ•ด๋‹น ๋ถˆ๋ฆฌ์–ธ ๊ฐ’์œผ๋กœ ๋ช…์‹œ์ ์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๋ฉด ์ด์ค‘ [NOT operator] ๋˜๋Š” Boolean ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‹จ๋ฝ ํ‰๊ฐ€

๋…ผ๋ฆฌ์  OR ํ‘œํ˜„์‹์€ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ‰๊ฐ€๋˜๋ฉฐ, ๋‹ค์Œ ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜์—ฌ "๋‹จ๋ฝ" ํ‰๊ฐ€๊ฐ€ ๊ฐ€๋Šฅํ•œ์ง€ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.

(some truthy expression) || expr์€ ์ฐธ ๊ฐ™์€ ๊ฐ’(truthy) ํ‘œํ˜„์‹์œผ๋กœ ๋‹จ๋ฝ ํ‰๊ฐ€๋ฉ๋‹ˆ๋‹ค.

๋‹จ๋ฝ์€ ์œ„์˜ expr ๋ถ€๋ถ„์ด ํ‰๊ฐ€๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ด๋กœ ์ธํ•œ ๋ถ€์ž‘์šฉ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. (์˜ˆ: expr์ด ํ•จ์ˆ˜ ํ˜ธ์ถœ์ธ ๊ฒฝ์šฐ ํ˜ธ์ถœ์ด ์ˆ˜ํ–‰๋˜์ง€ ์•Š์Œ) ์ด๋Š” ์ฒซ ๋ฒˆ์งธ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ํ‰๊ฐ€ํ•œ ํ›„์— ํ”ผ์—ฐ์‚ฐ์ž ๊ฐ’์ด ์ด๋ฏธ ๊ฒฐ์ •๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ˆ์ œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

js
function A() {
  console.log("called A");
  return false;
}
function B() {
  console.log("called B");
  return true;
}

console.log(B() || A());
// ํ•จ์ˆ˜ ํ˜ธ์ถœ๋กœ ์ธํ•ด "called B"๋ฅผ ์ฝ˜์†”์— ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
// ๊ทธ๋Ÿฐ ๋‹ค์Œ true(์—ฐ์‚ฐ์ž์˜ ๊ฒฐ๊ณผ ๊ฐ’)๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„

๋‹ค์Œ ํ‘œํ˜„์‹์€ ๋™์ผํ•ด ๋ณด์ผ ์ˆ˜ ์žˆ์ง€๋งŒ, && ์—ฐ์‚ฐ์ž๊ฐ€ || ์—ฐ์‚ฐ์ž๋ณด๋‹ค ๋จผ์ € ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋™์ผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. (์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ฐธ์กฐ).

js
true || false && false; // &&์ด ๋จผ์ € ์‹คํ–‰๋˜์–ด true๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
(true || false) && false; // ๊ทธ๋ฃนํ™”๊ฐ€ ๊ฐ€์žฅ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์œผ๋ฏ€๋กœ, false๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ

OR ์‚ฌ์šฉํ•˜๊ธฐ

๋‹ค์Œ ์ฝ”๋“œ๋Š” || (๋…ผ๋ฆฌ์  OR) ์—ฐ์‚ฐ์ž์˜ ์˜ˆ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

js
true || true; // t || t returns true
false || true; // f || t returns true
true || false; // t || f returns true
false || 3 === 4; // f || f returns false
"Cat" || "Dog"; // t || t returns "Cat"
false || "Cat"; // f || t returns "Cat"
"Cat" || false; // t || f returns "Cat"
"" || false; // f || f returns false
false || ""; // f || f returns ""
false || varObject; // f || object returns varObject

์ฐธ๊ณ  : ์ด ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ผ๋ถ€ ๋ณ€์ˆ˜์— ๊ธฐ๋ณธ๊ฐ’์„ ์ œ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ, ๊ฑฐ์ง“ ๊ฐ™์€ ๊ฐ’(falsy)์€ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ฃผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. null ๋˜๋Š” undefined๋งŒ ํ•„ํ„ฐ๋งํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ, ๋„ ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋ถˆ๋ฆฌ์–ธ์— ๋Œ€ํ•œ ๋ณ€ํ™˜ ๊ทœ์น™

AND๋ฅผ OR๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ

๋ถˆ๋ฆฌ์–ธ์„ ํฌํ•จํ•˜๋Š” ์•„๋ž˜ ์—ฐ์‚ฐ์€

js
bCondition1 && bCondition2

ํ•ญ์ƒ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

js
!(!bCondition1 || !bCondition2)

OR์„ AND๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ

๋ถˆ๋ฆฌ์–ธ์„ ํฌํ•จํ•˜๋Š” ์•„๋ž˜์˜ ์—ฐ์‚ฐ์€

js
bCondition1 || bCondition2

ํ•ญ์ƒ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

js
!(!bCondition1 && !bCondition2)

์ค‘์ฒฉ๋œ ๊ด„ํ˜ธ ์ œ๊ฑฐ

๋…ผ๋ฆฌ์  ํ‘œํ˜„์‹์€ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ‰๊ฐ€๋˜๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ • ๊ทœ์น™์„ ๋”ฐ๋ฅด๋Š” ๊ฒฝ์šฐ ๋ณต์žกํ•œ ์‹์—์„œ ๊ด„ํ˜ธ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ถˆ๋ฆฌ์–ธ์„ ํฌํ•จํ•˜๋Š” ๋‹ค์Œ ๋ณตํ•ฉ์ ์ธ ์—ฐ์‚ฐ์€

js
bCondition1 && (bCondition2 || bCondition3)

์–ธ์ œ๋‚˜ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

js
!(!bCondition1 || !bCondition2 && !bCondition3)

๋ช…์„ธ์„œ

Specification
ECMAScriptยฎ 2026 Language Specification
# prod-LogicalORExpression

๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ

๊ฐ™์ด ๋ณด๊ธฐ