๋ชจ๋“  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์•ผ ํ•˜๋Š” 33๊ฐ€์ง€ ๊ฐœ๋…

 

GitHub - yjs03057/33-js-concepts: ๋ชจ๋“  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์•ผ ํ•˜๋Š” 33๊ฐ€์ง€ ๊ฐœ๋…

๋ชจ๋“  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์•ผ ํ•˜๋Š” 33๊ฐ€์ง€ ๊ฐœ๋…. Contribute to yjs03057/33-js-concepts development by creating an account on GitHub.

github.com

==(Equal Operator, ์ด์ค‘ ๋“ฑํ˜ธ, ๋™๋“ฑ ์—ฐ์‚ฐ์ž)

Javascript์—์„œ ๋™๋“ฑ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๋‘ ๋ณ€์ˆ˜์˜ ๊ฐ’๋งŒ ์ฒดํฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐ’๋งŒ ๊ฐ™๋‹ค๋ฉด true๊ฐ€ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

 

<์˜ˆ์ œ 1>

var a = 3;
var b = '3';
let c = 3;
a == b; // true
a == c; // true
b == c; // true

<์˜ˆ์ œ 2>

โœ” 0๊ฐ’์€ false์™€ ๋™์ผํ•˜๋ฏ€๋กœ -> true ์ถœ๋ ฅ

0 == false // true

โœ” ์ž๋™ ์œ ํ˜•๋ณ€ํ™” ๋น„๊ต

2 == "2" // expected output: true

==(๋™๋“ฑ ์—ฐ์‚ฐ์ž)๋Š” ์–‘ ์˜†์˜ ๊ฐ’์„ ๋น„๊ตํ•˜๊ธฐ ์ „์— ๊ฐ•์ œ์ ์œผ๋กœ ์•”์‹œ์  ํ˜•๋ณ€ํ™˜(Implicit Coercion)๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ•์ œ์ ์ธ ํ˜•๋ณ€ํ™˜ ๊ณผ์ •์„ ํ†ตํ•ด ํ”ผ์—ฐ์‚ฐ์ž๋“ค์„ ๊ณตํ†ต๋œ ํƒ€์ž…์œผ๋กœ ๋งŒ๋“ค๊ณ  ๊ทธ ์•ˆ์— ์žˆ๋Š” ๊ฐ’๋งŒ์„ ๋น„๊ตํ•˜๋Š”, '๋Š์Šจํ•œ ๋น„๊ต'๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.

===(Strict Equal Operator, ์‚ผ์ค‘ ๋“ฑํ˜ธ, ์ผ์น˜ ์—ฐ์‚ฐ์ž)

Javascript์—์„œ ์ผ์น˜ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์—„๊ฒฉํžˆ ๋™์ผํ•œ์ง€๋ฅผ ์ฒดํฌํ•ฉ๋‹ˆ๋‹ค.
๊ฐ’์ด ๊ฐ™์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์œ ํ˜•(Type)๋„ ๊ฐ™์•„์•ผ true๊ฐ’์ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

 

<์˜ˆ์ œ 1>

5 === 5;
// true

'hello world' === 'hello world';
// true (๋‘˜ ๋‹ค String, ๋™์ผํ•œ ๊ฐ’)
true === true;
// true (Booleans, ๋™์ผํ•œ ๊ฐ’)

77 === '77';
// false(Number vs String)

'cat' === 'dog';
// false(๋‘˜ ๋‹ค String์ด์ง€๋งŒ ๋‹ค๋ฅธ ๊ฐ’์„ ๊ฐ€์ง)

false === 0;
// false(์œ ํ˜•, ๊ฐ’์ด ๋ชจ๋‘ ๋‹ค๋ฆ„)

<์˜ˆ์ œ 2>

โœ” ๋‘ ํ”ผ์—ฐ์‚ฐ์ž์˜ ์œ ํ˜•์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— -> false
0 === false // expected output: false
console.log(typeof 0);     // expected output: "number"
console.log(typeof false); // expected output: "boolean"

โœ” ๋‘ ํ”ผ์—ฐ์‚ฐ์ž์˜ ์œ ํ˜•์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— -> false

2 === "2" // expected output: false
console.log(typeof 2);    // expected output: "number"
console.log(typeof "2");  // expected output: "string"

===(์ผ์น˜ ์—ฐ์‚ฐ์ž)๋Š” ==(๋™๋“ฑ ์—ฐ์‚ฐ์ž)์™€ ๋‹ฌ๋ฆฌ ์•”์‹œ์  ํ˜•๋ณ€ํ™˜(Implicit Coercion) ๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š” '์—„๊ฒฉํ•œ ๋น„๊ต'๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

typeof

typeof ์—ฐ์‚ฐ์ž๋Š” undefined, null, boolean, number, string, symbol, object, function์˜ Javascript๊ฐ€ ๊ฐ€์ง„ 7๊ฐ€์ง€ ๋ณ€์ˆ˜ ํƒ€์ž…์„ ๊ตฌ๋ถ„ํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

typeof ์—ฐ์‚ฐ์ž

console.log(typeof undeclaredVariable); // "undefined"
console.log(typeof null); // "object"
console.log(typeof true); // "boolean"
console.log(typeof 27); // "number"
console.log(typeof 'YD'); // "string"
console.log(typeof Symbol()); // "symbol"
console.log(typeof function () {}); // "function"
console.log(typeof {}); // "object"

null์€ ์™œ 'object'์ธ๊ฐ€?

typeof ์—ฐ์‚ฐ์ž๋Š” null์„ object๋ผ๊ณ  ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค. null์„ object๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ด์œ ๋Š” Mozilla์—์„œ๋Š” ์ด์™€ ๊ฐ™์ด ์ด์•ผ๊ธฐํ•ฉ๋‹ˆ๋‹ค.

null === object

๋ฐฐ์—ด๋„ 'object'๋กœ ํ‘œํ˜„๋จ

typeof [];
// 'object'

Javascript๋Š” ๋ฐฐ์—ด(array) ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ, typeof๋Š” ๋ฐฐ์—ด(array)์„ ๊ตฌ๋ถ„ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.
typeof []๋Š” object๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
typeof๋Š” ๋ฐฐ์—ด์„ ์‹๋ณ„ํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์—ด์„ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Array.isArray()๋ผ๋Š” ๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ด๋Š” ๊ฐ์ฒด๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ ๊ตฌ๋ถ„์„ ํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์—์„œ๋Š” ๋ณ„๋„์˜ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

Summary

  • --: ๋‘ ๋ณ€์ˆ˜์˜ [๊ฐ’]์„ ๋น„๊ต
  • ---: ๋‘ ๋ณ€์ˆ˜์˜ [๊ฐ’], [์œ ํ˜•]์„ ๋ชจ๋‘ ๋น„๊ต
  • typeof: typeof ์—ฐ์‚ฐ์ž๋Š” Javascript๊ฐ€ ๊ฐ€์ง„ ๋ณ€์ˆ˜ ํƒ€์ž…์„ ๊ตฌ๋ถ„ํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉ

References

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ: '==' ์™€ '===' ๋Š” ๋‹ค๋ฅด๋‹ค!

๋ฌด์—‡์ด ๋‹ค๋ฅธ๊ฐ€? ์ €๋Š” ์ž๋ฐ” ์–ธ์–ด๋ฅผ ๋จผ์ € ๋ฐฐ์šด ์ž…์žฅ์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ๊นŠ๊ฒŒ ๋…ธ์ถœ๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ถฉ๊ฒฉ์„ ๋ฐ›์•˜๋‹ค. ๋น„๋ก ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์–ด๋–ค ๊ธฐ๋Šฅ, ์‚ฌ๊ฑด ์ฒ˜๋ฆฌ, ๊ทธ๋ฆฌ๊ณ  ์–ด๋–ค jQuery ์†์ž„์ˆ˜์— ์ƒ

velog.io

 

[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] =, == , === ์˜ ์ฐจ์ด์— ๋Œ€ํ•ด์„œ

์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ž์ฒด๋Š” ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ•œ ์–ธ์–ด์— ์ต์ˆ™ํ•ด์ง€๋ฉด ๋‹ค๋ฅธ ์–ธ์–ด๋„ ์‰ฝ๊ฒŒ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์ฃ . ํ•˜์ง€๋งŒ ๊ฐ ์–ธ์–ด๋งŒ์˜ ํŠน์ดํ•˜๊ณ  ํŽธํ•œ ๋ฌธ๋ฒ•๋“ค์ด ์žˆ๋Š”๋ฐ ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” JavaScript

all-dev-kang.tistory.com

 

Javascript - typeof ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž

 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋ณ€์ˆ˜ ํƒ€์ž…์„ ๋ฌธ์ž๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜์ธ typeof ์—ฐ์‚ฐ์ž๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. typeof ์—ฐ์‚ฐ์ž๋Š” undefined, null, boolean, number, string, symbol, object, function์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๊ฐ€์ง„ 7๊ฐ€์ง€ ๋ณ€์ˆ˜ ํƒ€..

7942yongdae.tistory.com

 

๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค!