본문 바로가기
Daily/Today I Learned

JavaScript Koans 복습(CodeStates FrontEnd BootCamp) - 작성중...

by hustle-ing 2023. 3. 6.

1. Matcher

- mocha, chai framework에는 아래의 예시 말고도 다양한 matcher가 있다.

expect( ).to.be.true;
expect( ).to.be.false;
expect( ).to.equal( ); // 두 값이 타입까지 같은 지 엄격하게 검사(strcit equality, ===)

 

 

 

2. JavaScript의 별난(quirky) 부분들

- https://github.com/denysdovhan/wtfjs

expect(1 + '1').to.equal('11'); // +뒤에 나온 '1'이 숫자로 적용되었다.
expect(123 - '1').to.equal(122);  // -뒤에 나온 '1'은 문자열로 적용되었다.
expect(1 + true).to.equal(2);  // +뒤에 나온 true가 1로 적용되었다.
expect('1' + true).to.equal('1true');  // + 앞에 문자열이 있었기에 뒤에 나온 true도 문자열로 적용되었다.

 

 

3. 선언키워드 - const

- 구글 자바스크립트 코딩 스타일 가이드

https://google.github.io/styleguide/jsguide.html#features-use-const-and-let

const로 선언된 변수에는 재할당이 금지된다.
const로 선언된 배열이나 객체의 경우, 속성을 추가하거나 삭제할 수는 있다.

 

 

 

4. Scope와 Closure

 

 

5. ArrowFunction(화살표함수)

const add = (x,y) => { return x+y }  // fucntion 키워드를 생략하고 =>를 붙인다.
const subtract = (x,y) => x -y // return을 생략할 수 있다.
const multiply = (x,y) => (x * y) // 필요에 따라 소괄호를 붙일 수도 있다.
const divideBy10 = x => x / 10 // 파라미터가 하나일 경우 소괄호 생략도 가능하다.

const adder = x => { return y => { return x + y } }
const subtractor = x => y => { return x - y }  // 화살표함수를 이용하여 클로저를 간단히 표현할 수 있다.

 

 

 

6. 원시자료형과 참조자료형

 

원시자료형

자바스크립트에서 원시자료형은 객체가 아니면서 method를 가지지 않는 데이터를 말한다.
string, number, bigint, boolean, undefined, symbol, (null)

원시자료형은 값 자체에 대한 변경이 불가능(immutable)하다.
원시자료형을 변수에 할당할 경우, 값 자체의 복사가 일어난다.
원시자료형 혹은 원지자료형의 데이터를 함수의 전달인자로 전달한 경우, 값 자체의 복사가 일어난다.

 

참조자료형

자바스크립트에서 원시자료형이 아닌 모든 것은 참조 자료형이다.
배열[ ], 객체{ }, 함수 function(){}

참조자료형은 값 자체에 대한 변경이 가능하다.
참조자료형의 데이터는 heap에 저장되고, 변수에 할당을 할 경우 변수에는 주소가 저장된다.

댓글