Ruff! Ruff!
서버시스템 구축 실습 - 자바스크립트 기초 본문
1. 데이터 타입
숫자 데이터 타입
-연산자
단항연산자 : X++, ++X
이항연산자: +, -, *, / 등
삼항연산자: var a = (age >= 21) ? "beer" : "juice"
문자열 데이터 타입
- 문자열 표현 : " " or ' '
- 문자열 길이 : 문자열.length
2. 변수
변수 규칙
- 변수명에는 공백을 넣을 수 없음
- 변수명은 문자나 밑줄(_), 달러기호로 시작해야하고, 첫 글자 이후로는 문자, 숫자, 밑줄, 달러 기호만 사용할 수 있음(첫 글자 숫자 안 돼)
- 변수명은 대소문자 구분함
- 자바스크립트 예약어를 변수명으로 사용할 수 없음
주석처리
- // 를 사용하여 소스코드 주석처리 가능
선언 키워드
- var : 호이스팅 시 undefined로 저장 (옛날 버전)
🌱 중복선언 가능
🌱 재할당 가능
🌱 함수 레벨 스코프
- const : 호이스팅 시 초기화되지 않은 상태로 저장
🌱 중복선언 불가능
🌱 재할당 불가능
🌱 블록 레벨 스코프
- let : 호이스팅 시 초기화되지 않은 상태로 저장 => 값 할당 전에 아예 접근 불가능
🌱 중복선언 불가능
🌱 재할당 가능
🌱 블록 레벨 스코프
*호이스팅
- 자바스크립트는 실행 되기 전에 함수 안에 필요한 변수 값들을 모두 모아서 유효 범위의 최상단에 선언
-> parser가 함수 실행 전 함수 내용 확인 -> 함수 안에 존재하는 변수 및 함수 선언에 대한 정보를 기억함 (유효범위: 함수 블록)
- 즉, 함수 내에서 아래쪽에 존재하는 내용 중 필요한 값들을 끌어올려 처리함
- 호이스팅의 대상
👉 var 변수 선언과 함수선언문에서만 호이스팅 발생
-> var 변수/함수의 "선언"만 위로 끌어 올려짐. "할당"은 끌어올려지지 않음. (undefined)로 자동 초기화
-> let/const 변수 선언과 함수표현식에선 호이스팅 발생하지 않음 (실제로 하긴 하지만 var처럼 undefined로 할당 안 함)
3. 템플릿 리터럴
템플릿 문자열
- js에서 문자를 표현하는 방법 중 하나
var name = 'aa';
var letter = 'Dear' + name + '\n\n~~ wow wow wow wow' + name + ' wow wow wow' + name;
console.log(letter);
- '\n'입력하면 줄바꿈
- 문자열 그 자체가 값을 나타냄
- 백틱(`)를 사용하여 문자열을 템플릿 리터럴로 표시
4. 비교연산자
- 왼쪽 항과 오른쪽에 있는 항을 대상으로 값을 비교하는 이항 연산자
- 연산 결과가 참이면 true, 거짓이면 false를 리턴 -> 즉 비교연산자를 사용하면 결과는 Boolean데이터 타입임
*'==' vs '==='
= : 대입연산자 -> 오른쪽 값을 왼쪽 변수에 대입
== : 비교연산자 -> 두 항의 값이 같은지 비교 (다르면 데이터 타입을 알아서 맞춰서 변환하여 비교함)
=== : 비교연산자 -> 두 항의 값과 데이터 타입이 같은지 비교
5. 매개변수 vs 인자
매개변수: 프로그램에 필요한 값을 입력 받는 형식
function foo(int a)
인자: 형식에 맞게 실제 입력한 값
foo(2);
+콘솔로부터 입력 받기
- process 모듈의 argv라는 기능을 사용함
-> argv : argument vector
var args = process.argv;
console.log(args);
- 프로그램 실행 시 넘어온 입력 값을 args 변수에 저장
+배열만들기
- 배열 리터럴([])사용하여 만들기
var arr = ['0', '1'];
- Array() 생성자 함수로 배열 생성하기
var arr = new Array('0','1');
'CS' 카테고리의 다른 글
서버 시스템 구축 실습 - 데이터베이스 연결 (0) | 2024.05.01 |
---|---|
서버 시스템 구축 실습 - Express.js 웹 개발 (0) | 2024.04.24 |
서버시스템 구축 실습 - node.js 기초 (0) | 2024.04.10 |
서버시스템 구축 실습 - 데이터베이스 모델링과 설계 (0) | 2024.03.20 |
서버시스템 구축 실습 - 웹서버와 데이터베이스 개요 (0) | 2024.03.13 |