Language/JavaScript

๐Ÿ“š && ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋กœ if๋ฌธ ๋‹จ์ถ•ํ•˜๊ธฐ

์ธํŒŒ_ 2022. 1. 3. 18:04

js-logical-operator

&& ์—ฐ์‚ฐ์ž ์กฐ๊ฑด๋ฌธ ํ‘œํ˜„

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ &&(AND) ์—ฐ์‚ฐ์ž๋Š” ์–‘์ชฝ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๋ชจ๋‘ true์ผ ๋•Œ true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์„ ๋•Œ๋Š” false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ด ํŠน์„ฑ์„ ์ด์šฉํ•˜์—ฌ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ if๋ฌธ์„ ํ•œ์ค„๋กœ ๋‹จ์ถ•์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

if (num !== 0) {
  console.log('num is not zero');
}
num !== 0 && console.log('num is not zero'); // if๋ฅผ ์—†์• ๊ณ  && ์—ฐ์‚ฐ์ž๋กœ ํ•œ์ค„๋กœ ๋‹จ์ถ•
num === 0 || console.log('num is not zero'); // || OR ์—ฐ์‚ฐ์ž๋กœ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด๋•Œ๋Š” ์ฒซ๋ฒˆ์งธ ์‹์ด false ์ผ๋•Œ๋งŒ ๋‹ค์Œ ์‹์ด ์‹คํ–‰๋œ๋‹ค

&& ์—ฐ์‚ฐ์ž ์™€ (์†Œ๊ด„ํ˜ธ) ํ‘œํ˜„

๊ทธ๋Ÿฐ๋ฐ ๋งŒ์ผ console.log() ์™€ ๊ฐ™์€ ํ•จ์ˆ˜ ํ˜ธ์ถœ์ด ์•„๋‹Œ, ์—ฐ์‚ฐ์‹ ์ฝ”๋“œ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ, ์œ„์™€ ๊ฐ™์ด ๋‹จ์ถ•ํ•ด ๋ฒ„๋ฆฌ๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ด๋•Œ๋Š” ์†Œ๊ด„ํ˜ธ๋ฅผ ์จ์„œ ํ‘œํ˜„์‹์„ ์ฝ”๋“œ ์‹คํ–‰์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์—ฌ์•ผ ํ•œ๋‹ค.

let x = 1;
if(x==1) {
	x=10;
}
console.log(x); // 10
let x = 1;
x==1 && (x=10); // ๋‹จ์ถ•
console.log(x); // 10

๋งŒ์ผ ์—ฌ๋Ÿฌ ์ค„ ์ผ ๊ฒฝ์šฐ, ์ฝค๋งˆ ์—ฐ์‚ฐ์ž์™€ ๊ฒฐํ•ฉํ•˜๋ฉด ์—ฌ๋Ÿฌ์ค„์„ ํ•œ์ค„๋กœ ํ•œ๋ฐฉ์— ํ‘œํ˜„ํ• ์ˆ˜ ์žˆ๋‹ค.

let x = 10, y, z;

if(x==10) {
    y = 100;
    z = x ** y;
    z++;
    x = z;
}

console.log(x); // 1e+100
let x = 10, y, z;

x==10 && (y = 100, z = x ** y, z++, x = z)

console.log(x); // 1e+100

 

 

์ด์ฒ˜๋Ÿผ && ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ if๋ฌธ์„ ๋‹จ์ถ•์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์€ ์ฝ”๋“œ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ช‡๋ช‡ ์‚ฌ๋žŒ๋“ค์€ ์˜คํžˆ๋ ค ์ต์ˆ™์น˜ ์•Š์€ ๋ฌธ๋ฒ•์— ๋•Œ๋ฌธ์— ์˜คํžˆ๋ ค ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง„๋‹ค๊ณ ๋“ค ํ•˜์—ฌ ์ด๊ฒฌ์ด ๋งŽ๋‹ค. ๋”ฐ๋ผ์„œ ์ฝ”๋“œ์˜ ๊ฐ„๊ฒฐํ•จ๋งŒ์„ ์ถ”๊ตฌํ•˜๊ธฐ ๋ณด๋‹ค๋Š”, ์ฝ”๋“œ์˜ ์˜๋ฏธ๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.