-
[JS]변수, 표현식과 문, 데이터타입, 타입 변환 - 타입 변환이 필요할 때Javascript 2024. 4. 14. 13:50
변수
메모리 공간에 값을 식별할 수 있는 고유한 이름을 '변수 이름' = 식별자
변수에 저장된 값을 변수 값
변수에 값을 저장하는 것을 할당
변수에 저장된 값을 읽어 들이는 것을 참조
console.log(score) // undefined var score; // 변수 선언문
첫 줄에서 참조에러가 발생해야 하는데 undefined가 발생하는 이유는 호이스팅 때문!표현식과 문
**문은 프로그램을 구성하는 기본 단위이자 최소 실행 단위
토큰이란 문법적인 의미를 가지며 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소
문에는 표현식인 문과 표현식이 아닌 문이 있다.
표현식인 문은 값으로 평가될 수 있는 문이고, 표현식이 아닌 문은 그렇지 않은 문이다.
예를 들어, 변수 선언문은 표현식이 아니다.
할당문은 표현식이다.
데이터 타입
원시 타입 중
undefiend => var 키워드로 선언된 변수에 암묵적으로 할당되는 값
null => 값이 없다는 것을 의도적으로 명시할 때 사용하는 값
**데이터 타입이 필요한 이유
1. 값을 저장할 때 확보해야 하는 메모리 공간의 크기를 결정하기 위해
2. 값을 참조할 때 한 번에 읽어 들여야 할 메모리 공간의 크기를 결졍하기 위해
3. 메모리에서 읽어 들인 2진수를 어떻게 해석할지 결정하기 위해
타입 변환
**타입 변환이 필요할 때
다음은 예전 우테코 프리코스 문제 중 친구의 로또추첨기 코드 중 일부이다.
class Validator { static amount(callback){ return (amount) => { if (amount.trim().length === 0 || isNaN(Number(amount-0))) { throw new Error(NOT_NUMBER); } callback(amount); } }
amount에 -0을 해주는 이유가 뭘까?
처음 도전했을 때는 아무리 봐도 이유를 알지 못했다.
그러나 -0을 붙여주는 순간, 문자열이 숫자로 반환된다는 것을 알게 되었다.
amount가 숫자로 반환이 된다면 true를 반환, 그렇지 않다면 NaN을 반환하게 될 것이고,
이 때문에 -0을 붙이는 것이 amount가 숫자인지 아닌지를 체크할 수 있다는 것이다.
어떻게 보면 꼼수일지 모르지만, 굉장히 유용할 수 있을 것 같다.
'Javascript' 카테고리의 다른 글
[JS]함수 선언문 vs 표현식 (6) 2024.04.21 localStorage & sessionStorage (1) 2024.04.19 [JS] this에 대해 알아보자! (0) 2023.11.08 [js] mvc 패턴을 연습해보자 -4 최근 검색어(3) mvc패턴 연습 순수js 마지막 (0) 2023.07.21 [js] mvc 패턴을 연습해보자 -4 최근 검색어(2) (0) 2023.07.21