강의 2-24 ~ 내용 중
function a() {} // '함수 선언문'
const b = function() {}; // '함수 표현식'
const c = () => {}; // '화살표 함수'
이 세 가지 방법을 통해 함수를 이용할 수 있습니다. 이 셋의 차이점은 9장에서 설명한다고 합니다.
function a() {
console.log("hello");
console.log("hi");
}
a();
function b() {
return '반환값';
}
// 리턴값을 여러개로 만드는 방법
function c() {
return [1, 5]; // 또는 객체 리터널로 하면 됨.
}
// 익명함수
function() {}
// 또는
() => {}
function a(parameter) {
console.log(parameter);
}
a('argument'); // argument
함수 호출하게 되면서 내부적으로 parameter = 'argument'
가 되면서 'argument'가 출력되게 됩니다.
C++ 경우 이러면 copy
가 일어나서 비효율적으로 수행하게 되는데, javascript에도 &
와 같은 역할을 수행하는 것은 없습니다. 하지만 엔진 내부에서 스스로 판단해 어떤 경우에는 참조를 사용하고 사용하지 않습니다.
https://velog.io/@jakeseo_me/2019-04-01-1904-작성됨-2bjty7tuuf?
https://chati.tistory.com/150
function a(w, x) {
console.log(w); // 1
console.log(x); // 2
// 3은 무시함.
}
const a = [1, 2, 3];
const f = (x, y, z) => {
return x * y * z;
}
// 리턴이 바로 나오면 중괄호{}를 생략 가능
const f = (x, y, z) => return x * y * z;
f(2, 3, 4); // 24
화살표 함수 내 변수를 써도되고 바깥의 변수도 사용가능합니다. 화살표 함수는 여러가지 응용이 가능하다고 합니다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/Arrow_functions
const obj = {
age: 10,
name: "nemostar",
'2ca': 'hello', // 띄어쓰기, 숫자, 특수문자로 시작하는 경우 따옴표로 묶어줘야함.
'c a': 'hello',
'c-a': 'hello',
};
obj.age; // 10
obj[age]; // 10
obj.2ca // error
// 대괄호에서 따옴표를 빼먹으면 변수가 됩니다. 자주하는 실수!
obj['2ca'] // hello
// 수정
obj.age = 20;
// 삭제
delete obj.age;
const 객체 = {
속성 이름1: 속성값,
속성 이름2: 속성값,
.
.
.
};
function hello() {}
hello.a = 'really?';
const array = [];
array.b = 'wow';
배열이나 함수가 객체
인 이유는 객체의 속성을 따라가기 때문입니다. 저런 식으로 속성의 추가가 가능합니다.
객체의 속성 값으로 함수를 넣었을 때 이것을 method
라고 부릅니다.
const debug = {
log: function(value) {
console.log(value)
},
};
debug.log('hello, Method');
const nemostar = {
name: 'me',
year: 2000,
month: 3,
};
배열과 다른 점은 배열은 인덱스만 존재하지만, 객체 리터럴의 경우 이름까지 붙혀있다는 점입니다.
{} === {} // false
객체끼리는 서로 비교하면 false
가 나옵니다. 왜 false냐면 새로운 객체와 새로운 객체를 비교하기 때문에 다르다고 합니다.
const a = { name: 'me' }; // 객체 리터럴
const arr = [1, 2, a]; // 배열 리터럴
console.log(a == array[2]); // true
array === [1, 2, a]; // false
객체가 아닌 값들을 저장하는 공간을 javascript는 따로 둔다고 합니다. 하지만 객체
는 따로 두는게 아니라 함께 묶여있기 때문에 저런 결과(묶여있는 틀이 다르기 때문)가 나온다고 합니다.
a와 c는 원시값
으로 저장공간이 다른 친구들입니다.
const me = {
name: {
first: 'nemo',
lase: 'star',
};
gender: 'man',
};
me.name.last;
me['name']['last'];
객체 안의 객체를 참조하는 방법.