javascript koans를 진행하며 새로 안 사실들

도현수·2022년 7월 13일
0

javascript

목록 보기
11/20

expect 함수

기댓값과 테스트 하는 값이 일치하는 지를 알기 위해 사용한다.

작성법

expect(테스트하는값).기대하는조건

예시

expect(isEven(3)).to.be.true => 'isEven(3)'의 결과값은 참(true)이어야 한다'
expect(1 + 2).to.equal(3) => 'sum(1, 2)의 결과값은 3과 같아야(equal) 한다'

이 때, '기대하는 조건'에 해당하는 함수를 macher라고 한다.
'참인 것이어야 한다' => to.be.true
'3과 같아야 한다' => to.equal(3)

equal macher

to.be.true, to.be.false 만을 가지고도 많은 테스트 케이스를 작성할 수 있다.
하지만 이는 직관적이지 않고 다소 불편하다.
.equal은 두 값 A와 B를 '비교한 결과'가 참인지를 확인하는 대신에 직접 A가 B와 같은지 확인한다.

expect('테스트하는값').to.equal('기대하는값');

예시

expect(1 * 5).to.equal(5)
=> '(1*5) 의 결과값은 3과 같아야(equal) 한다'
let a = (1+1).toString();
expect(a).to.equal('2') => a의 결과값은 '2'와 같아야 한다.

javascript의 별난 부분들

문자열 + 숫자

console.log(1 + '1'); // '11' 

더하기 연산자의 경우 문자열과 숫자를 위해 만들어졌는데, 피연산자 중 하나라도 문자열이면 피연산자 모두를 문자열로 취급한다. 단, 문자열이 없을 경우 모든 피연산자를 숫자로 연산한다.

문자열 - 숫자

console.log(21 - '1'); // 20

그러나 빼기 연산자의 경우 숫자에 대해서만 연산을 진행한다. 피연산자 중 하나라도 숫자면 나머지 피연산자도 숫자 취급하며, 피연산자가 숫자가 될 수 없는 경우, NaN을 반환한다.

화살표 함수

기본 사용법

const add = (x, y) => {
      return x + y
    }

console.log(add(10,20)); // 30

코드 블럭에 return만 있는 경우 return과 {}를 생략 가능하다.

const subtract = (x, y) => x - y

필요한 경우 ()을 사용할 수 있다.

const multiply = (x, y) => (x + y) * (x - y)
multiply(10,20); // -300

파라미터가 하나일 경우, 소괄호 생략이 가능하다.

 const divideBy10 = x => x / 10

화살표 함수를 통해 클로저를 표현할 수 있다.

const subtractor = x => y => {
      return x - y
    }

this에 대하여

method는 '어떤 객체의 속성으로 정의된 함수'를 말한다. 따라서, method는 항상 '어떤 객체'의 method이다.이 때, 호출될 때마다 어떠한 객체의 method라면, 그 '어떠한 객체'를 묻는 것이 this이다.
예시로, obj이라는 객체 안에 foo라는 메서드를 선언하고, this를 반환한다고 했을 때 ( 예: let obj = {foo: function() {return this}}; )

let obj = {foo: function(){return this}}

(foo는 'obj'의 메소드이며, foo는 this(어떠한 객체), 즉 obj를 반환한다.)

0개의 댓글