2.7 Functions part One

gangmin·2021년 12월 18일
0

console.log()에는 괄호가 있었는데, object때 만든 player.points 여기엔 괄호가 없다.
왜냐면 우리의 player.points는 함수(function)가 아니기 때문이다. player.points는 단지 숫자일 뿐이다.

[ Function ]

계속 반복해서 사용할 수 있는 코드 조각이다. (( 가능한 적은 코드를 작성하기 위해 ))
어떤 코드를 캡슐화해서 실행을 여러번 할 수 있게 해준다.

  • 함수 사용하지 않는 경우
console.log("Hi my name is mini")
console.log("Hi my name is nico")
console.log("Hi my name is pizza")
console.log("Hi my name is potato")

바뀌는 부분은 끝의 이름 뿐인데, 코드가 쓸데없이 길어진다.

위 코드의 목표는 누군가에게 인사를 하는 것이다. 그리고 우리는 코드의 반복을 최소한으로 줄이고 싶다. 이때 "함수"를 만드는 것이다.

함수는 ( ) = 괄호가 필요하다. 그리고 실행하게 될 코드 블록이 필요하다. { } 블록 안에 작성한 것이 함수를 실행할 때마다 실행된다. ( = 실행버튼을 누를 때마다 발생한다. )

  • 함수 사용하는 경우
function sayHi(){
    console.log("hi")
};
sayHi();
>> hi

어떤 부분만 다르게 하고싶다면 인수(argument)라는 것을 보내야 한다. 인수는 함수를 실행하는 동안 어떤 정보를 함수에게 보낼 수 있는 방법이다.

  • 인수를 설정하지 않은 경우
console.log();

아무것도 로드되지 않는다. 괄호 안에 아무 내용도 없기 때문이다.
함수 실행버튼=();을 눌렀지만 아무것도 안보냈기 때문이다.
함수 실행버튼을 누르면서 뭔가를 보내는 법을 배울 차례이다.


2.8 Functions part Two

  • 인수를 사용한 함수
function sayHi(name,age){
    console.log("hi my name is "+ name + " and I'm " + age)
};
sayHi("mini",25);
>> hi my name is mini and I'm 25
sayHi("nico",30);
>> hi my name is nico and I'm 30

name과 age는 함수 블럭 안에서만 존재한다. 인수는 함수 블럭 밖에서는 존재하지 않는다.


  • 간단한 계산기 만들기
    (1) undefined
function plus(a,b){
    console.log(a,b)
}
plus();
>> undefined undefined

인수를 주지 않았기 때문에 정의되지 않았다고 뜬다.


(2) NaN

function plus(a,b){
    console.log(a+b)
}
plus();
>> NaN

NaN = Nat a Number (숫자가 아님)
숫자로 표현할 수 없는 수학적 계산의 결과를 나타낸다.
a+b라는 수학적 계산의 내용인데, 인수를 주지 않았기 때문에 저런 결과가 나온듯..?


(3) 더하기

function plus(a,b){
    console.log(a+b)
}
plus(1,2);
>> 3

a는 1이 되고, b는 2가 된다. => 순서가 매우 중요하다.

  • object내 property에 함수 적용
const player = {
    name : "mini",
    sayHi : function(otherPersonName){
        console.log("hi! " + otherPersonName + " nice to meet you");
    }
};
player.sayHi("nico");
>> hi! nico nice to meet you

+) undefined / null / NaN

참조 블로그

  • typeof 사용시 undefined는 undefined, null은 object, NaN은 number가 반환된다.

  • NaN==undefined는 false다.

  • NaN==null은 false다.

  • null==undefined는 true다.

  • NaN과 null과 undefined는 일반적으로 비교할땐 false로 취급한다.

  • null은 숫자의 경우 0이 된다.

  • undefined는 숫자의 경우 NaN이 된다.

  • NaN의 비교는 isNaN으로 하지 않는다면 결과를 예측할 수 없다.

0개의 댓글