๐Ÿ”ฅ #18 javascript(ES6)

๋ฐ•์ค€์„ยท2022๋…„ 9์›” 20์ผ

javascript

๋ชฉ๋ก ๋ณด๊ธฐ
18/22
post-thumbnail

๐Ÿ”ฅ ES6

ES6 ์ƒˆ๋กœ์šด ๋ฌธ๋ฒ• ์ •๋ฆฌ

  1. ๊ฐ์ฒด ์ดˆ๊ธฐํ™”
let name="gildong"
let age =17
let cute = true

let person = {name, age, cute}
// let person = {name:name,age:age,cute:cute}์™€ ๊ฐ™๋‹ค 
  1. Destructuring(๊ตฌ์กฐ ๋ถ„ํ•ด ๋ฌธ๋ฒ•)
let person = {
    name:"gildong",
    age:17,
    cute:true
}
let {name, age, cute} =  person
/* let name = person.name let age = person.age let cute = person.cute์™€ ๊ฐ™๋‹ค */

let array = [1,2,3]
let [a,b,c] = array
/* let a = array[0] let b = array[1] let c = array[2]์™€ ๊ฐ™๋‹ค */
  1. Rest destructuring
    ๋ฐฐ์—ด ์•ž์ชฝ์— ์œ„์น˜ํ•œ ๊ฐ’ ๋ช‡ ๊ฐœ๋งŒ ํ•„์š”ํ•˜๊ณ  ๊ทธ ์ดํ›„ ์ด์–ด์ง€๋Š” ๋‚˜๋จธ์ง€ ๊ฐ’๋“ค์€ ํ•œ๋ฐ ๋ชจ์•„์„œ ์ €์žฅํ•˜๊ณ  ์‹ถ์„ ๋•Œ๊ฐ€ ์žˆ๋‹ค. ์ด๋Ÿด ๋•Œ๋Š” ์  ์„ธ ๊ฐœ ...์„ ๋ถ™์ธ ๋งค๊ฐœ๋ณ€์ˆ˜ ํ•˜๋‚˜๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด '๋‚˜๋จธ์ง€(rest)' ์š”์†Œ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
let person = {
    name:"gildong",
    age:17,
    cute:true
}
let {name, ...rest} = person
console.log(rest) // {age:17, cute:true}

let array = [1,2,3]
let [a,...rest] = array console.log(rest)//[2,3]
  1. Spread
    Spread๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์˜๋ฏธ๋Š” ํŽผ์น˜๋‹ค, ํผ๋œจ๋ฆฌ๋‹ค ์ด๋‹ค. ์ด ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด, ๊ฐ์ฒด ํ˜น์€ ๋ฐฐ์—ด์„ ํŽผ์น  ์ˆ˜ ์žˆ๋‹ค.
let a = [1,2]
let b = [3,4]
let c = [5,6]

let result = [...a,...b,...c] // [1,2,3,4,5,6]
  1. Template Literal
    ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด์€ ์ผ๋ฐ˜ ๋ฌธ์ž์—ด๊ณผ ๋น„์Šทํ•ด ๋ณด์ด์ง€๋งŒ, โ€˜ ๋˜๋Š” โ€œ ๊ฐ™์€ ํ†ต์ƒ์ ์ธ ๋”ฐ์˜ดํ‘œ ๋ฌธ์ž ๋Œ€์‹  ๋ฐฑํ‹ฑ(backtick) ๋ฌธ์ž `๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ž์—ด์—์„œ ์ค„๋ฐ”๊ฟˆ์€ ํ—ˆ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ ๊ณต๋ฐฑ(white-space)๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐฑ์Šฌ๋ž˜์‹œ("\")๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ด์Šค์ผ€์ดํ”„ ์‹œํ€€์Šค(Escape Sequence)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ์•ผ ํ•œ๋‹ค. ES6 ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด์€ ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ž์—ด๊ณผ ๋‹ฌ๋ฆฌ ์—ฌ๋Ÿฌ ์ค„์— ๊ฑธ์ณ ๋ฌธ์ž์—ด์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด ๋‚ด์˜ ๋ชจ๋“  white-space๋Š” ์žˆ๋Š” ๊ทธ๋Œ€๋กœ ์ ์šฉ๋œ๋‹ค.
let name ="gildong"
console.log(`์ œ ์ด๋ฆ„์€ ${name}์ž…๋‹ˆ๋‹ค`)
  1. ํ™”์‚ดํ‘œ ํ•จ์ˆ˜
    ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ ํ‘œํ˜„์‹์€ ๊ธฐ์กด์˜ function ํ‘œํ˜„๋ฐฉ์‹๋ณด๋‹ค ๊ฐ„๊ฒฐํ•˜๊ฒŒ ํ•จ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ํ•ญ์ƒ ์ต๋ช…์ด๋ฉฐ, ์ž์‹ ์˜ this, arguments, super์„ ๋ฐ”์ธ๋”ฉํ•˜์ง€ ์•Š๋Š”๋‹ค.์ž์‹ ๋งŒ์˜ this๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ์ž์‹ ์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” context์˜ this๋ฅผ ์ด์–ด ๋ฐ›๋Š”๋‹ค.
let foo =()=>{
    console.log("hello")
}
let zoo =()=>Date.now()
/* function zoo(){
     return Date.now()
  } ์™€ ๊ฐ™์Œ  */

let koo = (a,b) =>{
    let result = a*b
    return result
}
//๋˜๋Š”
let koo = (a,b) =>a*b
//๋กœ๋„ ํ‘œํ˜„ ๊ฐ€๋Šฅ 

โŒํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋ฅผ ์“ฐ๋ฉด ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ

  • object์•ˆ์— ํ•จ์ˆ˜ ์ •์˜์‹œ
const person = {
    points: 23,
    score: function(){
       this.points++; // ์—ฌ๊ธฐ์—์„  ํ™”์‚ดํ‘œํ•จ์ˆ˜ ์“ฐ๋ฉด point๊ฐ€ ์ฆ๊ฐ€ ์•ˆํ•จ
    }
}
  • ํ”„๋กœํ† ํƒ€์ž… ํ•จ์ˆ˜
class Car {
    constructor(make, color) {
       this.make = make;
       this.color = color;
    }
}
let hyundai = new Car("gildong","white")
Car.prototype.summary = function () {
    console.log( `This car is a ${this.make} in the colour ${this.colour}`)
} // ์—ฌ๊ธฐ์„œ ํ™”์‚ดํ‘œํ•จ์ˆ˜๋ฅผ ์“ฐ๋ฉด ์•ˆ๋œ๋‹ค  hyundai.summary()
  • this
    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ชจ๋“  ์ผ๋ฐ˜ํ•จ์ˆ˜๋Š” ์‹คํ–‰๋  ๋•Œ๋งˆ๋‹ค ํ•จ์ˆ˜ ๋‚ด๋ถ€์— this๋ผ๋Š” ๊ฐ์ฒด๊ฐ€ ์ถ”๊ฐ€๋œ๋‹ค. ์ด๋•Œ this๋Š” ์ด ํ•จ์ˆ˜๋ฅผ ๋ถ€๋ฅธ ๊ฐ์ฒด์ด๋‹ค.
    ๋˜ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ์ผ๋ฐ˜ํ•จ์ˆ˜๋ฅผ ๋Œ€์ฒดํ•  ์ˆ˜ ์—†๊ณ  ํŽธํ•˜๊ธด ํ•˜์ง€๋งŒ ์˜›๋‚  ๋ฌธ๋ฒ• 100% ๋Œ€์ฒ˜ํ•  ์ˆ˜๋Š” ์—†๋‹ค.
let age = 20
var obj = {
 age:12,
 foo: function () {
   console.log(this.age)
  },
};
obj.foo()
profile
์•ˆ๋…•ํ•˜์„ธ์š” ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค. ๊ธ€์„ ์ด์ „ ์ค‘์ž…๋‹ˆ๋‹ค.

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