TIL
[TIL-38] 노마드코더 크롬앱(JS) 클론코딩 #2.2~#2.6
어포능이만두
2021. 10. 16. 23:06
#2 JS 기초 이론
변수
- console.log() : 콘솔에 메시지 보냄
- ( ) 안에 숫자나 string 넣을 수 있음. 그럼 콘솔이 그 값을 출력함. 즉, 콘솔에 log, print 함.
- string을 입력할 때 " " 혹은 ' ' 맞춰서 쓰면 됨.
- 변수(variable)
- 여러 번 사용되는 특정 값을 변경하고 싶을 때 유용. 값을 저장하거나 유지하는 역할.
- const 변수명 = 값;
- constant(상수)는 바뀌지 않는 값.
- let 변수명 : 값;
- constant와 달리 바꿀 수 있는 변수.
- 한번 생성하고 나면 언제든 ("let" 쓰지 않고) 업데이트 할 수 있음.
- 업데이트한 다음에 쓴 코드부터 적용됨. 위에서 아래로 읽기 때문.
- 변수 정하는 방법이 다른 이유는 코드를 읽고 의도를 알 수 있기 때문.
- 기본적으로 const 이용하고, 업데이트할 필요가 있을 때만 let 이용.
- 처음엔 var만 있었는데 언제든 업데이트할 수 있음. 하지만 그럼 실수로 어떤 변수를 업데이트하는 경우를 보호하지 못함. 그래서 업데이트(패치)되면서 const와 let을 분리해서 만듦.
- camelCase : 변수명에 공백 사용 불가. 다음 단어의 첫 문자를 대문자로 씀.
- 예) veryLongVariableName
- [참고] snake_case : 파이썬은 띄어쓰기 대신 _(언더바) 씀.
- const도 필요 없음. "very_long_variable_name = 0;"
Boolean
- 불리언 : true/false
- 변수 안에 저장할 수 있는 또 다른 데이터 타입.
- 컴퓨터에서 0은 꺼져있다, 1은 켜져있다.
- "true"는 문자, true는 불리언 값.
- 예) 사용자가 로그인 했는가?
- 변수 안에 저장할 수 있는 또 다른 데이터 타입.
다른 데이터 타입들
- null : 아무것도 없음.
- false와 다름. false는 false라는 값이 있는 것, null은 값이 아예 없는 상태.
- 아무것도 없는 것이 채워진 것. 변수 안에 아무 것도 없다는 것을 확인시켜주기 위해 쓰는 것.
- 따라서 저절로 생기지 않음.
- 예) const amIFat = null;
- false와 다름. false는 false라는 값이 있는 것, null은 값이 아예 없는 상태.
- undefined : 정의되지 않음.
- 새로 만든 변수에 값을 주고 싶지 않을 때. 변수는 존재함.
- 컴퓨터 메모리 안에 공간은 존재하는데 값이 채워지지 않음. null과 다름.
- 예) let something;
- 새로 만든 변수에 값을 주고 싶지 않을 때. 변수는 존재함.
- [참고] 파이썬 : null 대신 None, true/false 대신 True/False
데이터 구조(데이터 정리하는 법)
- 배열
- 배열이 없을 때
- 요일을 정의하려면 하나하나 월화수목금토일 각각의 변수를 써줘야 함.
- 리스트로 그룹화하기도 어려움. 그냥 나열하면 string이 됨. 원하는 요일을 불러오거나 하지도 못함.
- 모든 구성요소들을 하나의 배열 안에 넣음.
- const daysOfWeek = ["mon", "tue", "wed", "thu", "fri", "sat", "sun"];
- 예) 사용자의 할일 리스트 : const toDo = ["reading", "working out", "coding", "sleeping"];
- 즉, 배열은 변수 안에 데이터로 이뤄진 리스트를 담음.
- 구성요소는 숫자, 문자, 변수 모두 가능.
- console.log(배열변수명[n]) : 배열 안의 데이터에 접근하는 법.
- 배열의 구성요소들을 나열할 수도 있고, n번째 요소를 뽑아올 수도 있음.
- 컴퓨터는 0부터 숫자를 셈. 따라서 [n]은 n+1번째인 셈.
- 배열변수명[n] = " " : 배열의 n+1번째 요소의 값 업데이트
- [2.9]
- 배열변수명.push(요소) : 배열 안에 요소 추가하기
- 배열이 없을 때
- object
- 한 개의 개체(entity)에 대한 여러 가지를 정의하는 경우,
- const playerName = "nico";
const playerPoints = 122112;
const playerHandsome = false;
const playerFat = "little bit";
- 변수를 이용하면 각각 이름을 지어야 하고, 변수들의 존재를 기억해둬야 함.
- player.name
player.points
player.handsome
player.fat- 더 잘 정돈됨. 이렇게 하는 게 목표.
- const player = ["nico", 12121, false, "little bit"];
- 배열 이용. 하지만 각 요소의 의미를 모름. 더 좋은 방법이 필요함.
- const playerName = "nico";
- object는 player를 예로 들면 name, points, handsome, fat 등 여러 특성 가질 수 있음.
- const player = {
name: "nico",
points: "10",
fat: "true",
}; - {} 중괄호 이용.
- object, 즉 {} 안의 규칙은 밖의 규칙과 다름.
- 데이터 타입은 앞에서 배운 것들 사용.
- 정리되는 방식이 다름. css와 비슷한 듯한 모양.
- console.log(player);
console.log(player.name); 혹은 console.log(player["name"]);- console은 object. 그 안에 log가 있는 것.
- console.log와 같은 형식의 player.name 만들어냄.
- const player = {
- 모든 값이 같은 의미를 갖는 리스트와 다름.
- object 업데이트 : player.fat = true; 혹은 player.lastName = "potato";
- constant는 업데이트 불가지만 object 안의 것을 수정하는 것이라서 가능. object는 동일함.
- player = true; 이런 식으로 통째로 바꾸려하면 에러 남.
- player.points를 10에서 25로 만들고 싶다면, player.points = player.points + 15; 라고 해도 됨.
- constant는 업데이트 불가지만 object 안의 것을 수정하는 것이라서 가능. object는 동일함.
- object에 새로운 property 추가
- 원래 있던 property에 다른 값을 넣는 것뿐 아니라, 없던 property도 추가 가능.
- [2.10] player.sexy = "soon";
- 한 개의 개체(entity)에 대한 여러 가지를 정의하는 경우,