데이터 타입 종류 원시 숫자(Number) 문자열(String) 불리언(Boolean) Undefined null 심벌(Symbol) 객체 객체(Object) 함수(Function) 배열(Array) 숫자(Number) JS는 하나의 숫자 타입만 존재 (int, log, float 없음) console.log(1 === 1.0); // true 모든 수를 실수로 처리 배정밀도 64비트 부동소수점 형식 숫자를 표현할 때 부호 비트, 지수, 가수부분으로 나누어서 숫자를 표현하기 때문에 오차가 발생할 수도 있음 (실수를 정확히 표현하지는 못함) 특별한 값 (Infinity, NaN) // 숫자 타입의 세 가지 특별한 값 console.log(10 / 0); // Infinity console.log(10 / ..
값 식이 평가되어 생성된 결과 Value 10 + 10; //30 초기화 개발자가 명시적으로 처음 값을 할당하는 것 JS엔진은 선언문이 실행이 되면 암묵적으로 undefined로 할당 리터럴 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법 - 생겨 먹은 대로 불리는거 숫자 리터럴 3 표현식 == 값 값으로 평가될 수 있는 문 (선언문X) 표현식이 평가 되면 새로운 값을 참조하거나 기존 값을 참조 // 리터럴 표현식 10 'Hello' // 식별자 표현식(선언이 이미 존재한다고 가정) sum person.name arr[1] // 연산자 표현식 10 + 20 sum = 10 sum !== 10 // 함수/메서드 호출 표현식(선언이 이미 존재한다고 가정) square() pers..
변수 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름 → 값의 위치를 가리키는 상징적인 이름 할당(대입, 저장) : 변수에 값을 저장하는 것 참조 : 변수에 저장된 값을 읽어 들이는 것 // 변수는 하나의 값을 저장하기 위한 수단이다. var userId = 1; var userName = 'Lee'; // 객체나 배열 같은 자료구조를 사용하면 여러 개의 값을 하나로 그룹화해서 하나의 값처럼 사용할 수 있다. var user = { id: 1, name: 'Lee' }; var users = [ { id: 1, name: 'Lee' }, { id: 2, name: 'Kim' } ]; 식별자 변수, 함수, 클래스 등의 이름이 모두 식별자, 선언에 의해 J..
개발자 도구 도구 설명 Elements DOM과 CSS를 편집해서 렌더링 된 뷰를 확인해 볼 수 있다. Console 로딩된 웹페이지의 에러를 확인하거나 console.log메서드의 실행결과를 확인할 수 있다. Sources 로딩된 웹페이지의 자바스크립트 코드를 디버깅할 수 있다. Network 로딩된 웹페이지에 관련된 네트워크 요청 정보와 성능을 확인할 수 있다. Application 웹 스토리지, 세션, 쿠키를 확인하고 관리할 수 있다. JS 언어 특 JS --> 자주 사용하는거 (반복문 안이나 함수 바디에 있는 부분을 먼저 컴파일 해놓아서 기계어로 바꾸어둠) 자주 사용안하는거는 인터프리터가 해석 컴파일도 같이 사용하지만 결국엔 실행파일을 안만들기 때문에 인터프리터 언어라고 함 ECMA Script ..
쿠키 : 빠르고 위험 설명 클라이언트 로컬에 저장되는 Key-Value쌍의 작은 데이터 파일 쿠키값은 암호화 되지 않기에 암호화 권장 (탈취, 변조 가능) 쿠키의 기한이 정해져 있지 않고 명시적으로 지우지 않는다면 반 영구적으로 쿠키가 남아있게 됨. 구성요소 쿠키의 이름(name) 쿠키의 값(value) 쿠키의 만료시간(Expires) 쿠키를 전송할 도메인 이름(Domain) 쿠키를 전송할 경로(Path) 보안 연결 여부(Secure) HttpOnly 여부(HttpOnly) 동작 방식 클라이언트가 서버에 로그인 요청 서버는 클라이언트의 로그인 요청의 유효성을 확인하고(아이디와 비밀번호 검사) 응답헤더에 set-cookie: user=chrisjune 를 추가하여 응답 클라이언트는 이후 서버에 요청할 때 ..
의존성이란? 상호간의 코드에서 서로 관계가 생기는 것 아래와 같이 B 클래스에서 A 클래스를 내부에 변수로 사용하게 됨으로써 B 클래스는 A 클래스에 의존관계가 생기게 된다. 주입이란? 내부가 아닌 외부에서 객체를 생성해서 넣어주는 것 의존성 주입이란? Dependency-Injection 내부에서 만든 변수를 외부에서 넣어주는 것 == 프레임워크가 주체가 되어 내가 필요한 클래스 등을 대신 관리한다. 클래스 생성에서 주입하는 방법 의존성 있는 클래스의 오브젝트를 외부에서 넣어주는 것 의존성 주입 방법 생성자를 이용한 의존성 주입(Constructor Injection) class User { constructor(private name: string) {} } 수정자를 이용한 의존성 주입(Setter ..
declare Ambient Declaration : TypeScript로 작성하지 않은 코드의 타입 정보를 컴파일러에게 알려주는 선언 대게 외부 사용자에게 내가 만든 라이브러리의 타입 정보를 알려줄 목적으로 d.ts 파일을 정의할 때 Ambient Declaration을 이용 Ambient Declaration을 작성할 때 declare 키워드를 사용 declare 선언 타입 유형 declare namespace Internal Module | Ambient Namespace 컴파일러는 namespace로 선언한 TS 코드를 JS 일반 객체로 컴파일 하는데, declare 키워드를 붙여주면 JS 코드로 컴파일 X 위와 같이 객체의 타입 정보만 알려줄 목적으로 declare namespace를 사용 de..
Method #1: IF 구문 활용하기 설명 💡 이 코드는 에러 없이 정상적으로 작동하는데 이유는 우리가 최초에 token 변수는 string type 또는 undeifined이 될 수 있다고 선언을 해두었기 때문 (if문을 통해서 타입 추론이 이루어 졌고, 이에 따라서 token은 undefined을 제외한 string으로 추론이 된 것) 예시 변수 token이 falsy한 값인지 혹은 truthy한 값인지를 체크하는 코드 if (token) { validateToken(token); } 되도록이면 아래와 같이 typeof keyword를 활용하여 정확한 javascript의 value type을 확인 하는 것을 추천합니다. if (typeof token === 'string'){ validateTok..