[unit 10] JS Koans

kongchip·2022년 7월 13일
0

Koans를 풀면서 기존에 내가 제대로 공부했다고 생각했던 것들과, 새로 알게된것을 적어보며 다시 알아가는 시간을 가져보려고 한다.

expect함수

Koans를 풀면서 알게된 expect함수
expect 함수는 테스트하는 값과 기대값을 비교하기 위해 사용하는 함수로 expect(테스트하는값).기대하는조건 으로 사용한다

expect(1 + 2).to.equal(3);
(1+2)는 테스트하는 값 .to.equal(3)은 테스트 하는 값인 것으로
(1 + 2) (3)과 같다.

type

1. let a = 1 + '1' // 결과는? '11'
2. let b= 123 - '1'// 결과는?
3. let c =  1 + true // 결과는? 2
4. let d = '1' + true  // 결과는?

type문제는 정말 어려움 없이 풀어나갈 수 있겠다고 생각했지만 바로 반성하게 만든 문제다.
1번 숫자와 문자를 더하면 그 두개의 값을 붙인뒤 문자가 되는것
3번 true는 1 false는 0이라 1+true를 하면 2가 된다
그렇다면 2번과 4번은? 구하는김에 각 문제별 결과의 type도 궁금하며 console.log로 찍어봤다.

1. let a = 1 + '1' // '11'
console.log(typeof(a)); // 'string'
2. let b= 123 - '1'// 122
console.log(typeof(b)); // 'number'
3. let c =  1 + true // 2
console.log(typeof(c)); // 'number'
4. let d = '1' + true  //1true
console.log(typeof(d)); // 'string'

2번의 결과를 보니 신기하게 숫자와 문자를 -하니깐 +와는 다르게 sting이 number로 바뀌면서 결과로 122가 나옴 (숫자에 123-'a'를 하면 NaN이 된다.) 그리고 그 값의 type은 number

4번은 문자인 숫자에 true를 더하니 11이라고 생각했지만 오히려 true가 문자로 바뀌면서 1true가 되었다. 그리고 type은 string

const와 let의 차이

let은 선언후 값이 변할때 사용한다.
let a = 1;
a = 3; // 3

const b = 1;
b = 3; // error

let은 변수를 선언후 값을 재할당할 수 있지만 const는 재할당할 수 없다.


이것들 왜에도 호이스팅, this, scope(스코프), Closure(클로저)등등이 있지만
글로 작성하기전 좀더 이해하고 작성하고 싶기에 적지 못했다.

profile
좋은 프론트엔드 개발자가 되기위한 블로그

0개의 댓글