엘리스 SW 엔지니어 트랙 2주 2일차

ChanghyeonO·2023년 3월 7일
0
post-custom-banner

오늘은 라이브 수업 진행 날이다.
라이브 수업을 진행하면서 생각보다 새로이 알게 된 사실이 많다.
난 그냥 이게 이렇게 동작한다라는 결과만 알고 있었지, 왜 그렇게 동작하는지에 대해선 몰랐다.
그리고 자바스크립트 코딩테스트 문제도 몇가지 풀어봤는데 어려웠다.
시간이 촉박하다 보니 더 그렇게 느꼈던 것 같다. 시간만 충분했다면 풀 수 있었을 것 같은 문제들.
아쉬웠다. 복습으로 달래보자.

변수의 종류
var, let, const

var와 let, const의 차이점은 중복 선언 가능 여부. var는 중복 선언 가능, let와 const는 불가능.
let은 재할당 가능 const는 재할당 불가능.

const는 재선언, 재할당이 불가능해 선언과 초기화를 동시에 해야한다.
원시값의 재할당은 불가능하나 객체의 재할당은 가능하다.

// 원시 값 재할당
const name = '엘리스';
name = '토끼'; // TypeError
// 객체 재할당
const name = { eng: 'elice' };
name.eng = 'rabbit';
console.log(name) // rabbit

var 말고 let, const를 사용하는 게 좋은 이유.
1. 중복 선언 가능
2. var가 함수레벨 스코프라서 var로 선언 된 변수는 함수 외부에서 선언된 것은 모두 전역 변수가 되어 의도치 않은 혼란을 일으킬 수 있음.

// 함수 레벨 스코프에 대한 예
var i = 10;
for (var i =0; i<3; i++){
console.log(i) // 0 1 2
}
console.log(i); // 3
  1. 호이스팅 때문에
    호이스팅은 코드가 실행하기 전 변수선언/함수선언이 해당 스코프의 최상단으로 끌어 올려진 것 같은 현상을 말한다.

결론: var 가급적 사용하지 하지 말기.

자바스크립트 객체란?
자바스크립트를 구성하는 거의 모든 것이라 할 수 있다. 원시형 타입을 제외한 나머지 값은 모두 객체다.

배열 내장 메서드
.push(): 배열의 끝에 하나 이상의 요소를 추가하고 배열의 새 길이를 반환.
.pop(): 배열에서 마지막 요소를 제거하고 해당 요소 반환.
.shift(): 배열에서 첫 번째 요소를 제거하고 해당 요소 반환 및 모든 후속 요소를 한 단계씩 내린다.
.unshift(): 하나 이상의 요소를 배열의 시작 부분에 추가하고 배열의 새 길이를 반환한다.
.slice(): 배열 일부분의 얕은 복사본을 새 배열 객체로 반환.
.concat(): 원래 배열의 요소 뒤에 하나 이상의 추가 배열 또는 값으로 구성된 새 배열을 반환.

정규표현식(정규식)
문자열에서 특정 문자 조합을 찾기 위한 패턴
자바스크립트에서는 정규 표현식도 객체다.

// 생성 방법 1
const reg = /ab+c/
// 생성 방법 2
const reg = new RegExp('ab+c')

참고 사이트 https://regexper.com/

함수
자바스크립트 함수는 특정 작업을 수행하도록 설계된 재사용 가능한 코드 블록이다.

// 함수 선언식 (function declaration)
function doSomething() {
...
}
// 함수 표현식 (function expression)
const doSomething = function () {
...
}
// 화살표 함수
const doSomething = () => {
...
}

함수 호이스팅은 함수 선언식에만 적용된다.

profile
꾸준한 기록을 통해, 좋은 개발자가 되겠습니다.
post-custom-banner

0개의 댓글