Search
Duplicate
📒

[JavaScript/TypeScript] 02-1. 변수, 타입변환

상태
수정중
수업
JavaScript/TypeScript
주제
4 more properties
참고

변수

NOTE
// 한줄 주석입니다. /* 여러줄 주석 입니다. */ // 변수 var myName; var myVariable; // 적절 var listCount = 10; var userName = "안효인"; var selected = false; // 부적절 - 변수인지 함수인지 구별이 어렵다. var getListCount = 10; var isSelected = false;
JavaScript
복사
변수를 선언할 때 타입을 명시하지 않고 var keyword 사용
동적타입언어 → 변수의 타입 지정없이 값이 할당되는 과정에서 자동으로 변수타입 결정됨

기본자료형(primitive type), 숫자

NOTE
// 변수 var myName; var myVariable; // 적절 - 명사만 사용 var listCount = 10; var userName = "안효인"; var selected = false; // 부적절 - 동사 사용으로, 변수인지 함수인지 구별이 어렵다. var getListCount = 10; var isSelected = false;
JavaScript
복사
primitive type
JavaScript는 숫자를 정수와 실수로 나누어 구분하지 않는다
모든 숫자를 8Byte의 실수 형태로 처리한다 → 정수만을 표현하기 위한 데이터 타입 없음
편의성을 위해 정수 리터럴과 실수 리터럴 제공
숫자의 연산 처리시 실수 형태로 하기 때문에 특정 소수점을 정확하게 표현못함
console.log(0 / 100); // 0 console.log(-0 / 100); // -0 // 오버플로우 console.log(100 / 0); // Infinity console.log(-100 / 0); // -Infinity console.log(Infinity / 0); // Infinity console.log(-Infinity / 0); // -Infinity console.log(0 / 0); // Nan console.log(parseInt('3A')); // 3 console.log(parseInt('A1')); // NaN console.log(new Number('1')); // 1 console.log(new Number('1A')); // NaN
JavaScript
복사
JavaScript언더플로우, 오버플로우, 0으로 나누는 연산에 대해 예외를 발생시키지 않음
Infinity : 무한대를 나타냄 ( 어떤 수를 0으로 나누거나, Infinity를 사칙연산 한 결과
NaN(Not a Number) : 계산식의 결과가 숫자가 아님을 나타낸다.

문자열, boolean과 null과 undefined

NOTE
console.log('큰따옴표 문자열'); // 큰따옴표 문자열 console.log('작은따옴표 문자열'); // 작은따옴표 문자열 console.log('3.14'); // 3.14 console.log("문자열 안에 포함된 '작은따옴표' 표현"); // 문자열 안에 포함된 '작은따옴표' 표현 console.log('특수문자 사용\n줄바꿈 했다.'); // 특수문자 사용 // 줄바꿈 했다. var str = '안효인'; console.log(`당신의 이름은 ${str}입니다.`);
JavaScript
복사

null vs undefined

var name; var id = null; var n1 = 10; var n2 = 20; console.log(n1 == n2); // false console.log(name); // undefined console.log(id); // null var a; var b = null; var c = 0; if (!a) { console.log("a"); // a } if (!b) { console.log("b"); // b } if (!c) { console.log("c"); // c }
JavaScript
복사
의미는 비슷하지만 값을 할당 하지 않은 변수는 undefined , undefined가 할당되고(시스템레벨), 코드에서 명시적으로 값이 없음을 나타낼 때 null 사용한다.

호이스팅

NOTE
var 키워드를 사용한 변수는 중복해서 선언이 가능하다
호이스팅
var 선언문이나 function 선언문 등 모든 선언문이 해당 Scope의 처음으로 옮겨진 것처럼 동작한다
변수의 생성
선언 단계 : 변수 객체에 변수를 등록
초기화 단계 : 변수 객체에 등록된 변수를 메모리에 할당. undefined로 초기화됨
할당 단계 : undefined로 초기화된 변수에 실제 값을 할당

let 키워드, const 키워드

NOTE
ECMA6에서 새롭게 등장했으며 var과 달리 호이스팅 되지 않음
const
재선언 불가능
상수
let
변수 선언에만 쓰이고, 각 변수는 한 번만 선언할수 있음
값을 할당하지 않으면 undefined로 지정됨

데이터 변환

NOTE
const numStr = "33.3" const num = Number(numStr); // Number 객체의 인스턴스가 아님 // 숫자로 바꿀 수 없는 문자열은 NaN이 나옴 // 내장함수 parseInt, parseFloat함수도 존재
JavaScript
복사
숫자변환
const n = 33.5; const s = n.toString();
JavaScript
복사
문자열 변환