본문 바로가기
인프런/Java Script

22.03.03 Java Script 자료형, 변수

by h.단디 2022. 3. 5.

[리뉴얼] 렛츠기릿 자바스크립트

수업 중 강의창 메모기능에 적어둔 것.

교재 : https://thebook.io/080270/

 


 

문자열

 - 명령 끝에 항상 세미콜론 붙이는 것은 에러를 방지하는 좋은 습관.

 - ``(백틱)으로 감싼 문자열은 줄바꿈 걍 enter치면 됨! ('',""은 \n 써줘야함)

 - 문자열 숫자로 바꾸기 

parseInt 정수로만 바꿈. 정수가 아닌 값은 정수만 추출.
parseFloat 실수로 바꿀 수 있음

 - 초보 단계에서는 눈을 믿지 말고 typeof 로 확실히 확인하는 습관이 중요!

 

 - NaN : Not a Number  숫자는 아닌데 typeof 찍으면 number로 뜨는 요상한 놈.

 - Infinity : 무한을 의미. 음수도 가능 '-Infinity'. 사칙연산을 해도 Infinity. 그치만 지들끼리하면 'Infinity-Infinity > NaN'

 

 - 형변환 type casting : 값의 자료형이 바뀌는 현상, 바꾸는 행위

 - 문자와 숫자 더하기 : 잘 생각해보면 모두 다~ 납득할 이유, 규칙이 있음.  

  • 문자열 + 숫자 (더하기) : 문자열이 우선순위이므로 숫자가 문자열로 형변화되어 더해짐 -> 결과가 문자열
  • 문자열 _ 숫자 (더하기 외의 연산) : 숫자가 아닌 것을 숫자로 형변화한 후 연산 -> 결과가 숫자형

 


불 값(boolean, 값들의 비교)

 

 - 웬만해서는 JavaScript에서는 '==='쓰는게 좋음. 왜냐하면 값&자료형 모두 비교할 수 있으니까.

 - '=='는 둘 중 하나가 규칙에 따라 형변화된 후 값만 비교하므로 자료형은 비교가 불가함. 

 


 

논리연산자

 - 연산자 우선 순위가 헷갈릴 땐 그냥  ()를 활용하자

 - shift+\ (백슬래쉬, enter위에 있는 거) = |

 

 - 문자열의 bool값을 알고 싶을 때 (boolean으로 형변환하는 법 2가지)

       1. boolean('a');

       2. !!'a';       -> 뭐든 !을 두 번 뒤집히면 원래의 값이 되니까 

 

 - 거짓인 값 (falsy value) : 불 값 형변환시 false 인 7가지   외워라!!!!!!!!!!!!!!!!!!

1. false
2. ''(빈문자열)
3. 0
4. NaN
5. undefined
6. null
7. document.all(거의 사용하지 않음)
이외엔 모두 true임 = 참인 값(truthy value)  

 


 

undefined와 null

 - undefined : 수행은 하긴하는디..  컴퓨터가 결과값으로 돌려줄게 없어~

                    -> 'undefined를 돌려준다'라고 생각하는게 올바름

 - typeof undefined > "undefined"           즉, undefined도 자료형임

 

 - null은 의도적으로 빈 값을 넣고자 할 때 넣음.

 - typeof null > "object" 

 - 왜 null이 아니라 object가 나오느냐... 버그임.. ㅎ 언어라서 수정하기가 힘듬.. 걍 이대로 감

 

초기 설정때 충분히 생각해보는게 중요한 이유 ^^ 손이 먼저 나가는게 절대 좋은게 아님!

 


 

변수 선언하기(let)

 - console.log(string) : 단순히 화면에 그려주는 것

 - string : 값을 돌려주는 것

    ▶ 둘의 차이는 엄청난 차이! 자세한 건 나중에 더 배우면 체감할 수 있을거임.

let total = 5000+8000;   // "초기화했다" : 선언과 동시에 값을 넣었다.

 - 변수 선언의 결과값은 항상 undefined 임

 - '=' 오른쪽 값을 왼쪽에 대입하다. 할당하다.  연산자중에 우선순위가 굉장히 낮음.

 


 

변수 이름짓기

 - 값을 선언하지 않아서 빈값, 기본값 = undefined

 - 같은 변수 연달아 선언하면 에러남! -> 변수명 겹치지 않게 주의해야 함. 최대한 자세하고, 명확하게 그 값이 뭔지 알 수 있게 지어야 함. 

  • 키보드에 있는 특수 문자들 중 변수명에 쓰일 수 있는 건 '$'와 '_'밖에 없음.
  • 한자도 가능함. but 안 쓰는게 좋겠쥬? 걍 영어로 하자.
  • 숫자는 포함될 수 있으나 첫글자에 위차하면 안 됨.
  • 띄어쓰기 불가 -> 띄어쓰기 하고 싶을 땐 대문자로 표시하기. (carmel case)
  • let,class, const 등등 변수명으로 쓰일 수 없음 -> 비슷한 것 같은데 에러 메세지가 다를 때, 왜 다른지 의문을 갖고 파고들어보는 습관이 중요함. 한단계 더 발전할 수 있는 좋은 태도!

변수 수정하기

> let change = '바꿔 봐';        // 선언하고 난 후 바꿀때는
< undefined

> change = '바꿨다';            //let없이 대입연산자 '=' 만 하면 됨. 
<'바꿨다'

 - undefined를 돌려주는 것과 값을 돌려주는 것은 어마어마한 차이임! 값을 돌려주면 나중에 다른 곳에 또 쓸 수 있다는 뜻이니까. 

 

 

- 변수 값을 비워둘 때는 두가지 방법이 있으나, 웬만하면 null을 사용하는 것을 추천함. (null은 평소에 잘 쓸 일이 없기 때문에 null이 뜨면 누군가 의도적으로 값을 바꿨겠거니 하고 건들지 않게 됨)

>change = undefined;
<undefined

>chance = null;
<null

 - 프로그래밍 중 반복되는 작업을 어떻게 컴퓨터에게 넘길 것인가에 대해 고민하는 습관.

 


 

상수(const)와 var

 - var는 과거에 자주 쓰였고 요즘엔 잘 쓰지 않음.

 - 근데 왜 알아둬야 하느냐? 과거 코드를 분석하기 위해서 알아둬야 함. let과 기본적으로 유사한데, let과 달리 재선언이 가능함. (var에서 이상했던 것들을 수정해서 나온게 let이라고 생각하면 편함)

 - let으로 선언한 변수는 값을 바꿀 수 있지만, const로 선언한 변수는 바꿀 수 없음.  

 - const쓸때는 초기에 설정값을 반드시 넣어줘야함. 

 

 

 

동시에 여러개 공부하는 것은 좋음. 하지만 계획표에 따라서 왔다갔다 옮겨가며 공부해야지, A하다가 조금 막힌다고 바로 B로 넘어가고 해버리면 나중에 하나에 편중될 수 밖에 없음. 로드맵 잘 짜서 지켜가며 공부하자.