본문 바로가기

전체 글30

[JavaScript] Function Note 모던 자바스크립트 Deep Dive 12장을 읽으며 정리한다. "Function Declarations vs Function Expressions" → Just a Style!... But? 함수 선언문은 다음과 같다. function add(x,y){ return x+y; } 함수 표현식은 함수 리터럴로 생성한 함수 객체를 변수에 할당하는 것이다. 다음과 같다. var add = function foo(x,y){ return x + y; }; 이때, 함수를 호출할 때는 함수 이름이 아니라 함수 객체를 가리키는 식별자를 사용해야 한다! 따라서 만약 위 코드에서 add( 1, 2)를 콘솔에 찍으면 정상적으로 출력되지만, foo로 찍으면 작동하지 않는다. 함수 이름은 함수 몸체 내부에서만 유효한 식별자기 때.. 2022. 2. 5.
[JavaScript] 원시 값 vs 객체 (Primitive Type/Reference Type(Object)) 모던 자바스크립트 Deep Dive 11장을 읽으며 정리한다. 원시 값(Primitive Type)은 변경 불가능한 값? 책에 서술되어 있는 내용을 가져왔다. 변경 불가능한 값이라고 하지만, 우리가 아는 변수는 값을 재할당 할 수 있다. 이에 잠시 의아함을 느꼈는데, 초점은 변경 불가능한 값이다. 원시 값을 할당한 변수에 새로운 원시 값을 할당한다면, 새로운 메모리 공간을 확보하고, 재할당한 원시 값을 저장한 다음, 변수는 새롭게 재할당된 값을 가리킨다. 즉, 변수가 참조하던 메모리 공간의 주소가 바뀐다. 메모리 공간에 저장되어 있던 값이 변경되는 게 아니다! 불변성 (Immutability) : 변경 불가능하다. 불변성을 갖는 원시 값을 할당한 변수는 재할당 외에 변수 값을 변경할 수 있는 방법이 없다.. 2022. 2. 4.
[JavaScript] 타입 변환&단축 평가 note 모던 자바스크립트 Deep Dive 9장을 읽으며 메모한다. 암묵적 타입 변환 인터넷에 돌아다니던 자바스크립트 밈이 있다. 이 중에서 몇가지만 가져와보겠다. 숫자, 문자 변환 10 + ‘1’은 10이 문자열 ‘10’으로 변환되어, 문자열 두개가 합쳐짐 10 - ‘1’은 ‘1’이 number 1로 처리되어 9가 됨 10 + ( +’1’)은 괄호 안에 있는 ‘1’이 숫자로 처리되어, 더해서 11이 됨. 숫자, 문자 변환 항상 자바스크립트 밈으로 나오는 그 식이다. 2+ 2 = 4, 지극히 평범한 식이다. “2” + “2” = “22”, 문자열을 붙이는 방식이다. 2 + 2 - 2 = 2, 납득할 만 하다 “2” + “2” - “2” = “20”, 당황스러운 결과다. 그러나 밑에 “22” - “2”가 20임을.. 2022. 2. 3.
[JavaScript] Template literals 사용법 react를 사용하면서 axios로 서버에 request를 보낼 때, url에 user id 등을 담아야 하는 경우가 있었다. 처음에 문자열을 불러와 더하는 식으로 붙여 보냈는데, 상당히 번거로웠다. 이때 template literal를 쓰면 된다! 문법 `string text` `string text line 1 string text line 2` `string text ${expression} string text` tag `string text ${expression} string text` 템플릿 리터럴은 작은따옴표(’’)나 큰따옴표(””) 대신 백틱(``)을 써서 표현한다. 런타임에 템플릿 리터럴은 일반 문자열로 변환되어 처리된다. Multi-line strings 일반적으로 문자열 안에서 줄바.. 2022. 2. 2.