객체 사용 이유? 여러개의 값을 저장하기 위해서
book = {
title:'대모험',
page:200
}
book['title']
book.title
여러개의 값을 저장하기 위해서, key값을 자동으로 0부터 만들어주고,
length property(키값)에 자동으로 저장되어 있다.
book = {0: '대모험', 1:200}
book = [ '대모험', 200 ]
book[0]
기능을 한다
여러줄의 코드를 재사용하기 위해서
사용한다
ex) console.login
alert
confirm
...
세가지를 정의한다
1. 인자를 몇개 쓸수 있는지 정의한다
함수를 정의할 때 매개변수를 사용하면
함수를 사용하는 사람이 소괄호 안에 쓴 인자가
매개변수에 각각 순서대로 대입이 된다
함수를 만드는 입장에서 특정 값을 정할 수 없고
함수를 사용하는 사람이 정할수만 있을때
매개변수를 통해 값을 전달받는 것이다
ex) 경고 메시지
2. 함수가 어떻게 동작하는지를 정의한다
중괄호(body)안쪽에 코드가 위에서부터 차례로 실행된다
3. 함수실행 결과 값이 무엇이 되는지를 정의한다
return 값; 을 통해 함수 실행 결과를 값으로 되돌려준다.
함수 실행 결과는 return 옆에있는 값이 되므로
치환해서 해석하면 된다
return 이 생략되거나 return 옆에 값이 없으면
함수 실행 결과는 모두 undefined가 된다
함수 실행결과를 추가적으로 연산하거나 구분
해서 사용해야 할때
ex) prompt 함수
function 함수이름(매개변수, 매개변수, ...) {
코드...
return 값;
}
함수호출연산자() 를 사용하여 함수를 실행한다
console.log(10);
test();
console.log('연결확인');
// '대모험', 200 두개의 값을 저장(객체)
let book = {title: '대모험', price:200};
console.log(book);
console.log(book['title']);
console.log(book.title);
// '대모험', 200 두개의 값을 저장(배열)
let myBook = ['대모험', 200];
console.log(myBook);
// console.log(myBook.0); key값이 숫자(인덱스)니까 '.'사용 X
let books = [
{
title: '대모험',
price:200}, // 0번째방
{
title: '곰세마리',
price:150}, // 1번째방
{
title: '홍길동',
price:500} // 2번째방
];
console.log(books);
// '대모험' 출력
console.log(books[0].title);
console.log(books[0]['title']);
console.log('2번파일 실행됨');
// 안녕하세요 출력, 반갑습니다 출력
// console.log('안녕하세요');
// console.log('반갑습니다');
// 함수 정의(test 함수)
function test(){
console.log('안녕하세요');
console.log('반갑습니다');
}
// 함수 실행
// test();
// 안녕하세요 출력, april입니다 출력, 반갑습니다! 출력
function sayHi(){
console.log('안녕하세요');
console.log('april 입니다');
console.log('반갑습니다!');
}
function sayHi2(){
console.log('안녕하세요');
console.log('Jay 입니다');
console.log('반갑습니다!');
}
function sayHi3(){
console.log('안녕하세요');
console.log('Kyle 입니다');
console.log('반갑습니다!');
}
// 함수를 사용하는 목적 자체가 사라진다.
// 함수 하나만 가지고 이름만 바꿔서 사용할 순 없을까?
// sayHi();
// sayHi2();
// sayHi3();
// sayHi(name) --> name 이라는 변수에는 출력해줘
// sayHi('april') --> april 을 출력해줘
// age 라는 변수에는 나이
function sayHi(name, age){
console.log('안녕하세요');
console.log(`${name}님의 나이는 ${age} 입니다`);
console.log('반갑습니다!');
return undefined;
}
sayHi('April', 31);
sayHi('Jay', 41);
sayHi('Kyle', 7);
// alert 함수
// alert('아이디가 유효하지 않습니다');
// function alert(a) {
// `a`
// };
// 함수 실행 결과를 값으로 받아오자
function f1(x){
return 2*x + 1;; // 이 함수 실행결과가 return이야
}
console.log(f1(5)); // undefined 가 나온다
console.log(11); // 11이 나온다
console.log(f1(f1(5))); // 23이 출력된다
let name = prompt('이름을 적어주세요.');
console.log(myName);
let res = alert('경고'); // alert 함수는 return이 없다
console.log(res); // console.log(undefined);
function f2(x){
return x *3 + 3;
}
function f3(x){
x *3 + 3;
return undefined;
}
let res1 = f2(3);
let res2 = f3(3);
// 배열은 object 타입 중 array 타입
let res3 = f2; // 대입연산자니까 f2부터 해석
// f2함수를 res3에다 넣어줘.
// f2는 뭐다? 함수다.
// 그럼 res3 는 뭐가 된다? 함수가 된다.
// 함수도 객체!!! object 타입
// 중에서도 function 타입
console.log(res3(5)); // 18 이 나온다.
let a = {
title: '대모험',
price:200
}
let b = a;
b.title = 'April의 대모험';
console.log(a);
function temp(a){
console.log(a(10));
}
temp(f2); // 33이 나온다.
// 익명함수
// 이름이 존재하지 않는 함수 : 다시쓰지 않겠다
// 일회성으로 사용하고 버리는 함수
// function (){
// }