๋„ค.. 5์ฃผ์ฐจ ๋ง‰์ฐจํƒ‘๋‹ˆ๋‹ค.. ์˜ˆ.. ์ด์ •๋„๋ฉด ๋ง‰์ฐจ๊ฐ€ ๋– ๋‚˜๊ณ ๋„ ๋‚จ์€ ์‹œ๊ฐ„์ธ๋ฐ ์ด๋ ‡๊ฒŒ๋˜์—ˆ๋„ค์š”.. ์ œ์ถœ์ผ์€ ์ด๋ฏธ ๋Šฆ์—ˆ์ง€๋งŒ ๊ทธ๋ž˜๋„ ๋๊นŒ์ง€ ์—ด์‹ฌํžˆ ํ•ด์„œ ์ œ์ถœํ•œ๋‹ค๋Š” ๊ฒƒ์— ์˜๋ฏธ๋ฅผ ๋‘์—ˆ์Šต๋‹ˆ๋‹ค.. ใ…ƒ๋น ์ƒค

5์ฃผ์ฐจChapter๊ธฐ๋ณธ ๋ฏธ์…˜์„ ํƒ ๋ฏธ์…˜
5์ฃผ์ฐจChapter06๊ฐ์ฒด, ์†์„ฑ, ๋ฉ”์†Œ๋“œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•˜๊ธฐp. 288 ํ™•์ธ ๋ฌธ์ œ 3๋ฒˆ ํ’€๊ณ , ํ’€์ด ๊ณผ์ • ์„ค๋ช…ํ•˜๊ธฐ

โœ… ๊ธฐ๋ณธ ๋ฏธ์…˜


โœ… ์„ ํƒ ๋ฏธ์…˜


์‚ฌ์ธ 90๋„์˜ ๊ฐ’์„ ๊ตฌํ•˜์—ฌ๋ผ. ์ฐธ๊ณ ๋กœ ์‚ฌ์ธ 90๋„๋Š” 1์ด๋‹ค. ๋‹จ์ˆœํ•˜๊ฒŒ ์ƒ๊ฐํ•ด์„œ ๊ตฌํ˜„ํ•˜๋ฉด 0.8939966636005579๋ผ๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜จ๋‹ค. ์ด๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด์•„ ์ œ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ตฌ๊ธ€ ๊ฒ€์ƒ‰ ๋“ฑ์„ ํ™œ์šฉํ•ด ์•Œ์•„๋ณด๊ณ  ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ด๋ผ
<!DOCTYPE html>
<html lang="en">
<head>
    <title></title>
    <script>
        const degree = 90;
        const ra = degree * (Math.PI / 180);
        alert(Math.sin(ra));
    </script>
</head>
<body>
</body>
</html>


์„ค๋ช…
Math.sin() ๋ฉ”์†Œ๋“œ๋Š” ๊ด„ํ˜ธ ๋‚ด๋ถ€์— ๋ผ๋””์•ˆ ๋‹จ์œ„๋ฅผ ๋„ฃ์–ด์•ผ ํ•œ๋‹ค.


06-1. ๊ฐ์ฒด์˜ ๊ธฐ๋ณธ


1. ๊ฐ์ฒด

  • ๊ฐ์ฒด : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์—ฌ๋Ÿฌ ์ž๋ฃŒ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์‚ฌ์šฉ

  • ๋ฐฐ์—ด๋„ ์—ฌ๋Ÿฌ ์ž๋ฃŒ๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ธฐ์— ๊ฐ์ฒด์ด๋‹ค.

  • ๋ฐฐ์—ด ์˜ˆ์‹œ

const array = ['์‚ฌ๊ณผ', '๋ฐ”๋‚˜๋‚˜', '๋ง๊ณ ', '๋”ธ๊ธฐ'];
  • ๋ฐฐ์—ด์—๋Š” ์ธ๋ฑ์Šค์™€ ์š”์†Œ๊ฐ€ ์žˆ๋‹ค.

  • ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค์™€ ์š”์†Œ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ๋กœ ๋‚˜ํƒ€๋‚ด์—ˆ๋‹ค.

์ธ๋ฑ์Šค์š”์†Œ
0์‚ฌ๊ณผ
1๋ฐ”๋‚˜๋‚˜
2๋ง๊ณ 
3๋”ธ๊ธฐ
  • ๊ฐ์ฒด๋Š” ํ‚ค ์‚ฌ์šฉ
  • ๊ฐ์ฒด ์˜ˆ์‹œ
const product = {
  ์ œํ’ˆ๋ช…: '7D ๊ฑด์กฐ ๋ง๊ณ ',
  ์œ ํ˜•: '๋‹น์ ˆ์ž„',
  ์„ฑ๋ถ„: '๋ง๊ณ , ์„คํƒ•, ๋ฉ”ํƒ€์ค‘์•„ํ™ฉ์‚ฐ๋‚˜ํ‹ฐ๋ฅจ, ์น˜์žํ™ฉ์ƒ‰์†Œ',
  ์›์‚ฐ์ง€: 'ํ•„๋ฆฌํ•€'
}
  • ์œ„์—์„œ ์ƒ์„ฑํ•œ ๊ฐ์ฒด๋ฅผ ํ‘œ๋กœ ๋‚˜ํƒ€๋‚ด์—ˆ๋‹ค.
ํ‚ค์†์„ฑ
์ œํ’ˆ๋ช…7D ๊ฑด์กฐ ๋ง๊ณ 
์œ ํ˜•๋‹น์ ˆ์ž„
์„ฑ๋ถ„๋ง๊ณ , ์„คํƒ•, ๋ฉ”ํƒ€์ค‘์•„ํ™ฉ์‚ฐ๋‚˜ํ‹ฐ๋ฅจ, ์น˜์žํ™ฉ์ƒ‰์†Œ
์›์‚ฐ์ง€ํ•„๋ฆฌํ•€

2. ์†์„ฑ๊ณผ ๋ฉ”์†Œ๋“œ

  • ์š”์†Œ : ๋ฐฐ์—ด ๋‚ด๋ถ€์— ์žˆ๋Š” ๊ฐ’
  • ์†์„ฑ : ๊ฐ์ฒด ๋‚ด๋ถ€์— ์žˆ๋Š” ๊ฐ’
  • ๊ฐ์ฒด์˜ ์†์„ฑ์€ ๋ฐฐ์—ด๊ณผ ๊ฐ™์ด ๋ชจ๋“  ํ˜•ํƒœ์˜ ์ž๋ฃŒํ˜•์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

  • ์†์„ฑ๊ณผ ๋ฉ”์†Œ๋“œ ๊ตฌ๋ถ„ํ•˜๊ธฐ
    -๋ฉ”์†Œ๋“œ : ๊ฐ์ฒด์˜ ์†์„ฑ ์ค‘ ํ•จ์ˆ˜ ์ž๋ฃŒํ˜•์ธ ์†์„ฑ
    -๋ฉ”์†Œ๋“œ ์˜ˆ์‹œ
const pet = {
  name: '๊ตฌ๋ฆ„',
  eat: function (food) { }
}

//๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ
pet.eat()

  • ๋ฉ”์†Œ๋“œ ๋‚ด๋ถ€์—์„œ this ํ‚ค์›Œ๋“œ ์‚ฌ์šฉํ•˜๊ธฐ
    -this : ์ž๊ธฐ ์ž์‹ ์ด ๊ฐ€์ง„ ์†์„ฑ์ด๋ผ๋Š” ๊ฒƒ์„ ํ‘œ์‹œํ•  ๋•Œ ์‚ฌ์šฉ
    -this ํ‚ค์›Œ๋“œ ์˜ˆ์‹œ
const pet = {
  name: '๊ตฌ๋ฆ„',
  eat: function (food) {
  	alert(this.name + '์€/๋Š”' + food + '์„/๋ฅผ ๋จน์Šต๋‹ˆ๋‹ค.') --> this ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์ž์‹ ์ด ๊ฐ€์ง„ ์†์„ฑ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.
  }
}

//๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ
pet.eat('๋ฐฅ')

3. ๋™์ ์œผ๋กœ ๊ฐ์ฒด ์†์„ฑ ์ถ”๊ฐ€/์ œ๊ฑฐ

๊ฐ์ฒด๋ฅผ ์ฒ˜์Œ ์ƒ์„ฑํ•œ ํ›„์— ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์„ '๋™์ ์œผ๋กœ ์†์„ฑ์„ ์ถ”๊ฐ€ํ•œ๋‹ค' ๋˜๋Š” '๋™์ ์œผ๋กœ ์†์„ฑ์„ ์ œ๊ฑฐํ•œ๋‹ค'๊ณ  ํ‘œํ˜„ํ•œ๋‹ค.

  • ๋™์ ์œผ๋กœ ๊ฐ์ฒด ์†์„ฑ ์ถ”๊ฐ€ํ•˜๊ธฐ
  • ์˜ˆ์‹œ
//๊ฐ์ฒด ์„ ์–ธ
const student = {}

//๋™์ ์œผ๋กœ ๊ฐ์ฒด ์†์„ฑ ์ถ”๊ฐ€
student.์ด๋ฆ„ = '์œค์ธ์„ฑ'
student.์ทจ๋ฏธ = '์•…๊ธฐ'
student.์žฅ๋ž˜ํฌ๋ง = '์ƒ๋ช…๊ณตํ•™์ž'

//์ถœ๋ ฅ
console.log(JSON.stringify(student, null, 2)) --> JSON์€ ๋’ค์— ๋‚ด์šฉ์ด ๋‚˜์˜ค๋‹ˆ ์ฐธ๊ณ !

<์‹คํ–‰ ๊ฒฐ๊ณผ>
{
  "์ด๋ฆ„" : "์œค์ธ์„ฑ",
  "์ทจ๋ฏธ": "์•…๊ธฐ",
  "์žฅ๋ž˜ํฌ๋ง": "์ƒ๋ช…๊ณตํ•™์ž"
}

  • ๋™์ ์œผ๋กœ ๊ฐ์ฒด ์†์„ฑ ์ œ๊ฑฐํ•˜๊ธฐ
  • ์˜ˆ์‹œ
//๊ฐ์ฒด ์„ ์–ธ
const student = {}

//๋™์ ์œผ๋กœ ๊ฐ์ฒด ์†์„ฑ ์ถ”๊ฐ€
student.์ด๋ฆ„ = '์œค์ธ์„ฑ'
student.์ทจ๋ฏธ = '์•…๊ธฐ'
student.์žฅ๋ž˜ํฌ๋ง = '์ƒ๋ช…๊ณตํ•™์ž'

//๋™์ ์œผ๋กœ ๊ฐ์ฒด ์†์„ฑ ์ œ๊ฑฐ
delete student.์žฅ๋ž˜ํฌ๋ง

//์ถœ๋ ฅ
console.log(JSON.stringify(student, null, 2)) --> JSON์€ ๋’ค์— ๋‚ด์šฉ์ด ๋‚˜์˜ค๋‹ˆ ์ฐธ๊ณ !

<์‹คํ–‰ ๊ฒฐ๊ณผ>
{
  "์ด๋ฆ„" : "์œค์ธ์„ฑ",
  "์ทจ๋ฏธ": "์•…๊ธฐ",
}

๐Ÿ‘ ๋งˆ๋ฌด๋ฆฌ


1. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋Œ€์ƒ์„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด๋กœ ์„ ์–ธํ•ด๋ผ.
์†์„ฑ ์ด๋ฆ„์†์„ฑ ๊ฐ’
nameํ˜ผ์ž ๊ณต๋ถ€ํ•˜๋Š” ํŒŒ์ด์ฌ
price18000
publisherํ•œ๋น›๋ฏธ๋””์–ด

๋‹ต

const object = {
  name: "ํ˜ผ์ž ๊ณต๋ถ€ํ•˜๋Š” ํŒŒ์ด์ฌ",
  price: 18000,
  publisher: "ํ•œ๋น›๋ฏธ๋””์–ด:
}

2. ๋‹ค์Œ ์ค‘ ๊ฐ์ฒด์— ๋™์ ์œผ๋กœ ์†์„ฑํ•˜๋Š” ์ถ”๊ฐ€ํ•˜๋Š” ๋ฌธ๋ฒ•์„ ๊ณจ๋ผ๋ผ.
โ‘  add ๊ฐ์ฒด[์†์„ฑ] = ๊ฐ’
โ‘ก ๊ฐ์ฒด.add('์†์„ฑ', ๊ฐ’)
โ‘ข ๊ฐ์ฒด[์†์„ฑ] = ๊ฐ’
โ‘ฃ ๊ฐ์ฒด[์†์„ฑ]add๊ฐ’

๋‹ต
โ‘ข


3. ๋‹ค์Œ ์ค‘ ๊ฐ์ฒด์— ๋™์ ์œผ๋กœ ์†์„ฑํ•˜๋Š” ์ œ๊ฑฐํ•˜๋Š” ๋ฌธ๋ฒ•์„ ๊ณจ๋ผ๋ผ.
โ‘  delete ๊ฐ์ฒด[์†์„ฑ]
โ‘ก ๊ฐ์ฒด.delete('์†์„ฑ')
โ‘ข delete ๊ฐ์ฒด from ์†์„ฑ
โ‘ฃ delete ์†์„ฑ from ๊ฐ์ฒด

๋‹ต
โ‘ 


4. ๋‹ค์Œ ์ฝ”๋“œ์—์„œ ๋ฉ”์†Œ๋“œ๋ผ๊ณ  ๋ถ€๋ฅผ ์ˆ˜ ์žˆ๋Š” ์†์„ฑ์— ๋™๊ทธ๋ผ๋ฏธ ํ‘œ์‹œ๋ฅผ ํ•˜๊ณ  ์ฝ”๋“œ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์˜ˆ์ธกํ•ด๋ณด์‹œ์˜ค.
<!DOCTYPE html>
<html lang="en">
<head>
    <title></title>
    <script>
        const object = {
            ko: '๋นต',
            en: 'bread',
            fr: 'pain',
            es: 'pan',

            lang: {
                ko: 'ํ•œ๊ตญ์–ด',
                en: '์˜์–ด',
                fr: 'ํ”„๋ž‘์Šค์–ด',
                es: '์ŠคํŽ˜์ธ์–ด'
            },

            print: function (lang) { โญ•
                alert(`${this.ko}๋Š” ${this.lang[lang]}๋กœ ${this[lang]}์ž…๋‹ˆ๋‹ค.`)
            }
        }

        object.print('es');
    </script>
</head>
<body>
</body>
</html>

๋‹ต
๋นต๋Š” ์ŠคํŽ˜์ธ์–ด๋กœ pan์ž…๋‹ˆ๋‹ค.


06-2. ๊ฐ์ฒด์˜ ์†์„ฑ๊ณผ ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉํ•˜๊ธฐ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ๋Š” ํฌ๊ฒŒ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜• ๊ณผ ๊ฐ์ฒด ์ž๋ฃŒํ˜• ์œผ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

			์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ž๋ฃŒํ˜•
   					 |
  		---------------------------
  	    |					   	  |
    ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•			      ๊ฐ์ฒด ์ž๋ฃŒํ˜•
  	    |						  |
   -----------				----------------
   |    |    |				|    |    |    |
 ์ˆซ์ž  ๋ฌธ์ž์—ด  ๋ถˆ	       ํ•จ์ˆ˜ ๋ฐฐ์—ด  ...์ด์™ธ ์ „๋ถ€ ... 
 

1. ๊ฐ์ฒด ์ž๋ฃŒํ˜•

๊ฐ์ฒด : ์†์„ฑ๊ณผ ๋ฉ”์†“๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ
๋ฐฐ์—ด, ํ•จ์ˆ˜๋„ ๊ฐ์ฒด์ด๋‹ค.


-๋‹ค์Œ๊ณผ ๊ฐ™์ด a๋ผ๋Š” ์ด๋ฆ„์˜ ๋ฐฐ์—ด์„ ์„ ์–ธํ•˜๊ณ  ๋ฐฐ์—ด์— ์†์„ฑ์„ ์ง€์ •ํ•œ ํ›„ ํ™•์ธํ•ด๋ณด๋ฉด ๋ฐฐ์—ด์ด ์†์„ฑ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

> const a = []
undefined

> a.sample = 10
10

> a.sample
10

-๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•จ์ˆ˜ b๋ฅผ ์„ ์–ธํ•˜๊ณ  ํ•จ์ˆ˜์— ์†์„ฑ์„ ์ง€์ •ํ•œ ํ›„ ํ™•์ธํ•ด๋ณด๋ฉด ํ•จ์ˆ˜๊ฐ€ ์†์„ฑ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

> function b () { }
undefined

> b.sample = 10
10

> b.sample
10

2. ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•

๊ธฐ๋ณธ ์ž๋ฃŒํ˜• : ์‹ค์ฒด๊ฐ€ ์žˆ๋Š”๊ฒƒ(undefined์™€ null ๋“ฑ์ด ์•„๋‹Œ ๊ฒƒ) ์ค‘์— ๊ฐ์ฒด๊ฐ€ ์•„๋‹Œ ๊ฒƒ(์ˆซ์ž, ๋ฌธ์ž์—ด, ๋ถˆ)

> const c = 273
undefined

> c.sample = 10
10

> c.sample
undefined --> ์†์„ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ์‹ค์ œ๋กœ ์†์„ฑ์ด ๋งŒ๋“ค์–ด์ง€์ง€ ์•Š๋Š”๋‹ค.
> const d = '์•ˆ๋…•ํ•˜์„ธ์š”'
undefined

> d.sample = 10
10

//์•„๋ž˜๊ฒƒ๋“ค๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์†์„ฑ์ด ๋งŒ๋“ค์–ด์ง€์ง€ ์•Š๋Š”๋‹ค.
> d.sample
undefined

> const e = true
undefined

> e.sample = 10
10

> e.sample
undefined

3. ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์„ ๊ฐ์ฒด๋กœ ์„ ์–ธํ•˜๊ธฐ

  • ์ˆซ์ž, ๋ฌธ์ž์—ด, ๋ถˆ ๋“ฑ์œผ๋กœ ์ž๋ฃŒํ˜•์„ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜ ์‚ฌ์šฉ๋ฒ•
    const ๊ฐ์ฒด = new ๊ฐ์ฒด ์ž๋ฃŒํ˜• ์ด๋ฆ„()
    ์ˆซ์ž ๊ฐ์ฒด : new Number(10)
    ๋ฌธ์ž์—ด ๊ฐ์ฒด : new String('์•ˆ๋…•ํ•˜์„ธ์š”')
    ๋ถˆ ๊ฐ์ฒด : new Boolean(true)

  • ์˜ˆ์‹œ(๊ธฐ๋ณธ ์ž๋ฃŒํ˜• ๊ฐ์ฒด๋กœ ์„ ์–ธ)

> const f = new Number(273) --> ์ˆซ์ž ๊ฐ์ฒด ์„ ์–ธ
undefined

> typeof f
"object"

> f.sample = 10
10

> f.sample
10 --> ์†์„ฑ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

> f 
Number {273, sample:10} --> ์ฝ˜์†”์—์„œ ๋‹จ์ˆœํ•˜๊ฒŒ f๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด ๊ฐ์ฒด ํ˜•ํƒœ๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

> f + 10
273

> f.valueOf()
273

> const g = Number(273)

> typeof g
"number" --> new ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ํ•จ์ˆ˜๊ฐ€ ์ž๋ฃŒํ˜• ๋ณ€ํ™˜ ๊ธฐ๋Šฅ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ฐ์ฒด๊ฐ€ ์•„๋‹ˆ๋‹ค.

4. Number ๊ฐ์ฒด

  • ์ˆซ์ž N๋ฒˆ์งธ ์ž๋ฆฟ์ˆ˜๊นŒ์ง€ ์ถœ๋ ฅํ•˜๊ธฐ
    -toFixed() : ์†Œ์ˆ˜์  ์ดํ•˜ ๋ช‡ ์ž๋ฆฌ๊นŒ์ง€๋งŒ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ
> const l = 123.456789
undefined

> l.toFixed(2) --> ์†Œ์ˆ˜์  ์•„๋ž˜ 2์ž๋ฆฌ๊นŒ์ง€ ์ถœ๋ ฅ
"123.46"

> l.toFixed(3) --> ์†Œ์ˆ˜์  ์•„๋ž˜ 3์ž๋ฆฌ๊นŒ์ง€ ์ถœ๋ ฅ
"123.457"

> l.toFixed(4) --> ์†Œ์ˆ˜์  ์•„๋ž˜ 4์ž๋ฆฌ๊นŒ์ง€ ์ถœ๋ ฅ
"123.4568"
  • NaN๊ณผ Infinity ํ™•์ธํ•˜๊ธฐ
    -Number.isNaN(), Number.isNaN() : ์–ด๋–ค ์ˆซ์ž๊ฐ€ NaN(Not a Number)์ธ์ง€ ๋˜๋Š” Infinity(๋ฌดํ•œ)์ธ์ง€ ํ™•์ธํ•  ๋•Œ ์‚ฌ์šฉ
    -NaN๊ณผ ๋น„๊ตํ•˜๋ฉด ๋ชจ๋“  ๊ฐ’์ด false๋กœ ๋‚˜์˜ค๋ฏ€๋กœ isNaN()๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ
> const m = Number('์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ')
undefined

> m
NaN --> NaN์„ ์ƒ์„ฑ

> m === NaN
false --> NaN๊ณผ ๋น„๊ตํ•ด์„œ๋Š” NaN์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์—†๋‹ค.

> Number.isNaN(m)
true
> const n = 10 / 0
undefined

> n
Infinity --> ์–‘์˜ ๋ฌดํ•œ๋Œ€ ์ƒ์„ฑ

> const o = -10 / 0
undefined

> o
-Infinity --> ์Œ์˜ ๋ฌดํ•œ๋Œ€ ์ƒ์„ฑ

> Number.isFinite(n)
false

> Number.isFinite(o)
false

> Number.isFinite(1)
true

> Number.isFinite(10)
true

5. String ๊ฐ์ฒด

  • ๋ฌธ์ž์—ด ์–‘์ชฝ ๋์˜ ๊ณต๋ฐฑ ์—†์• ๊ธฐ
    trim() : ๋ฌธ์ž์—ด ์•ž๋’ค ๊ณต๋ฐฑ(๋„์–ด์“ฐ๊ธฐ, ์ค„๋ฐ”๊ฟˆ ๋“ฑ)์„ ์ œ๊ฑฐ
> const stringA = '
๋ฉ”์‹œ์ง€๋ฅผ ์ž…๋ ฅํ•˜๋‹ค๋ณด๋‹ˆ ์•ž์— ์ค„๋ฐ”๊ฟˆ๋„ ๋“ค์–ด๊ฐ€๊ณ '
undefined

> const stringB = '   ์•ž๊ณผ ๋’ค์— ๊ณต๋ฐฑ๋„ ๋“ค์–ด๊ฐ€๊ณ    '
undefined

> stringA
"
๋ฉ”์‹œ์ง€๋ฅผ ์ž…๋ ฅํ•˜๋‹ค๋ณด๋‹ˆ ์•ž์— ์ค„๋ฐ”๊ฟˆ๋„ ๋“ค์–ด๊ฐ€๊ณ "

> stringB
"   ์•ž๊ณผ ๋’ค์— ๊ณต๋ฐฑ๋„ ๋“ค์–ด๊ฐ€๊ณ    "

> stringA.trim()
"๋ฉ”์‹œ์ง€๋ฅผ ์ž…๋ ฅํ•˜๋‹ค๋ณด๋‹ˆ ์•ž์— ์ค„๋ฐ”๊ฟˆ๋„ ๋“ค์–ด๊ฐ€๊ณ " --> ๋ฌธ์ž์—ด ์•ž๋’ค ๊ณต๋ฐฑ ์ œ๊ฑฐ
 
> stringB.trim()
"์•ž๊ณผ ๋’ค์— ๊ณต๋ฐฑ๋„ ๋“ค์–ด๊ฐ€๊ณ " --> ๋ฌธ์ž์—ด ์•ž๋’ค ๊ณต๋ฐฑ ์ œ๊ฑฐ
  • ๋ฌธ์ž์—ด์„ ํŠน์ • ๊ธฐํ˜ธ๋กœ ์ž๋ฅด๊ธฐ
    split() : ๋ฌธ์ž์—ด์„ ๋งค๊ฐœ๋ณ€์ˆ˜(๋‹ค๋ฅธ ๋ฌธ์ž์—ด)๋กœ ์ž˜๋ผ์„œ ๋ฐฐ์—ด์„ ๋งˆ๋“ค์–ด ๋ฆฌํ„ดํ•˜๋Š” ๋ฉ”์†Œ๋“œ

6. JSON ๊ฐ์ฒด

-์ธํ„ฐ๋„ท์—์„œ ๋ฌธ์ž์—ด๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ๋Š” CSV, XML, CSON ๋“ฑ์˜ ๋‹ค์–‘ํ•œ ์ž๋ฃŒ ํ‘œํ˜„ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

-ํ˜„์žฌ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์ž๋ฃŒ์˜ ํ‘œํ˜„ ๋ฐฉ์‹์€ JSON๊ฐ์ฒด์ด๋‹ค.

-JSON์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ฐ์ฒด์ฒ˜๋Ÿผ ์ž๋ฃŒ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

-JSON์˜ ๊ทœ์น™

  • ๊ฐ’์„ ํ‘œํ˜„ํ•  ๋•Œ๋Š” ๋ฌธ์ž์—ด, ์ˆซ์ž, ๋ถˆ ์ž๋ฃŒํ˜•๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.(ํ•จ์ˆ˜ ๋“ฑ์€ ์‚ฌ์šฉ ๋ถˆ๊ฐ€)
  • ๋ฌธ์ž์—ด์€ ๋ฐ˜๋“œ์‹œ ํฐ๋”ฐ์˜ดํ‘œ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.
  • ํ‚ค์—๋„ ๋ฐ˜๋“œ์‹œ ๋”ฐ์˜ดํ‘œ๋ฅผ ๋ถ™์–ด์•ผ ํ•œ๋‹ค.

-JSON.stringify() : ๊ฐ์ฒด๋ฅผ JSON ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ ์‚ฌ์šฉ

-์˜ˆ์‹œ(JSON.stringify()๋ฉ”์†Œ๋“œ)

//์ž๋ฃŒ ์ƒ์„ฑ
const data = [{
  name: 'ํ˜ผ์ž ๊ณต๋ถ€ํ•˜๋Š” ํŒŒ์ด์ฌ',
  price: 18000,
  publisher: 'ํ•œ๋น›๋ฏธ๋””์–ด'
}, {
  name: 'HTML5 ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ',
  price: 26000,
  publisher: 'ํ•œ๋น›์•„์นด๋ฐ๋ฏธ'
}]

//์ž๋ฃŒ๋ฅผ JSON์œผ๋กœ ๋ณ€ํ™˜ 
console.log(JSON.stringify(data))
console.log(JSON.stringify(data, null, 2)) --> 2๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๊ฐ์ฒด์—์„œ ์–ด๋–ค ์†์„ฑ๋งŒ ์„ ํƒํ•ด์„œ ์ถ”์ถœํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋‚˜ ๊ฑฐ์˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์ผ๋ฐ˜์ ์œผ๋กœ null์„ ๋„ฃ๋Š”๋‹ค, 2๋Š” ๋“ค์—ฌ์“ฐ๊ธฐ 2์นธ์ด๋ผ๋Š” ๋œป์ด๋‹ค.

<์‹คํ–‰ ๊ฒฐ๊ณผ>
[{"name":"ํ˜ผ์ž ๊ณต๋ถ€ํ•˜๋Š” ํŒŒ์ด์ฌ", "price":18000, "publisher":"ํ•œ๋น›๋ฏธ๋””์–ด"}, {"name":"HTML5 ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ", "price":26000, "publisher":"ํ•œ๋น›์•„์นด๋ฐ๋ฏธ"}] -> ๋งค๊ฐœ๋ณ€์ˆ˜ ํ•˜๋‚˜๋งŒ ๋„ฃ์œผ๋ฉด ํ•œ ์ค„๋กœ ๋ณ€ํ™˜, ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉ
[ --> ๋“ค์—ฌ์“ฐ๊ธฐ 2๋ฒˆ์ด ์ถ”๊ฐ€๋˜์—ˆ๋‹ค.
  {
    "name": "ํ˜ผ์ž ๊ณต๋ถ€ํ•˜๋Š” ํŒŒ์ด์ฌ",
    "price": 18000,
    "publisher": "ํ•œ๋น›๋ฏธ๋””์–ด"
  },
  {
    "name": "HTML5 ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ",
    "price": 26000,
    "publisher": "ํ•œ๋น›์•„์นด๋ฐ๋ฏธ"
  }
]

-JSON.parse() : JSON ๋ฌธ์ž์—ด์„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด๋กœ ์ „๊ฐœํ•  ๋•Œ ์‚ฌ์šฉ
-์˜ˆ์‹œ(JSON.parse()๋ฉ”์†Œ๋“œ)

//์ž๋ฃŒ ์ƒ์„ฑ
const data = [{
  name: 'ํ˜ผ์ž ๊ณต๋ถ€ํ•˜๋Š” ํŒŒ์ด์ฌ',
  price: 18000,
  publisher: 'ํ•œ๋น›๋ฏธ๋””์–ด'
}, {
  name: 'HTML5 ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ',
  price: 26000,
  publisher: 'ํ•œ๋น›์•„์นด๋ฐ๋ฏธ'
}]

//์ž๋ฃŒ๋ฅผ JSON์œผ๋กœ ๋ณ€ํ™˜ 
const json = JSON.stringify(data)
console.log(json)

//JSON ๋ฌธ์ž์—ด์„ ๋‹ค์‹œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜
console.og(JSON.parse(json))

<์‹คํ–‰ ๊ฒฐ๊ณผ>
[{"name":"ํ˜ผ์ž ๊ณต๋ถ€ํ•˜๋Š” ํŒŒ์ด์ฌ", "price":18000, "publisher":"ํ•œ๋น›๋ฏธ๋””์–ด"}, {"name":"HTML5 ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ", "price":26000, "publisher":"ํ•œ๋น›์•„์นด๋ฐ๋ฏธ"}] -> ๋งค๊ฐœ๋ณ€์ˆ˜ ํ•˜๋‚˜๋งŒ ๋„ฃ์œผ๋ฉด ํ•œ ์ค„๋กœ ๋ณ€ํ™˜, ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉ

Array(2)
  0: {name: 'ํ˜ผ์ž ๊ณต๋ถ€ํ•˜๋Š” ํŒŒ์ด์ฌ', price: 18000, publisher: 'ํ•œ๋น›๋ฏธ๋””์–ด'}
  1: {name: 'HTML5 ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ', price: 26000, publisher: 'ํ•œ๋น›์•„์นด๋ฐ๋ฏธ'}
  length: 2
  __proto__: Array(0)

7. Math ๊ฐ์ฒด

-Math : ์ˆ˜ํ•™๊ณผ ๊ด€๋ จ๋œ ๊ธฐ๋ณธ์ ์ธ ์—ฐ์‚ฐ์„ ํ•  ๋•Œ ์‚ฌ์šฉ
-Math.random() : ๋žœ๋คํ•œ ์ˆซ์ž๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉ


๐Ÿ‘ ๋งˆ๋ฌด๋ฆฌ


1. ๋‹ค์Œ ์ฝ”๋“œ ์˜ˆ์ธก
const num = 52000
num.์› = function() {
  return this.valueOf() + '์›'
}

console.log(num.์›())

๋‹ต
์˜ค๋ฅ˜ : num์€ ๊ธฐ๋ณธ์ž๋ฃŒํ˜•์ด๋ฏ€๋กœ ๋ฉ”์†Œ๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


2. ๋‹ค์Œ ์ฝ”๋“œ ์˜ˆ์ธก
function printLang(code) {
  return printLang._lang[code]
}
printLang_.leng = {
  ko: 'ํ•œ๊ตญ์–ด',
  en: '์˜์–ด', 
  ja: '์ผ๋ณธ์–ด',
  fr: 'ํ”„๋ž‘์Šค์–ด',
  es: '์ŠคํŽ˜์ธ์–ด'
}

console.log('printLang("ko"):', printLang('ko'))
console.log('printLang("en"):', printLang('en'))

๋‹ต
printLang("ko"): ํ•œ๊ตญ์–ด printLang("en"): ์˜์–ด


3. ์‚ฌ์ธ 90๋„์˜ ๊ฐ’์„ ๊ตฌํ•˜์—ฌ๋ผ. ์ฐธ๊ณ ๋กœ ์‚ฌ์ธ 90๋„๋Š” 1์ด๋‹ค. ๋‹จ์ˆœํ•˜๊ฒŒ ์ƒ๊ฐํ•ด์„œ ๊ตฌํ˜„ํ•˜๋ฉด 0.8939966636005579๋ผ๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜จ๋‹ค. ์ด๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด์•„ ์ œ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ตฌ๊ธ€ ๊ฒ€์ƒ‰ ๋“ฑ์„ ํ™œ์šฉํ•ด ์•Œ์•„๋ณด๊ณ  ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ด๋ผ.

์„ ํƒ ๋ฏธ์…˜์œผ๋กœ!!


4. ๋‹ค์Œ ์ค‘ ์–ด๋–ค ์ข…๋ฅ˜์˜ ๊ฐ์ฒด๋“ค์ด ๋ชจ๋‘ ๊ณต์œ ํ•˜๋Š” ์†์„ฑ๊ณผ ๋ฉ”์†Œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด์˜ ์ด๋ฆ„์„ ๊ณจ๋ผ๋ผ.

โ‘  classProp
โ‘ก prototype
โ‘ข sample
โ‘ฃ frame

๋‹ต
โ‘ก prototype


06-3. ๊ฐ์ฒด์™€ ๋ฐฐ์—ด ๊ณ ๊ธ‰


1. ์†์„ฑ ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ

//๊ฐ์ฒด ๋‚ด๋ถ€์— ์†์„ฑ์ด ์žˆ๋Š”์ง€ ํ™•์ธ
if(object.name) {
  console.log('name ์†์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.')
} else {
  console.log('name ์†์„ฑ์ด ์—†์Šต๋‹ˆ๋‹ค.')
}

if(object.author) {
  console.log('author ์†์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.')
} else {
  console.log('author ์†์„ฑ์ด ์—†์Šต๋‹ˆ๋‹ค.')
}  

2. ๋ฐฐ์—ด ๊ธฐ๋ฐ˜์˜ ๋‹ค์ค‘ ํ• ๋‹น

-์‚ฌ์šฉ๋ฐฉ๋ฒ•
[์‹๋ณ„์ž, ์‹๋ณ„์ž, ์‹๋ณ„์ž, ...] = ๋ฐฐ์—ด

> let [a, b] = [1, 2] ---> a = 1, b = 2๊ฐ€ ํ• ๋‹น๋œ๋‹ค.
undefined

> console.log(a, b)
1, 2
undefined

> [a, b] = [b, a] --> a์— b๊ฐ€ ํ• ๋‹น๋˜๊ณ , b์— a๊ฐ€ ํ• ๋‹น๋˜๋ฏ€๋กœ ๊ฐ’์ด ์„œ๋กœ ๊ตํ™˜๋œ๋‹ค.
(2) [2, 1]

> console.log(a, b)
2, 1
undefined

> let arrayA = [1, 2, 3, 4, 5]
undefined

> const [a, b, c] = arrayA
undefined

> console.log(a, b, c)
1 2 3 --> ์•ž์— ์žˆ๋Š” 3๊ฐœ์˜ ๊ฐ’๋งŒ ํ• ๋‹น๋˜์—ˆ๋‹ค.
undefined

3. ๋ฐฐ์—ด ์ „๊ฐœ ์—ฐ์‚ฐ์ž

์–•์€ ๋ณต์‚ฌ

  • ์˜ˆ์‹œ(์–•์€ ๋ณต์‚ฌ ์ดํ•ดํ•˜๊ธฐ)
//์‚ฌ์•ผ ํ•˜๋Š” ๋ฌผ๊ฑด ๋ชฉ๋ก
const ๋ฌผ๊ฑด_200301 = ['์šฐ์œ ', '์‹๋นต']
const ๋ฌผ๊ฑด_200302 = ๋ฌผ๊ฑด_200301
๋ฌผ๊ฑด_200302.push('๊ณ ๊ตฌ๋งˆ')
๋ฌผ๊ฑด_200302.push('ํ† ๋งˆํ† ')

//์ถœ๋ ฅ
console.log(๋ฌผ๊ฑด_200301)
console.log(๋ฌผ๊ฑด_200302)

<์‹คํ–‰ ๊ฒฐ๊ณผ>
(4) ["์šฐ์œ ", "์‹๋นต", "๊ณ ๊ตฌ๋งˆ", "ํ† ๋งˆํ† "]
(4) ["์šฐ์œ ", "์‹๋นต", "๊ณ ๊ตฌ๋งˆ", "ํ† ๋งˆํ† "]
  • ๋ฌผ๊ฑด_200301๊ณผ ๋ฌผ๊ฑด_200302๊ฐ€ ๊ฐ™์€ ๊ฐ’์ด ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.

๊นŠ์€ ๋ณต์‚ฌ

  • ๊นŠ์€ ๋ณต์‚ฌ๋ผ๋ฉด ๋ณต์‚ฌํ•œ ๋‘ ๋ฐฐ์—ด์ด ์™„์ „ํžˆ ๋…๋ฆฝ์ ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค.
  • ์ „๊ฐœ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ ๋ฐฉ๋ฒ•
    [...๋ฐฐ์—ด]
  • ์˜ˆ์‹œ(์ „๊ฐœ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐฐ์—ด ๋ณต์‚ฌํ•˜๊ธฐ)
//์‚ฌ์•ผ ํ•˜๋Š” ๋ฌผ๊ฑด ๋ชฉ๋ก
const ๋ฌผ๊ฑด_200301 = ['์šฐ์œ ', '์‹๋นต']
const ๋ฌผ๊ฑด_200302 = [...๋ฌผ๊ฑด_200301] --> ์ „๊ฐœ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐฐ์—ด ๋ณต์‚ฌ
๋ฌผ๊ฑด_200302.push('๊ณ ๊ตฌ๋งˆ')
๋ฌผ๊ฑด_200302.push('ํ† ๋งˆํ† ')

//์ถœ๋ ฅ
console.log(๋ฌผ๊ฑด_200301)
console.log(๋ฌผ๊ฑด_200302)

<์‹คํ–‰ ๊ฒฐ๊ณผ>
(2) ["์šฐ์œ ", "์‹๋นต"]
(4) ["์šฐ์œ ", "์‹๋นต", "๊ณ ๊ตฌ๋งˆ", "ํ† ๋งˆํ† "]

๐Ÿ‘ ๋งˆ๋ฌด๋ฆฌ


1. ๋‹ค์Œ ์ค‘ ์ „๊ฐœ ์—ฐ์‚ฐ์ž์˜ ํ˜•ํƒœ๋กœ ์˜ฌ๋ฐ”๋ฅธ ๊ฒƒ์€? โ‘  ~ โ‘ก ... โ‘ข @ โ‘ฃ spread

๋‹ต
โ‘ก ...


2. ๊ตฌ๊ธ€์— "popular javascript libraries2020"๋“ฑ์œผ๋กœ ๊ฒ€์ƒ‰ํ•ด์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ดํŽด๋ณธ ํ›„ ์ด๋ฆ„์„ 7๊ฐœ๋ฅผ ์ ์–ด๋ผ.

โ‘  ๋ฆฌ์•กํŠธ(React)
โ‘ก ๋ทฐ(Vue)
โ‘ข Day.js
โ‘ฃ ์ œ์ด์ฟผ๋ฆฌ(jQuary)
โ‘ค Chart.js
โ‘ฅ Three.js
โ‘ฆ Voca.js


์œผํ—ˆํ—‰ ใ… ใ…œใ… ใ…œ ๋“œ๋””์–ด ๋‹คํ–ˆ๋‹ค.. ์ง‘์— ์ธํ„ฐ๋„ท์ด ๋Š๊ธฐ๊ณ .. ์ด๋Ÿฐ ์ €๋Ÿฐ ์‚ฌ์ •๋•Œ๋ฌธ์—
5์ฃผ์ฐจ๋ฅผ ๋Šฆ๊ฒŒ ๋‚ด๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค.. ์•ˆํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” ๋Šฆ๊ฒŒ๋ผ๋„ ํ•ด์„œ ๋‚ด๋Š” ํŽธ์ด ๋” ์ข‹๋‹ค๋Š” ์ƒ๊ฐ์— ์—ด์‹ฌํžˆ ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค..!

profile
๋น ์ƒค!

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