javascript 기초 - 함수의 사용

nemostarrrrr·2021년 9월 6일
0

javascript

목록 보기
4/5
post-thumbnail

강의 2-24 ~ 내용 중

함수 function

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'];

객체 안의 객체를 참조하는 방법.

profile
노력하며 살려고 노력하는 사람

0개의 댓글