작성식 예시: function sayHello(name) {
console.log('Hello, ${name}');
}
return = 값 반환, 반환 된 값은 변수에 저장
tip:
함수는 한번에 한 작업만 가능 읽기 쉽고 어떤 동작인지 알수 있게 네이밍 하자 어디서나 접근 가능한 변수 = 전역변수 함수 내부에서만 접근 가능한 변수 = 지역변수
예시:
function sayHello() {
console.log('Hello');
}
함수표현식(코드에 도달하면 생성):
let sayHello = function() {
console.log('Hello');
}
화살표 함수
let add = function(num1, num2) {
return num1 + num2}
위의 식을 화살표 함수로 바꾸면?
function을 작성 하지 않고 괄호 뒤에 '=>' 을 작성
중괄호 또한 일반괄호로 바꿀수 있다. 이때 return은 사용 할 필요 없다.
만약 return문이 한 줄이면 괄호도 생략이 가능하다.
즉, let add = (num1, num2) => (
num1 + num2; (이 부분이 한 줄일시 화살표 뒤의 괄호를 생략 할 수 있다.)
)
인수 또한 하나면 괄호를 생략 할 수 있다. but 인수가 없으면 괄호를 생략 할 수 없다.
Return문 전에 코드가 있다면 {}을 일반괄호 ()로 사용불가능하다.
예시:
const superman = {
name:'clark',
age: 33,
}
key와 velue 로 구성 되어져 있다.
각 프로퍼티는 , 로 구분한다.
object - 접근, 추가, 삭제
접근: '.' '[]' 를 이용한다.
ex) superman.name / superman['age']
추가:
ex) superman.gender = 'male' / superman['hairColor'] = 'black'
삭제: 삭제하고 싶은 프로퍼티 앞에 delete를 붙인다.
ex)delete superman.hairColor;
단축프로퍼티:
ex) const name = 'lala' /const age = 33
=> name:name => name / age : age => age
method - 객체 프로퍼티에 할당 된 함수!!
ex) const superman = {
name:'boram',
age: 24,
fly(method):function(){
console.log("날아갑니다")
}
}
superman.fly(); => 날아갑니다
단축구문작성시 function 생략 가능하다.
this:
ex) const user = {
name:'boram',
age: 24,
sayHello : function() {
console.log(Hello,i'm ???');
}
}
??? => ${this.name} 으로 바꿀수 있다.
여기서 this는 user 즉, 객체명과 같다.
주의사항
화살표 함수식을 사용하면 일반함수와 달리 자신만의 this를 가지지 않는다.
화살표 함수 내부에서 this(전역객체를 가르킴)를 사용하면, 그 this는 외부에서 값을 가져온다.
결론:method에서는 객체명을 직접 써주는 것 보다는 this를 활용하는 것이 좋다.
method작성시 this를 사용하여 객체에 접근해야 한다면 화살표 함수 사용을 자제, 이용하지 말자.