회고록 블로그

[공부 필기] JavaScript 문법 공부 7일차 본문

2. 프로그래밍 언어 공부/JavaScript

[공부 필기] JavaScript 문법 공부 7일차

김간장 2022. 4. 20. 02:33

※ 필자는 초초초보자입니다.

※ 틀린 내용에 대한 피드백은 언제든지 환영합니다.

 

 

공부하고 있는 자료 : modern JavaScript tutorial 

https://ko.javascript.info/variables

 

변수와 상수

 

ko.javascript.info


 

✅ 변수와 상수

- var, let, const 등 키워드를 사용해서 변수를 생성하지만, 최근에 var은 사용하지 않는다.

- 세 가지 키워드에 대한 차이점은 ⚠️별첨1 참고

- 변수의 자료형(type)은 없다. 변수 안에 정수를 대입할수도, 배열을 대입할 수도, 문자열을 대입할 수도 있다.

- 가능한 한 줄에 하나의 변수를 작성하는게 가독성이 좋다.

 

✅ 변수 재사용

let message;
let msg2;

message = 'hello';
msg2 = message;
message = 'world!';

 

‣ 이때, message라는 박스(상자)에는 "hello"라는 문자열이 들어있었지만

‣ 값이 변경되면서, 이전 데이터(hello)는 변수에서 제거되고 새로운 값(world!)이 message라는 박스에 담기게 된다.

- 변수 재사용보다는 변수를 추가하는 것을 더 권장한다고 한다.

- 함수형 언어에서는 변수를 추가하는게 악습보다는 좋은 습관이며, 값이 다른 경우 변수를 다르게 선언해주면 코드 최적화에 도움이 될 수 있다고 한다.

 

✅ 함수형 언어

- JavaScript, Scala, Erlang 등은 대표적인 함수형언어이다.

- 함수형 프로그래밍 언어는 [변수값 변경을 금지]하는 특징이 있다.

- 일단 변수 이름이 붙은 상자 속에 저장되면, 그 값을 영원히 유지하게 되고

   다른 값을 저장하고 싶으면 새로운 상자(새로운 변수)를 만들어야 한다.

- 즉, 이전 변수를 재사용할 수 없다.

- 좀 특이해 보일 수 있지만, 이런 특징은 병렬 계산과 같은 영역에서 장점으로 사용된다.

 

✅ 변수 명명

- 대소문자, 숫자, $_만 사용 가능 (대소문자 구분)

- 첫 글자 = 숫자 X

- 흔히 카멜 표기법을 사용한다.

- 예약어(let, class, return, function 등) 사용 불가

let $; //가능
let 11; //불가능
let 2b; //불가능
let _; //가능
let camelCase; //가능

 

✅ 상수

- const 키워드 사용

- 변수를 상수화(처음에 할당하고 나면 변경 불가) 시키는 것이며, 리터럴은 아닌 듯하다.

- 재할당하려고 하면 에러가 발생한다.

- 선언과 동시에 할당(대입) 해야하는 것 같다.

- 기억하기 힘든 값을 변수에 할당해서 별칭으로 사용하는 관습이 있는데

   이때 상수명은 대문자밑줄로 명명한다.

const $ = "hello"; // 통과
const str; // 에러! 선언과 동시에 할당해야함

❖ 일반적인 방식으로 상수를 명명할 때

     - 런타임 과정에서 계산되지만, 최초 할당 이후 값이 변하지 않는 상수 등

❖ 대문자와 밑줄로 상수를 명명할 때

     - 쉽게 말해서 '하드 코딩한' 값일 때 (#FF7F00, PI 등)

     - 프로그래머는 코드가 실행되기 전에 이미 그 값(상수)을 알고 있다.

 

✅ 변수명

- 간결하고 명확할 것

- 변수가 담고있는 것이 무엇인지 잘 설명할 수 있어야한다.

- 무엇을 하고 있는지 명확히 알고 있지 않을 경우 외에는 줄임말, 짧은 이름(a, b, c 등)을 피해야 한다.

- 자신만의 규칙을 계속 유지하거나 소속된 팀의 규칙을 따라야한다.

 

⚠️ 별첨1. var/let/const

var은 let과 const와는 다른 방식으로 동작한다.

var를 let으로 대체할 때는 var에 대해 정확하게 알고 있지 않으면 예상치 못한 에러를 만날 수 있다.

 

호이스팅에 대한 개념을 이해해야하므로, 호이스팅 먼저 공부하고 읽는 것이 좋을 듯 하다.

https://ko.javascript.info/var

 

오래된 'var'

 

ko.javascript.info

 

Comments