오늘 한 것
데이터 타입
1 | //이스케이프시퀀스도 좋지만 가독성이 안 좋다. |
변수가 아닌 값이 데이터 타입을 갖는다.
변수는 남발하면 안 되고 신중하게 써야함. 많이 쓸 수록 에러 발생률도 비례해서 높아짐.
연산자
1 | // 지수 연산자 |
부수 효과가 있는 연산자는 할당(=
, +=
…) 연산자, 증가/감소(++
/ --
) 연산자, delete
연산자이다.
제어문
제어문은 논리적 흐름에서 벗어날 때가 많음 (가독성이 떨어짐)
→ 가독성을 위해 제어문은 효율적이지만 대체 가능하다면 대체하는게 좋을 수 있음. (forEach
, map
, filter()
…)
블록문
1 | { |
- 관련 문들을 하나로 묶기 위함으로 사용한다.
- 다른 언어는 블록문이 하나의 스코프이다.
- Javascript는 블록문이 독립된 스코프가 아니다.
- Javascript는 블록문을 함수가 아니면 하나의 스코프로 취급하지 않는다. (
var
일 경우 블록문 외부에서도 사용 가능) let
은 블록문 내에서 선언하면 해당 블록 안에서만 유효하다.
1 | for (var i = 0; i < 5; i++) { |
공부한 javaScript 코딩 문제
1.직사각형 별찍기
문제 설명
이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.
제한 조건
n과 m은 각각 1000 이하인 자연수입니다.
나의 답
1 | process.stdin.setEncoding("utf8"); |
감탄한 타인의 답안
1 | process.stdin.setEncoding("utf8"); |
오늘 느낀 것
- javascript에서 왜 계속 반복문 내부 변수가 밖에서도 사용 가능한가 이상했는데 역시 javascript 블록문은 독립된 스코프가 아니었다.
- javascript는 예상도 못한 점에서 달라서 생각보다 시행착오가 많이 생긴다.