프로그래밍 기초 상식 7

JavaScript 객체와 불변성

JS의 데이터 타입인 원시타입은 (primitive data type)은 변경 불가능한 값(immutable value)이며 예를 들면 Number String Boolean null undefined Symbol 등이 있다. 원시 타입 이외의 모든 값은 객체(Object) 타입이며 객체 타입 은 변경 가능한 값(mutable value)이다. 즉 객체는 값을 직접 바꿀 수 있는 변경 가능한 타입이라 볼 수 있다. 여러 예시들 간단한 예시를 한줄씩 실행되는 인터프리터 기반 언어인 js 는 위의 예시처럼 메모리에 'Hi'는 문자열을 생성 1번째 a라는 변수에 저장(메모리주소가 저장) 이후 2번째 줄에서 메모리에서 'Bye'라는 문자열 생성 a에 재할당 해준다.//그래서 찍어보면 Bye가 출력된다. (즉 a..

JavaScript의 자료형과 JavaScript만의 특성

자료형은 크게 숫자형,BigInt,문자형,Boolean 이 있으며 특수한 자료형인 객체,심볼형 그리고 null,undefined,Infinity,NaN 값 등이 있다. JavaScript의 자료형 먼저 살펴볼 것은 1. 숫자형 숫자형은 정수,소수점 등 number를 나타낼 때 사용 나눗셈(/) ,곱셈(*),뺄셈(-),덧셈(+) 연산자를 주로 사용 특수숫자값 NaN(Not a number) ,Infinity(말그대로 무한대),-Infinity(음의 무한대값) 도 있다. isInteger() 데이터가 정수인지 판별하는 함수 parseInt() 숫자로 구성된 문자열을 인자로 받아 정수형으로 값을 되돌려 준다. 즉, 인자(문자열)를 해석 지정된 진법의 정수형 값을 리턴 * 반대로 number->String형태로..

호이스팅과(hoisting) TDZ

호이스팅은 JS(인터프리터)가 변수와 함수의 메모리 공간을 선언전 미리 할당하는 것!! var는 선언과 초기화를 세트로함 let,const는 변수 선언과 초기화를 분리, 선언 코드를 상단에 두는 것. * 선언 전에 변수를 사용할 경우var 는 undefined 를 꺼내고 나머지는 ReferenceError가 뜬다. JS엔진은 선언한 변수와 함수를 먼저 모아둔다. 나중에 어떻게 할당될지는 모른당ㅇㅇ //var num;//선언 //num=6;//초기화 선언전 따로 모으는 호이스팅으로 인해 실행은 되나 콘솔값이 undefined이다. 선언이 없고 초기화만 있기 때문에 ReferenceError이다. TDZ (Temporal Dead Zone) TDZ는 let,const,class구문의 유효성을 관리한다. 예를..

자바스크립트 엔진

처음 시작하기에 앞서 동작원리에 대해 배워보자 https://blog.toycrane.xyz/%EC%A7%84%EC%A7%9C-%EC%89%BD%EA%B2%8C-%EC%95%8C%EC%95%84%EB%B3%B4%EB%8A%94-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EB%8F%99%EC%9E%91-%EC%9B%90%EB%A6%AC-c7fbdc44cc97 진짜! 쉽게 알아보는 자바스크립트 동작 원리 너무나도 어려운 비동기 동작 뿌시기 blog.toycrane.xyz 자세히 나와있다. 한번 뿌셔보자. 엔진은 3단계 인지를 한다. 1. 선언단계 ex)var,let,const 등으로 변수를 선언 하여 사용할 변수를 엔진에 알려준다. 보통 선언문이 먼저..

.forEach(), .map(), .filter() 뭐가 다른가?

먼저 .forEach() 위 처럼 foreach 는 각각의 배열에 있는 요소들을 만들어둔 함수에 넣어 차례로 출력해주는 형태이다. 보통 item을 순서대로 바꿔줄때 사용된당. 다음 .map() .map()은 배열의 모든 요소에 대해 동일한 코드르 실행, 업데이트된 요소가 포함 된 새 배열을 반환 // cost의 새 배열 newCost 에 업데이트된 요소가 포함된 costItem 함수를 새 배열로 반환하는 로직이다. 어떤 요소를 업데이트 해줄 때 사용된당. 다음 .filter() .filter()는 배열의 모든 요소를 검사, 특정 기준을 충족하는지 확인, 기준에 대해 참을 반환하는 요소가 포함된 새 배열을 반환한다. // 위에서 특정 기준은 costItem이

JWT,API

JWT(JSON WEB TOKEN) HTTP의 특징 Connenctionless: 클라이언트가 요청을 서버에게 보내면 서버는 이에 대한 적절한 응답을 한 후에 연결을 종료. Stateless: Connenctionless의 특징으로 서버와 클라이언트와의 연결이 종료된다면 상태 정보는 저장하지 않고 사라짐. 이러한 특징의 문제점을 보완하기 위해 서버는 기존에 토큰을 발급받은 클라이언트에게 토큰을 요청하고 DB를 거치지 않고 서버에서 바로 확인하여 기존 회원의 정보를 알 수 있게된다. 아래는 JWT의 구조이다. https://covenant.tistory.com/201 참고 블로그 https://velog.io/@ypo09/JWTJSON-Web-Token-%EB%9E%80-%EB%AC%B4%EC%97%87%..

키워드(속성)의 차이, 호이스팅 ,스코프

키워드(속성) Identifier(식별자) = 변수(변수값) 식별자는 변수에 해당하는 Memory 공간의 address와 value 값 중 value를 가져온다 - js는 managed language이기에 변수에 저장된 address를 읽어오는 reference(참조)를 할 필요가 없기에 ex) const Knumber = 30 //변수 (키워드,속성) : const //변수명(식별자,속성값) : Knumber //변수값(할당된 즉 저장된 값) : 30 호이스팅(hoisting) : 모든 선언문이 포함된 코드를 먼저 실행 후 순차적으로 실행 (선언한 모든 식별자도 호이스팅 됌) *재할당 : 재할당은 변수에 저장된 값을 다른 값으로 변경하는 것으로, 만약 변경할 수 없는 값이라면 이는 변수가 아니라 상수..