javascript(72)
-
jest 여러가지 to~~(toBe, toEqual, toStrictEqual...) 사용해보기
ToBe와 ToEqual 사용해보기 테스트하려는 코드 const hi = { add : (num1, num2) => num1 * num2, makePerson: (name, age) =>({name, age}) } module.exports = hi; 두개의 객체는 서로 일치하니 당연히 true가 되어야 할것 같은데 toBe의 경우에는 테스트를 통과하지 못하고 있다. const fn = require("./hi"); test('사람 만들기 ToEqual', () => { expect(fn.makePerson("sanghoony", 12)).toEqual({ name:"sanghoony", age:12}); }); test('사람만들기 ToBe ', () => { expect(fn.makePerson("s..
2021.03.17 -
jest로 테스팅 시작해보기 및 테스팅 알아보기
우선 jest를 알아보기전 테스팅을 알아보자! 테스팅은 일반적으로 코드를 개발하기 전이나 하면서 해당 코드가 어떻게 돌아갈지 확인하기 사용한다. 테스트 코드를 작성하면 자신의 코드가 어떤 상황에서 잘 진행될까 미리확인 될 수 있어서 미래에는 효율적으로 오류를 줄이며 코딩을 할 수 있어서 많은 사람들이 사용을 하고 있다. 하지만 개인적인 생각으로는 너무 또 과도하게 하게되면 빠른 변화가 있는 스타트업 같은 경우 따라가기 힘들다고 생각이들었다. 그래서 오늘도 드는 생각 적당히 사용하자다.... 일단 jest의 경우에는 facebook에서 만든 테스트 라이브러리로 일반적인 회사 구인글에도 많이 보인다. jest로는 unit, intergration test 둘다 사용할 수 있다. 이글을 시작으로 천천히 jes..
2021.03.17 -
javascript 33가지 기본 컨셉: 8. IIFE, Modules, Namespaces
IIFE(즉시 실행함수) 즉시 실행함수는 정의되자 마자 바로 실행되는 함수를 의미한다. 대부분 첫번째 괄호 안에 익명 함수를 정의하는 방법으로 사용한다. (function (){ console.log("add"); })(); (()=>{ console.log("arrow"); })(); 이 것을 만듬으로 기대하는 효과는 크게 두가지다. 1. 글로벌 전역 함수로 선언되지 않게 막을 수 있다. 2. IIFE안으로 다른 변수들이 접근을 못하도록 막든다. 즉 IIFE 안에 존재하는 코드는 외부에서 변경할 수 없다. 따라서 아래와 같은 경우에는 에러가 발생한다. 위의 에러는 IIFE안에 선언된 변수를 글로벌 스코프에서 접근하여 변경하려고 했기 때문에 에러가 발생했다. 물론 IIFE안에서 접근하면 오류가 발생하지 ..
2020.05.21 -
javascript 33가지 기본 컨셉: 7. Expression vs. Statement
Expression vs. Statement Expression js에서 Expression은 value를 return 하는 것을 의미한다. 그냥 단순히 value도 될 수 있고 function을 통해서 반환하는 value일 수도 있습니다. 예를 들어 1 + 1 // expression function add(a, b){ return a + b; } const ab = add(1, 2); // expression function add(a, b){ a + b; } const ab = add(1, 2); // undefined가 출력되지만 // undefined를 반환하기 때문에 expression이다. Statment js에서 지시 및 명령을 의미한다. 아래의 예를 보면 바로 이해가된다. for(var ..
2020.05.19 -
javascript 33가지 기본 컨셉: 6. Scope
Scope 스코프란 각 변수를 참조할 수 있는 범위를 나타냅니다. 한마디로 해당 변수를 사용할 수 있나 없나를 의미한다. Lexical Scope js의 경우 각 변수들의 스코프가 결정될 때는 함수가 호출될 때가 아닌 선언될 때이다. 그래서 아래의 결과로 1이 호출된다. 함수가 선언될때 x의 스코프가 결정되기 때문에 bar는 가장 바깥의 x에 접근하게 된다. let x = 1; function foo() { let x = 10; bar(); } function bar() { console.log(x); } foo(); bar(); Global Scope 어디서든지 접근하여 변수를 사용할 수 있다. 가장 최상위 단의 scope이다. var a = 1; function hi(){ console.log(a);..
2020.05.16 -
javascript 33가지 기본 컨셉: 5. Type of
JS에서는 크게 타입 걱정을 하지 않고 변수선언을 해주고 있다. 이러한 과정중에 자기가 사용하는 변수의 타입을 놓치는 경우가 있다. 이럴 때 primitive type 혹은 array, Object의 타입을 확인하기 위해 사용하는 것이 Type of이다. 오늘은 Type of 및 instanceof에 대해 알아보도록 하자!! typeof은 primitive type의 변수들의 타입을 확인할 수 있습니다. primitive의 문자열, 숫자, boolean, undefined, function(){} 등을 의미한다. typeof []의 경우는 Array인데도 object를 반환한다. Array와 Object를 구분하기 위해서는 instanceof를 사용해야한다. instanceof와 typeof는 대체로 비..
2020.05.14