루크와 첫 멘토링시간을 가졌다! 아이스브레이킹을 하고 개발자로 성장해나가는 과정에 대해 이야기했던 뜻깊은 시간이었다. 특히 진짜진짜가짜가 너무 웃겼다 ㅋㅋㅋ 멘토님과 팀원분들과 한층 더 친해진 느낌!
하루만에 Data in JavaScript를 다 들었다.. 힘들었다. 하지만 빠르게 듣고 남은 시간을 Weekly Mission에 몰두하려고 했다!
언제나 숨겨진 비용이 있다. 모든 선택은 trade off 된다.
왜 좋은 코드를 써야하는 가?
읽기 좋은 코드! 여러명과 협업 할때 중요하다. 만드는 시간보다 읽히는 빈도가 더 크기 때문이다.
좋은 코드를 위해선..
property name : property value
첫글자는 반드시 문자, _ , $ 중 하나로 시작하기
띄어쓰기 금지, 하이픈(-) 금
→ 이런 규칙을 벗어나는 경우 ‘’로 감싸주면 된다.
객체의 데이터 접근하기
점 표기법 - objectName.propertyName
대괄호 표기법 - objectName['propertyName']
존재하지 않는 데이터에 접근하려 하면 undefind값이 출력된다.
객체에 데이터 추가하기 : objectName.propertyName = propertyValue
객체에 데이터 삭제하기 : delete
objectName.propertyName
in
연산자 : propertyName in
objectName
객체와 메소드
for .. in 주의사항
Date 객체 new Data();
기준날짜 : 1970년 1월 1일 00:00:00 UTC
data 정수를 타임스탬프라고 한다.
getTime()
: 1970년 1월 1일 00:00:00 UTC부터 몇 밀리초가 지났는지 가져온다.getFullYear()
getDay()
- 요일. 일(0) ~ 토요일(6)getDate()
- 날짜set
으로 시작하는 메소드로 생성된 Date객체의 정보를 수정할 수 있다.toLocaleDateString()
,toLocaleTimeString()
,toLocaleString()
Date.now()
- 새로운 객체를 만들지 않아도 바로 현 시점의 날짜 값을 얻어낼 수 있다.let arr = [0,1,2]
arr[4] = 4
console.log(arr) // 0,1,2,empty,4. empty는 undefined
delete arr[2] // 0,1,empty,empty,4
.splice(startIndex, deleteCount, 추가할값, 추가할값...)
let arr = [0,1,2,3,4,5]
arr.splice(4) // [0,1,2,3]
arr.splice(2, 1, "g","k") //[0, 1, "g", "k", 3]
arr.splice(1, **0**, "하이루") // 1번 인덱스 뒤에 하이루 추가. 삭제는 X
.shift()
: 배열의 첫 요소 삭제.pop()
: 배열의 마지막 요소 삭제.unshift()
: 배열의 첫 요소로 추가.push()
: 배열의 마지막 요소로 값 추가.indexOf(item)
: 배열에 item이 있는 index 리턴.lastIndexOf()
: indexOf의 뒤에서부터 탐색하는 버전..includes(item)
: 배열에 item이 포함되어있는지 판단. T or F.reverse()
: 배열 순서를 아예 뒤집기. 반환이 아니고 해당 배열을 뒤집는 것이다.for..of 반복문
배열의 값을 불러온다.
지수표기법 - e를 활용
숫자형 메소드
toFixed(n)
: n의 범위는 0~100+
valuetoString(n)
: n의 범위는 2~36255.toString(2)
)하면 error255..toString(2)
(255).toString(2)
Math.abs(x) // 절대값
Math.max(a,b,c,d,e,f) // 최댓값
Math.pow(x, y)// 거듭제곱
Math.sqrt(x) // 제곱근
Math.round(x) // 반올림
Math.floor(x) // 버림
Math.ceil(x) // 올림
Math.random() // 0이상 1 미만 랜던값 리턴
//등등..
배열의 대부분의 메소드 사용 가능.
문자열은 immutable 자료형이다. (배열은 mutable 자료형)
→ 따라서 splice 같은 메소드는 사용 XX
.toUpperCase()
, .toLowerCase()
.trim()
: 양 옆 공백 제거.slice(start, end)
: end는 포함 안한다..slice()
사용!.assign()
메소드 사용let course 2 = Object.assign({}, course1)
//course2로 course1 값 복사
const로 선언한 변수는 재할당이 불가능하다. error
const x = {name : 'Codeit'}
x.birth = 2017;
var myVariable = 'codeit';
console.log(myVariable);
var myVariable = 'Codeit!';
console.log(myVariable);
함수 Scope - function내에서 선언 된 것을 제외하고는 다 전역!
Hoisting 문제
console.log(myVariable);
var myVariable = 2;
console.log(myVariable);
// undefined
// 2
TIL도 밀리고, 팀 데일리 미션도 마무리를 못했다😓 무리하게 나눠서 들어도 되는 강의를 한번에 들으려고 하다보니 시간 분배를 잘못한 것 같다..
점표기법에서 변수 사용이 안된다는 것을 몰라서 실습을 하며 왜 안돼??? 를 500번 외쳤다. 간단히 구글링 하니 나오던 것..^^ JS 기초가 정말정말정말 부족하다는 것을 깨달았다.