๐Ÿ‘ฉ๐Ÿปโ€๐Ÿซ TIL) Data Types

Solmiiยท2020๋…„ 4์›” 23์ผ
0

JavaScript

๋ชฉ๋ก ๋ณด๊ธฐ
3/24
post-thumbnail

Data types

๐Ÿ’๐Ÿปโ€โ™€๏ธ ์ด 7๊ฐœ์˜ ์ž๋ฃŒํ˜•์ด Data Type์œผ๋กœ ์ •์˜๋˜์–ด ์žˆ๋‹ค!

  • Boolean
  • Null
  • Undefined
  • Number
  • String
  • Symbol (ECMAScript6์— ์ถ”๊ฐ€๋จ)
  • Object

โœ‰๏ธ Primitive Types

  • ๋” ์ด์ƒ ์ž‘์€ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ ์งˆ ์ˆ˜ ์—†๋Š” single item
  • value ๊ฐ’ ์ž์ฒด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ๋‹ค!

๐Ÿ”ข number

JavaScript๋Š” ์ •๋ง ๋‹คํ–‰ํžˆ๋„..... number ํ•˜๋‚˜๋งŒ์œผ๋กœ ์ˆซ์ž ๋ฐ์ดํ„ฐ๋Š” ๋‹ค ๋์ด๋‹ค!!

์žฌ๋ฏธ๋กœ ๋ณด๋Š” C, Java ์–ธ์–ด์—์„œ์˜ ์ˆซ์ž data types
<C์–ธ์–ด์—์„œ์˜ ์ˆซ์ž data types>
<JAVA์–ธ์–ด์—์„œ์˜ ์ˆซ์ž data types>


โ‡’ ์ •์ˆ˜์ธ์ง€ ์†Œ์ˆ˜์ธ์ง€, ์–ด๋–ค ์‚ฌ์ด์ฆˆ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์„์ง€ ์‚ฌ์ „์— ๋ฏธ๋ฆฌ ์ƒ๊ฐํ•ด์„œ ๊ฑฐ๊ธฐ์— ๋งž๋Š” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ใ…Žใ„ทใ„ท....


์šฐ๋ฆฌ์˜ ๊ฐ“JS๋กœ ๋Œ์•„์™€์„œ...

let a = 12;
let b = 1.2;

JavsScript์—์„œ๋Š” ์‹ฌ์ง€์–ด number ๋ผ๊ณ  ๋”ฐ๋กœ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ , ๋ฐ”๋กœ let ์„ ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค!

โ‡’ ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ํƒ€์ž…์ด ๋‹ค์ด๋‚˜๋ฏนํ•˜๊ฒŒ ๊ฒฐ์ •๋˜๊ธฐ ๋•Œ๋ฌธ์—, let a ๋“ฑ ์„ ์–ธ ํ›„ ๋ฐ”๋กœ ์ˆซ์ž๋งŒ ์ ์–ด์ฃผ๋ฉด ๋~

const count = 17; // integer number(์ •์ˆ˜)
const size = 17.1; // decimal number(์†Œ์ˆ˜)
console.log(`value: ${count}, type: ${typeof count}`);
console.log(`value: ${size}, type: ${typeof size}`);

์ด๋ ‡๊ฒŒ number ํ•˜๋‚˜๋งŒ์œผ๋กœ ์ •์ˆ˜๋‚˜ ์†Œ์ˆ˜์— ์ƒ๊ด€์—†์ด ๋ชจ๋‘ type:number๋กœ ์ถœ๋ ฅ๋œ๋‹ค. (์™•ํŽธํ•˜๋‹ค!)

์ถ”ํ›„์— ๋ฐฐ์šฐ๊ฒŒ ๋  TypeScript ์—์„œ๋Š”?

let a: number = 12;
let b: number = 1.2;

number ๋ฅผ ๋ช…ํ™•ํžˆ ๋ช…์‹œํ•ด์•ผํ•˜๊ธด ํ•˜์ง€๋งŒ, number ํ•˜๋‚˜๋กœ ์ถฉ๋ถ„ํ•˜๋‹ค!


โš ๏ธ ํŠน์ดํ•œ number ๊ฐ’

const infinity = 1 / 0;
const negativeInfinity = -1 / 0;
const nAn = 'not a number' / 2;
console.log(infinity);
console.log(negativeInfinity);
console.log(nAn);

  • infinity ์ˆซ์ž๋ฅผ 0์œผ๋กœ ๋‚˜๋ˆ„๋ฉด ์–‘์˜ ๋ฌดํ•œ๋Œ€์ˆ˜๊ฐ€ ๋œ๋‹ค.
  • negativeInfinity ๋งˆ์ด๋„ˆ์Šค ์ˆซ์ž๋ฅผ 0์œผ๋กœ ๋‚˜๋ˆ„๋ฉด ์Œ์˜ ๋ฌดํ•œ๋Œ€์ˆ˜๊ฐ€ ๋œ๋‹ค.
  • NaN number๊ฐ€ ์•„๋‹Œ string์„ ์ˆซ์ž๋กœ ๋‚˜๋ˆ„๊ฒŒ ๋˜๋ฉด NaN(Not a Number) ๊ฐ’์ด ๋‚˜์˜จ๋‹ค.

    NaN์€ JavaScript์˜ ๊ฐ’๋“ค ์ค‘ ์œ ์ผํ•˜๊ฒŒ ์ž๊ธฐ ์ž์‹ ๊ณผ ๊ฐ™์ง€ ์•Š์€ ๊ฐ’์ด๋‹ค!

    ๋”ฐ๋ผ์„œ, ์–ด๋–ค ๊ฐ’์ด NaN์ธ์ง€ ํŒ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ผ๋ฐ˜์ ์ธ ๋น„๊ต ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ ๋˜๊ณ , ๋Œ€์‹  Number.isNaN๋˜๋Š” Object.is ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

    const thisIsNan = NaN;
    thisIsNan === NaN; // false = ๋น„๊ต ์—ฐ์‚ฐ์ž๋กœ๋Š” ํŒ๋ณ„์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
    Number.isNaN(thisIsNan); // true
    Object.is(thisIsNan, NaN); // true
    // ์ด ํ•จ์ˆ˜๋“ค์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค!
>๐Ÿ’๐Ÿปโ€โ™€๏ธ ๋ง‰๊ฐ„! bigInt ~~(์ค‘์š”ํ•œ๊ฑด ์•„๋‹˜)~~<br />
JavaScript์—์„œ์˜ ์ˆซ์ž๋Š” (-2^^53) ~ (2^^53) ๊นŒ์ง€๋งŒ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•œ๋ฐ, ์ตœ๊ทผ์— bigint ๋ผ๋Š” type์ด ์ถ”๊ฐ€ ๋˜์—ˆ๋‹ค!
```javascript
const bigInt = 12345678901234567890123456789012345678901234567890n;
console.log(`value: ${binInt}. type: ${typeof binInt}`);
Number.MAX_SAFE_INTEGER;

โ‡’ ์ด๋ ‡๊ฒŒ ์ˆซ์ž ๋’ค์— n ๋งŒ ๋ถ™์—ฌ์ฃผ๋ฉด ๋! ์ œ๋Œ€๋กœ ์ž˜ ๋‚˜์˜ค๋Š”์ง€ ํ™•์ธํ•ด๋ณผ๊นŒ??
type: bigint๋กœ ์ž˜ ๋‚˜์˜จ๋‹ค!

๊ทธ์น˜๋งŒ ์š”๋…€์„์€ ๋‚˜์˜จ์ง€ ์–ผ๋งˆ ์•ˆ๋œ ๋…€์„์ด๋ผ์„œ ์•„์ง ๋งŽ์€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง€์›์ด ๋˜์ง€ ์•Š๋Š”๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด์„œ ์ด๋ ‡๊ฒŒ ํฐ ๋ฒ”์œ„์˜ ์ˆซ์ž๋ฅผ ์“ธ ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†์–ด์„œ ํ”ํžˆ ์“ฐ์ด์ง„ ์•Š์„๋“ฏ~



โœ๏ธ string

const key = 'k';
const YunoYunho = 'passion';
const greeting = 'you know?' + YunoYunho;
console.log(`value: ${greeting}, type: ${typeof greeting}`);
const helloY = `hi ${YunoYunho}!`; //template literals (string)
console.log(`value: ${helloY}, type: ${typeof helloY}`);

  • ํ•œ๊ฐœ์˜ ๊ธ€์ž, ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ธ€์ž ๋ชจ๋‘ string ํ•˜๋‚˜๋กœ ๋!

  • ์ผ๋ฐ˜ string๊ณผ ๋ณ€์ˆ˜๋ฅผ + ๊ธฐํ˜ธ๋กœ ๋ถ™์—ฌ์„œ ์ž‘์„ฑํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
    ('you know?' + YunoYunho; โ‡’ you know?passion์œผ๋กœ ์ถœ๋ ฅ!)

  • template literals (template string)
    ES2015์—์„œ ๋„์ž…๋œ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์ด๋‹ค. ๋ฐฑํ‹ฑ` ๊ธฐํ˜ธ์— ์›ํ•˜๋Š” string๊ณผ ${๋ณ€์ˆ˜}! ๋ฅผ ์ ์œผ๋ฉด, ๋ณ€์ˆ˜์˜ ๊ฐ’์ด ์ž๋™์œผ๋กœ ์ ํ˜€์„œ ๋‚˜์˜จ๋‹ค.

console.log(`value: ${helloY}, type: ${typeof helloY}`);

console.log('value: ' + helloY + ' type: ' + typeof helloY);
  • ๋ฐฑํ‹ฑ `์„ ์‚ฌ์šฉํ•˜๋ฉด, ๋ฐฑํ‹ฑ ์‚ฌ์ด์— ์žˆ๋Š” ์—ฌ๋ฐฑ๊ณผ ์ค„๋ฐ”๊ฟˆ์ด ๊ทธ๋Œ€๋กœ ๋ฐ˜์˜๋œ๋‹ค. ๋งŒ์•ฝ ๋ฐฑํ‹ฑ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด, ์•„๋ž˜ ๋‘๋ฒˆ์งธ ์ฝ”๋“œ์ฒ˜๋Ÿผ '๊ณผ +๋กœ ์ผ์ผ์ด ์—ฌ๋ฐฑ์„ ๋„ฃ์–ด์ค˜์•ผ ํ•œ๋‹ค.

๐Ÿ’ก Escape Sequence

ํŠน์ˆ˜ ๋ฌธ์ž๋ฅผ ๋ฌธ์ž์—ด์— ๋„ฃ๊ฑฐ๋‚˜, ํ˜น์€ ์ง์ ‘ ์œ ๋‹ˆ์ฝ”๋“œ ์ฝ”๋“œํฌ์ธํŠธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์ž๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค.

ํ‘œ๊ธฐ๋ฒ•๋ฌธ์ž
\'ํ™‘๋”ฐ์˜ดํ‘œ
\"์Œ๋”ฐ์˜ดํ‘œ
\๋ฐฑ์Šฌ๋ž˜์‹œ
\n๋ผ์ธ ํ”ผ๋“œ
(ํ…์ŠคํŠธ์˜ ํ•œ์ค„์ด ๋๋‚จ์„ ํ‘œ์‹œํ•˜๋Š” ๋ฌธ์ž)
\r์บ๋ฆฌ์ง€ ๋ฆฌํ„ด
(ํ…์ŠคํŠธ์˜ ํ•œ์ค„์ด ๋๋‚จ์„ ํ‘œ์‹œํ•˜๋Š” ๋ฌธ์ž)
\tํƒญ
\uXXXX์œ ๋‹ˆ์ฝ”๋“œ ๋ฌธ์ž
\u{X...}์œ ๋‹ˆ์ฝ”๋“œ ๋ฌธ์ž
$๋‹ฌ๋Ÿฌ
`๋ฐฑํ‹ฑ
console.log('lorem \'ipsum\''); // lorem 'ipsum'
console.log('line\nfeed'); // line(์ค„๋ฐ”๊ฟˆ)feed
console.log('\uD55C\uAE00'); // ํ•œ๊ธ€
console.log('\u{1F435}'); // ๐Ÿต

์ด๋Ÿฐ ์‹์œผ๋กœ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๊ธด ํ•œ๋ฐ ์™ ๋งŒํ•œ๊ฑด template literals ์‚ฌ์šฉํ•˜์ž!!

๐Ÿ‘ฉ๐Ÿปโ€๐Ÿซ Bonus! string ํƒ€์ž…์—์„œ ์ž์ฃผ ์“ฐ์ด๋Š” ์†์„ฑ๊ณผ ๋ฉ”์†Œ๋“œ

// ๋ฌธ์ž์—ด์˜ ๊ธธ์ด ์•Œ์•„๋‚ด๊ธฐ
'hello'.length; // 5

// ์—ฌ๋Ÿฌ ๋ฌธ์ž์—ด ์—ฐ๊ฒฐํ•˜๊ธฐ
'hello'.concat('fun', 'javascript'); // 'hellofunjavascript'

// ํŠน์ • ๋ฌธ์ž์—ด์„ ๋ฐ˜๋ณตํ•˜๋Š” ์ƒˆ ๋ฌธ์ž์—ด ์ƒ์„ฑํ•˜๊ธฐ
'*'.repeat(3); // '***'

// ํŠน์ • ๋ฌธ์ž์—ด์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ
 'hello javascript'.includes('hello'); // true
'hello javascript'.startsWith('he'); // true
'hello javascript'.endsWith('ript'); // true
'hello javascript'.indexOf('java'); // 6

// ๋ฌธ์ž์—ด์˜ ํŠน์ • ๋ถ€๋ถ„์„ ๋ฐ”๊พผ ์ƒˆ ๋ฌธ์ž์—ด ์ƒ์„ฑํ•˜๊ธฐ
'hello javascript'.replace('java', 'type'); // 'hello typescript'

// ๋ฌธ์ž์—ด์˜ ์ผ๋ถ€๋ฅผ ์ž˜๋ผ๋‚ธ ์ƒˆ ๋ฌธ์ž์—ด ์ƒ์„ฑํ•˜๊ธฐ
'hello'.slice(2, 4); // 'll'

// ์ขŒ์šฐ ๊ณต๋ฐฑ๋ฌธ์ž๋ฅผ ์ œ๊ฑฐํ•œ ์ƒˆ ๋ฌธ์ž์—ด ์ƒ์„ฑํ•˜๊ธฐ
'   hello  '.trim(); // 'hello'
'   hello  '.trimLeft(); // 'hello  '
'   hello  '.trimRight(); // '   hello'

// ์ขŒ์šฐ ๊ณต๋ฐฑ๋ฌธ์ž๋ฅผ ์ถ”๊ฐ€ํ•œ ์ƒˆ ๋ฌธ์ž์—ด ์ƒ์„ฑํ•˜๊ธฐ
'hello'.padStart(8); // '   hello'
'hello'.padEnd(8); // 'hello   '

// ๋ฌธ์ž์—ด์„ ํŠน์ • ๋ฌธ์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž˜๋ผ ์ƒˆ ๋ฐฐ์—ด ์ƒ์„ฑํ•˜๊ธฐ
'hello!fun!javavscript'.split('!'); // ['hello', 'fun', 'javascript']
'hello'.split(''); // ['h', 'e', 'l', 'l', 'o']

// ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ์†Œ๋ฌธ์ž, ํ˜น์€ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•œ ์ƒˆ ๋ฌธ์ž์—ด ์ƒ์„ฑํ•˜๊ธฐ
'Hello JavaScript'.toLowerCase(); // 'hello javascript'
'Hello JavaScript'.toUpperCase(); // 'HELLO JAVASCRIPT'


๐Ÿคฅ boolean

์ฐธ๊ณผ ๊ฑฐ์ง“์„ ๊ตฌ๋ถ„ํ•˜๋Š” ํ•จ์ˆ˜!

false
0, null, undefined, NaN, ' ' (๋นˆ ๋ฌธ์ž์—ด)
( ' ' = ๋น„์–ด์ ธ ์žˆ๋Š” string )

true
any other value
(0์ด ์•„๋‹Œ number๋‚˜ string๋“ฑ์€ ๋ชจ๋‘ ์ฐธ!)

const canRead = true; //์ด๋ ‡๊ฒŒ ๋ฐ”๋กœ true๋ผ๊ณ  ๋ช…์‹œํ•ด์ค˜๋„ ๋˜๊ณ 
const test = 3 < 1; //์ด๋Ÿฐ ๊ฐ’์„ ๋„ฃ์–ด๋„ ๊ณ„์‚ฐ ํ›„ ์ฐธ,๊ฑฐ์ง“์„ ํ‰๊ฐ€ํ•˜์—ฌ false์œผ๋กœ ์ธ์‹๋œ๋‹ค.


๐Ÿ“ญ null

let nothing = null;

๋„Œ ํ……ํ…… ๋นˆ empty ๊ฐ’์ด์•ผ! ๋ผ๊ณ  ๊ฐ’์ด ๋ช…ํ™•ํ•˜๊ฒŒ ์ง€์ •๋˜์—ˆ์Œ

typeof๋กœ ํ™•์ธํ•ด๋ณด๋ฉด object๋ผ๊ณ  ๋‚˜์˜จ๋‹ค.
console.log(typeof null); // object

null์€ ๋ง๊ทธ๋Œ€๋กœ ์•„๋ฌด๊ฒƒ๋„ ์•„๋‹Œ ๋นˆ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฅดํ‚ค๊ณ  ์žˆ์–ด์„œ object๋ผ๊ณ  ๋‚˜์˜ค๋Š”๊ฒƒ!

let nothing = null;
console.log(typeof nothing); // ์ด๋Ÿฐ ๊ฒฝ์šฐ์—๋„ object ๋ผ๊ณ  ์ถœ๋ ฅ๋จ!


โ“undefined

let x;
let x = undefined;

์„ ์–ธ์€ ๋˜์—ˆ์ง€๋งŒ, ์•„๋ฌด ๊ฐ’์ด ๋“ค์–ด๊ฐ€์žˆ์ง€ ์•Š์Œ
undefined; ์ด๋ผ๊ณ  ๋ช…์‹œํ•ด์ค˜๋„ ๋˜๊ณ , ์ฒซ๋ฒˆ์งธ์ฒ˜๋Ÿผ ์•„๋ฌด ๊ฐ’๋„ ๋„ฃ์ง€ ์•Š์•„๋„ undefined๋กœ ์ธ์‹ํ•œ๋‹ค.


<br/ >

๐Ÿ””symbol

๊ณ ์œ ํ•œ ์‹๋ณ„์ž๊ฐ€ ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ๋™์‹œ๋‹ค๋ฐœ์ ์œผ๋กœ ์ผ์–ด๋‚  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ์—์„œ ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ฃผ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

๐Ÿ’๐Ÿปโ€โ™€๏ธ string์œผ๋กœ๋„ ์‹๋ณ„์ž๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด ๊ฒฝ์šฐ์—๋Š” ๋‹ค๋ฅธ ๋ชจ๋“ˆ์ด๋‚˜ ๋‹ค๋ฅธ ํŒŒ์ผ์—์„œ ๋™์ผํ•œ string๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ๋™์ผํ•œ ์‹๋ณ„์ž๋กœ ๊ฐ„์ฃผํ•œ๋‹ค.

๐Ÿ’๐Ÿปโ€โ™€๏ธ ๊ทธ๋Ÿฌ๋‚˜ symbol์€ ๋™์ผํ•œ ๊ฐ’์„ ๋„ฃ์—ˆ๋”๋ผ๋„, ๋‘˜์€ ๋‹ค๋ฅธ ์‹๋ณ„์ž๋กœ ์ธ์‹๋œ๋‹ค.

const symbol1 = Symbol('id');
const symbol2 = Symbol('id');
console.log(symbol1 === symbol2); //false

๋™์ผํ•œ symbol์„ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด symbol.for ๋ฅผ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋‘˜์€ ๊ฐ™์€ ์‹๋ณ„์ž๋กœ ์ธ์‹๋œ๋‹ค.

const symbol1 = Symbol.for('id');
const symbol2 = Symbol.for('id');
console.log(symbol1 === symbol2); //true

โš ๏ธ symbol ์ถœ๋ ฅ์‹œ ์ฃผ์˜!

console.log(value: ${symbol1}, type: ${typeof symbol1}`);`

symbol์„ ๋ฐ”๋กœ ์ถœ๋ ฅํ•˜๋ฉด Error๊ฐ€ ๋œจ๊ฒŒ ๋˜๋ฏ€๋กœ,

console.log(value: ${symbol1.description}, type: ${typeof symbol1}`);`

์ด๋ ‡๊ฒŒ value์—์„œ .description์„ ์ด์šฉํ•ด์„œ string์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค!




๐Ÿ“จ Object Types

โ˜๏ธsingle item๋“ค์„ ์—ฌ๋Ÿฌ๊ฐœ ๋ฌถ์–ด์„œ ํ•˜๋‚˜์˜ box๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ฒƒ
โœŒ๏ธObject์˜ ํฌ๊ธฐ๋Š” ๋„ˆ๋ฌด ์ปค์„œ ํ•˜๋‚˜์˜ ๋ฉ”๋ชจ๋ฆฌ์— ๋‹ด๊ธฐ์ง€ ์•Š๊ณ , Object๋ฅผ ๊ฐ€๋ฅดํ‚ค๋Š” ref ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ๋‹ค.
โ‡’ ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— const solmi ์•ˆ์— ์ด๋ฆ„,๋‚˜์ด ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์š”์†Œ๋“ค์„ ๋„ฃ์œผ๋ฉด solmi๋Š” ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์ง€๋งŒ, ๊ทธ ์•ˆ์— ๋“ค์–ด๊ฐ„ ์ด๋ฆ„, ๋‚˜์ด๋“ฑ์˜ ๊ฐ’์€ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค!

๐Ÿ“จ Array

const dayOfWeek = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];

console.log(dayOfWeek[2]); //Wed๊ฐ€ ์ถœ๋ ฅ!

Array๋ฅผ ์„ ์–ธํ•˜๋ ค๋ฉด [ ](๋Œ€๊ด„ํ˜ธ)๋กœ ๊ฐ์‹ธ์ฃผ๋ฉด ๋œ๋‹ค!

โ‡’ dayOfWeek[2] ๋ผ๊ณ  ํ–ˆ๋Š”๋ฐ 2๋ฒˆ์งธ์— ์žˆ๋Š” Tue๊ฐ€ ์•„๋‹Œ Wed๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ์ด์œ ?

๋ฐฐ์—ด์€ ๋ฒˆํ˜ธ๊ฐ€ ๋ฉ”๊ฒจ์ง„ index๋ฅผ ๊ฐ€์ง„๋‹ค.
(๋‚˜์ค‘์— ๋‚˜์˜ฌ ๊ฐ์ฒด๋„ ์ด๋Ÿฌํ•œ ์ธ๋ฑ์Šค๋ฅผ ๊ฐ€์ง€๋Š”๋ฐ, ๊ฐ์ฒด์™€ ์ฐจ์ด์ ์€ ๋ฐฐ์—ด์€ ์ˆซ์ž ์ธ๋ฑ์Šค๋ฅผ, ๊ฐ์ฒด๋Š” ์ด๋ฆ„์œผ๋กœ ๋œ ์ธ๋ฑ์Šค๋ฅผ ๊ฐ€์ง„๋‹ค.)

๋ฐฐ์—ด์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ˆซ์ž ์ธ๋ฑ์Šค๋Š” ๋ฌด์กฐ๊ฑด 0๋ฒˆ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.
์ฆ‰, Mon๋Š” index 0๋ฒˆ์งธ = index[0]์— ์œ„์น˜ํ•œ ๊ฒƒ์ด๊ณ , Tue๋Š” index 1๋ฒˆ์งธ = index[1]์— ์œ„์น˜ํ•œ๊ฒƒ!

const hi = "Hello!"
const solmi = ["solmi", 26, true, hi, 
							{name:"solmi", gender:26}];

console.log(solmi); //solmi, 26, true, Hello! ์ถœ๋ ฅ

Array๋Š” ๋‹จ์ˆœํ•œ string๋ฟ ์•„๋‹ˆ๋ผ, boolean, number, ๋ฏธ๋ฆฌ ์„ ์–ธํ–ˆ๋˜ ๋ณ€์ˆ˜,Object ๋“ค๊นŒ์ง€ ๋ชจ๋‘ ๋ฌถ์„ ์ˆ˜ ์žˆ๋‹ค!
โ‡’ ์ด๋ ‡๊ฒŒ ๋ฐฐ์—ด ์•ˆ์— ๋“ค์–ด์žˆ๋Š” ๊ฐ’๋“ค์„ ์š”์†Œ(element, item, etc)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

console.log(solmi[3]); //Hello!๋ผ๋Š” ๊ฐ’์„ ์–ป๊ณ  ์‹ถ๋‹ค๋ฉด ์ด๋ ‡๊ฒŒ ์œ„์น˜๋ฅผ ๋„ฃ์–ด์ค˜์•ผ ํ•œ๋‹ค

๋ฌถ์€ ๋ฐ์ดํ„ฐ๋“ค์€ ๋‹จ์ˆœ ๋‚˜์—ด๋  ๋ฟ์ด๋ฉฐ, ํŠน์ • ์ •๋ณด๋ฅผ ์–ป๊ณ  ์‹ถ๋‹ค๋ฉด ๊ทธ ์œ„์น˜๊ฐ’์„ ๊ธฐ์–ตํ•ด์•ผ ํ•œ๋‹ค.

ex) DB์—์„œ ๊ฐ€์ ธ์˜จ ๋ฆฌ์ŠคํŠธ ๋ฐ์ดํ„ฐ ๋“ฑ์„ ์ถ”๊ฐ€ํ• ๋•Œ ์‚ฌ์šฉ



๐Ÿ“ฆ Object

const info = {
  name: "solmi",
  age: 26,
  gender: "female",
  sheLikeCoffee: true,
  favFood: ["chicken", "tteokbokki", "jjapaghetti"], //Array๋„ object๋กœ ๋ฌถ์„ ์ˆ˜ ์žˆ๋‹ค
};
console.log(info.gender); //female์ด ์ถœ๋ ฅ๋œ๋‹ค

info.age = 27; //info Object๋Š” const๋กœ ๋ฌถ์—ฌ์žˆ์ง€๋งŒ, info๋ฅผ ์ด๋ฃจ๋Š” ref ๋“ค์€ ๊ฐ๊ฐ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— age๊ฐ€ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
console.log(info.age); //27์ด ์ถœ๋ ฅ๋œ๋‹ค

Object๋ฅผ ์„ ์–ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” { } (์ปฌ๋ฆฌ ๋ธŒ๋ผ์ผ“)์œผ๋กœ ๊ฐ์‹ธ์ฃผ๋ฉด ๋œ๋‹ค!
(Array์ฒ˜๋Ÿผ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์š”์†Œ, ๋ณ€์ˆ˜, Array๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ๊ณ , ์‹ฌ์ง€์–ด Array ์•ˆ์— ์žˆ๋Š” Object ์•ˆ์—์žˆ๋Š” Array ๋“ฑ๋“ฑ๋„ ๋„ฃ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ,(๋ฌดํ•œ์œผ๋กœ ์ฆ๊ธฐ๊ธฐ ๊ฐ€๋Šฅ) Array์™€ ๋‹ฌ๋ฆฌ, ํŠน์ • ์ •๋ณด์˜ ์œ„์น˜๊ฐ’์„ ๊ธฐ์–ตํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค!)

ex) Object ์•ˆ์—๋Š” Array๋„ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฅผ ํ•ฉ์ณ์„œ ๋งŒ๋“ค์–ด์•ผ ํ• ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

profile
ํ•˜๋ฃจ๋Š” ์น˜์—ดํ•˜๊ฒŒ ์ธ์ƒ์€ ์—ฌ์œ ๋กญ๊ฒŒ

0๊ฐœ์˜ ๋Œ“๊ธ€