☝ 새로 배운 개념
📝주말에는
금욜까지 할당됐던 문제 다시 풀어보기(Javascript basic문제,koans전체,koans Advanced js) /
(일)블로깅5일치 기록해놓은거 출간 /
Closure,객체지향,scope, 개념복습 /
3주차 수업준비
☝ 새로 배운 개념
//for of : 반복가능한 객체 (Array, Map, Set, String, TypedArray, arguments 객체 등을 포함)에 대해서 반복하고 각 개별 속성값에 대해 실행되는 문이 있는 사용자 정의 반복 후크를 호출하는 루프를 생성합니다.
const array1 = ['a', 'b', 'c'];
for (const element of array1) {
console.log(element);
}
// expected output: "a"
// expected output: "b"
// expected output: "c"
/*arr의 존재 여부를 판단할 때 arr===[] 가 아닌 arr.length===0으로 해야하는 이유
primitive type(원시타입)과 달리(number,string,boolean) 배열과 배열, 객체와 객체는 똑같이 생겼다고해서 같은게 아니다!!!! [] == [] 는 false 이유는 주소값이 다름*/
let obj = { name = '김코딩' }
//이 객체는 사실 정보를 가지고 있는게 아니라 주소를 가지고 있음
//reference type 참조,주소타입 (함수,배열,객체)
for(let i=0; string[i]; i++){
} //for문의 조건식이 신기해서, string의 i번째 index의 값이 나오기 위해 유효한게 범위라니
[🤦♀️불평불만 회고] 장장 13시간 페어 프로그래밍이 끝났는데 하나도 후련하지가 않다. 오히려 알고리즘 문제 너무 못 푸는 나 자신에게 화가 난 하루. 40분씩 잡고 푸는데도 시간이 너무 부족해서 넘어가는게 많아서 답답했다.. 리뷰 때 30분 이내에 푼 사람들 너무 많고 내가 1~2시간 봐도 모르겠는 문제를 40분 안에 풀었다고 너무 오래걸렸다고 불평하는 분도 계시길래 쥐뿔도 없는 내가 너무 편하게 공부했구나 자극 받았다. 어제 수업 끝나고 오빠가 잠깐 시간내서 알려준 알고리즘 로직들이 컴퓨터적 사고를 하는데 많이 도움 받았다. 나는 아직 코딩을 하기엔 너무 사람처럼 생각하고 있었구나 깨달았다. 아무튼 오늘 알고리즘 문제 다 다시 풀고 거기 나온 개념 정리해보기
부족할 수록 개념으로 돌아가서, 개념을 충실하게
☝ 새로 배운 개념
에러 확인
expect().toBeTruthy();
expect().toEqual();
expect().toBe(); ➡ ===처럼 타입까지 확인해줌
let somthin = new Array(n)
somthin.length = n
array.pop() ➡ 반환하는 값은 마지막 요소를 제거하고 그 제거한 요소
array.shift
array.every() ➡ 그 배열의 모든 요소가 주어진 함수에 충족되는지를 평가하는 boolean value
array.some() ➡ 적어도 한 요소라도 충족되는지를 평가
☝ 새로 배운 개념
Prototype을 사용해 만든 property는 public하고 변경이 가능합니다.
Closure를 사용해 만든 property는 private하고 변경이 불가능합니다.
[회고] 많은 개념을 새로 배웠는데 기초를 탄탄하게 만들어가는 과정임이 느껴졌다. 사실 부트캠프 자료만으로 정확하게 이해가 가지 않아서 관련 레퍼런스를 더 찾아보고 정리해야할 것 같다. Scope와 Closure는 같은 맥락에서 함께 정리하기
testbuilder 학습
testbuilder 문제 다시 접근해보고 advanced 풀어보기 (토)
koans 다시보기 (토)
koans advanced js풀어보기 (토)
알고리즘 문제 다시보기
코플릿6,7다시보기
블로깅 출간
3주차 수업준비 (미리 강의 수강)
☝ 새로 배운 개념
TDD(Test-driven Development)
test builder
를 만드는 총 세가지 흐름( Mocha, Assert, Chai )
Mocha테스트
:if의 parameter로 true일 때 해당하는 조건을 넣어주고 해당 조건이 true가 아니면 Error, 즉 일부러 테스트가 실패해야 하는 함수를 만드는 것이다. 정리하자면 함수를 실행할 때 오류가 발생하면 실패한다, 오류가 발생하는 지를 확인하기 위한 기구이다.
it(판별하고자하는 원하는 조건, function(){
if(!isTrue) {
throw new Error ("Test failed");
}
});
assert테스트
:항상 if/throw 구문으로 오류를 체크하는게 귀찮기 때문에 구상한 다른 방법
let assert = function(isTrue){
if(!isTrue) {
throw new Error ("Test failed");
}
};
it("has a length of 1", function() {
assert(detectNetwork("true여야하는 조건") === "성립했을 때 나와야 하는 return값");
});
chai테스트
assert문법
let assert = chai.assert;
it("has a length of 1", function() {
assert(detectNetwork("true여야하는 조건") === "성립했을 때 나와야 하는 return값");
});
chai 테스트
expect문법
let expect = chai.expect;
it("has a length of 16", function() {
expect(detectNetwork("true여야하는 조건")).to.equal("return값");
});
chai 테스트
should 문법
let should = chai.should();
it("has a length of 16", function() {
detectNetwork("true여야하는 조건").should.equal("return값");
});
어떤 것을 사용하든지 상관없으니 일관성을 유지!
[😎부트캠프 2주차 끝에서, 생각의 정리] 길고도 길게 느껴졌던 일주일이 벌써 끝났다. 한국 입국 후 처음 시작되는 수업 주간이라는 점에서, 몰랐던 Javascript의 문법들을 많이 배웠다는 점에서,처음으로 페어와 긴 호흡으로 과제를 같이하기 시작했다는 점에서, 이번 한 주가 너무나도 큰 과제처럼 느껴졌는데 역시나 시간은 흐르게 되어있고 그 순간 순간을 대충 보내지 않았을 때 성장함을 느낀다. 머리 싸매고 고민하고, 스트레스 받으면서 힘들어하고 이런 과정들이 다 무언가를 배우면서 당연히 필요한 과정인 것 같다. 그러니 당시 이해가 안간다고! 진전이 없는 것 같다고! 좌절하지 말자. 내가 어려운 건 남들도 어렵고 머리 싸매고 고민할 때 드는 포기할까 하고 드는 생각이 바로 악마의 속삭임😈
❓ 이해가 안갔던 부분
for( let i = 0; i<string.length; i++){
if(string[0]==='-' && i === 1 )
(알고리즘 5번 문제) if 조건에 있는 i===1이 의미하는 것이 무엇일까??😲
[다음주] 매개변수 개념정리, 수업 전에 7:00~9:00 무조건 문제 풀기 (최소 2문제),Git 강의보기 (udemy)