-
Part 01. Hello world : 변수와 상수이노베이션캠프/사전캠프: Js 공부 2023. 5. 12. 08:51
> 주절주절
언제 다 정리하지.
1. 변수
- 데이터를 저장할 때 쓰이는 '이름이 붙은 저장소'
- 생성 키워드 : let
let message;
// message 변수 선언문
let message; message = 'Hello'; // 문자열을 저장합니다.
// message 변수에 데이터 저장
let message = "Hello!";
// 한줄로 선언 + 데이터 저장 쌉가능
let user = 'John', age = 25, message = 'Hello';
// 한 줄에 여러 변수 선언도 쌉가능. 권장은 안 함. 가독성이 안 좋음.
let user = 'John', age = 25, message = 'Hello';
let user = 'John' , age = 25 , message = 'Hello';
// 기술적 차이 없음. 개인의 취향에 따름.
* var
- 예전에 쓰이던 생성 키워드 var . var보다는 let 사용 권장함.
- 관련 내용은 예전에 정리해뒀으니 궁금하면 보기.. 라 하려했는데 없음. 정리해둔 줄 알았는디.. 간단히 말하자면 var의 호이스팅관련 문제 때문임
https://developer.mozilla.org/ko/docs/Glossary/Hoisting
호이스팅 - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN
JavaScript에서 호이스팅(hoisting)이란, 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미합니다. var로 선언한 변수의 경우 호이스팅 시 undefined로 변수를 초기화합니다
developer.mozilla.org
- 변수는 한 번 만 선언, 같은 변수를 여러 번 선언하면 에러 발생함
- 함수형 언어(스칼라, 얼랭 등)에서는 변숫값 변경이 금지임. 다른 값을 저장하고 싶다면 새 변수를 선언해야만 함. 즉, 이전 변수를 재사용할 수 없다는 거임.
이러한 제약이 장점으로 작용하는 병렬계산, 중대한 개발 등에 사용하기 좋음.
2. 변수 명명 규칙
1) 변수명에는 오직 문자와 숫자, 기호 $와 _만 들어갈 수 있음
2) 첫 글자는 숫자가 될 수 없음
3) 여러 단어를 조합하여 변수명을 만들 땐, 카멜 표기법 사용하기
- 카멜 표기법 : 단어를 차례대로 나열하면서 첫 단어를 제외한 각 단어의 첫글자는 대문자로 하기 // myveryLongName
4) 대소문자 구분
5) 예약어는 사용 불가( Ex. let, class, return, function)
- 예약어 : Js 내부에서 이미 사용중인 이름들
3. 상수
- 변하지 않는 변수
- 생성 키워드 : const
const myBirthday = '18.04.1982';
- 재할당 불가. 하려고하면 에러 발생
4. 대문자 상수
- 기억하기 힘든 값을 변수에 할당해 별칭으로 사용할 때는 대문자로 상수 이름을 지어주기
const COLOR_GREEN = "#0F0";
// 이런거 외워서 계속 사용할 거 아니니까. 괜히 쓰다가 에러만 남.
5. 바람직한 변수명
- 변수명은 간결하고, 명확해야함
- 참고 규칙들
1) userName 이나 shoppingCart 처럼 사람이 읽을 수 있는 이름 사용
2) 무엇을 하고 있는지 명확히 알고 있지 않을 경우 외에는 줄임말이나 a, b, c 와 같은 짧은 이름 피하기
3) 최대한 서술적이고 간결하게 명명. data 와 value 는 나쁜 이름의 예시임. 이런 이름은 아무것도 설명해주지 않음.
문맥상 변수가 가리치큰 데이터나 값이 아주 명확할 때만 이런 이름 사용하기
- 자신만의 규칙이나 소속된 팀의 규칙 따르기. 만약 사이트 방문객을 'user'라고 부르기로 했다면 이와 관련된 변수들은 currentUser이나 newUser 로 지어주기
6. 변수 재사용 / 새로 만들기
- 이왕이면 변수 새로 만들자
- 변수를 재사용 하면 변수 선언에 쏟는 노력은 조금 덜 수 있지만, 디버깅에 더 많은 시간을 쏟아야함. 원래 무슨 값이 들어있는지 알아야하니까..
'이노베이션캠프 > 사전캠프: Js 공부' 카테고리의 다른 글
Part 01. Hello world : 자료형 (0) 2023.05.12 Part 01. Hello world : 자료와 변수 (0) 2023.05.12 Part 01. Hello world : 변수? 표현식? 문? (0) 2023.05.11 Part 01. Hello world : 엄격모드 (0) 2023.05.11 Part 01. Hello world : 코드구조 (0) 2023.05.11