728x90
교재 : 자바스크립트 프로그래밍 입문
(정말 뜬금없지만 이 책 순서가 굉장히 뒤죽박죽이어서 조건문하다가 뜬금없이 이상한 내용이 나오기도 한다.)
1. if~else
let input = 32;
if(input%2==0 && input!=0) console.log("짝수");
else if (input==0) console.log('0');
else console.log('홀수');
보다시피 C와 굉장히 유사한 형태다.
2. 현재 시간 구하기
현재 시간은 2022년 5월 23일 월요일, 오전 1시 50분 2초다.
let date = new Date(); // Date 객체 생성
console.log(date.getFullYear()) // 2022
console.log(date.getMonth()+1) // 0~11을 리턴하므로, +1을 해주어야 함
console.log(date.getDay()) // 요일 리턴, 0은 일요일
console.log(date.getHours())
console.log(date.getMinutes())
console.log(date.getSeconds())
3. 입력받기(숫자 or 문자열 구분)
: 코드가 있긴 있는데, 굉장히 비효율적이다. node.js는 느린코드(사용자의 응답, 파일을 읽어 들이는 시간, 통신에 사용되는 시간)을 절대 용납하지 못하기 때문에 코드가 그리 예쁘진 않다.
const repl = require('repl');
repl.start({
prompt: '입력>> ',
eval: (command, context, filename, callback) => {
let number = Number(command);
if (isNaN(number)) console.log('숫자 아님.');
else console.log('숫자임');
callback();
}
});
- 웹 브라우저에서 작동하는 자바스크립트는 prompt() 함수를 사용하면 됨.
- node.js? 노드를 통해 다양한 js 애플리케이션을 실행하게 만드는 프로그램(환경)- 솔직히 뭔 소린지 모르겠음.
4. 배열 선언
let array = ['치킨', '2', '마리', true];
console.log(array);
let array2 = ['치킨', '2', '마리', true, ['먹겟어']];
console.log(array2);
배열 선언은 파이썬이랑 비슷한데 더 자세한 건 조금 다르다.
4-1. 배열 인덱싱
let array2 = ['치킨', '2', '마리', true, ['먹겟어']];
console.log(array2);
console.log(array2[-1]);
console.log(array2[4]);
- 리스트 내 리스트가 안 되는? 구조인 것 같다.
- 인덱싱은 되는데 파이썬처럼 -1은 안 됨
- 리스트 내 리스트 인덱스 번호를 출력하면 해당 요소가 보인다
- Array(숫자)에서 숫자는 안에 들어 있는 요소의 개수.
5. 배열 요소 변경
let array2 = ['치킨', '2', '마리', true, ['먹겟어', 2, '꺙']];
console.log(array2);
array2[0] = '피자'; // 0번째 인덱스 변경
console.log(array2);
6. index out of range 없음
let array2 = ['치킨', '2', '마리', true, ['먹겟어', 2, '꺙']];
console.log(array2[1000]); // index out of range
: 파이썬 이었으면 당연히 error가 났겠지만 자바스크립에서는 에러가 나지 않는다!!!
7. length 배열 길이 재기
let array2 = ['치킨', '2', '마리', true, ['먹겟어', 2, '꺙']];
console.log(array2.length); // index out of range
8. for문
let a = 18;
var output = `소곡이의 현재 나이는 ${a} 세입니다.`;
for (let i = 0; i<3; i++) console.log(output);
for (let i = 0; i<3; i++){
a++;
var output = `소곡이의 현재 나이는 ${a} 세입니다.`;
console.log(output);
}
9. for in(배열 인덱스) vs for of(배열 요소)
let array = ['소주', '맥주', '복분자', '샴페인'];
for (let i in array) console.log(`${i} 번째 요소: ${array[i]}`); //인덱스 번호
for (let item of array) console.log((item)); // 배열 요소
: 내가 좋아하는 거!!!
10. while
let pro = ['온', '김', '정', '손', '이'];
let i =0;
while(i<pro.length){
let output = `${pro[i]} 교수님`;
console.log(output);
i++;
}
while(true) console.log('사랑합니다.');
10-1. 시간을 이용한 반복문 이탈
let start = new Date().getTime();
let count = 0;
while(start + (100 * 3) > new Date().getTime()){
count++;
}
console.log(count + '만큼 반복함');
- getTime()? 1970년 1월 1일 0시 0분 0초부터 현재까지의 시간을 밀리초 단위로 환산한 값을 숫자로 반환
- http://www.tcpschool.com/javascript/js_standard_dateMethod
11. 스코프(=블록): 변수를 사용할 수 있는 범위
- 지역변수 사용 범위라고 생각하면 편할 것 같다.
- 오른쪽은 2줄까지 갔을 때 메모리 상태이다.
- 첫번재 블록(6~10라인)에서 a와 b를 출력하니, 첫번째 블록에서 선언된 a(3)가 출력되고 b는 따로 정의 되지 않았으므로 전역변수 b(1)이 출력되었다.
- 블록을 지나고나서 해당 변수(a-3)은 사라졌다.
12. 호이스팅: 해당 블록에서 사용할 변수를 미리 확인해서 정리하는 작업
let a = 1;
{
console.log(a);
let a = 2;
}
이런 코드를 실행 시키면 출력이 어떻게 나올까??
.
.
.
정답= 에러남
저 상태에서 메모리 상태는 다음과 같다. 즉 해당 블록에서 사용할 변수는 미리 블록의 가장 위에 적어야 한다는 뜻이다.(전역변수에 똑같은 이름의 변수가 있다고 해서 그 변수를 출력하는게 아님!!)
연구실에 벌렐 드러와서 검톤안하고 바로 올립니디ㅏ이ㅓㅏ으아아아앙아가
'자바스크립트' 카테고리의 다른 글
[node.js] 서버 손쉽게 열어보시겠습니까? (+DB) (0) | 2022.08.11 |
---|---|
[❤️두근두근 자바스크립트 공략❤️] 6장 객체 (1) | 2022.07.30 |
[❤️두근두근 자바스크립트 공략❤️] 5장 함수 (1) | 2022.07.06 |
[❤️두근두근 자바스크립트 공략❤️] 2장 변수, 자료형 (0) | 2022.05.08 |