스코프
- 블록 스코프 (Block Scope)
- let과 const가 대표적인 블록 스코프
- {} 블록 내부에 선언된 변수는 블록 외부에서 액세스할 수 없음
- 자바스크립트 함수 내에 선언된 변수는 함수의 Local이 됨
- 함수 스코프 (Function Scope)
- Local 변수는 함수 스코프에 해당됨
- 함수 내에서만 액세스 가능
- 각 함수는 새로운 스코프를 만듦
- 함수 내부에 정의된 변수는 함수 외부에서 액세스할 수 없음
- var, let, const로 선언된 변수들은 함수 안에서 선언될 때 상당히 유사
- 전역 스코프 (Global Scope)
- 함수 외부에서 선언된 변수는 Global이 됨
- 전역 변수는 전역 스코프에 해당
- 웹 페이지의 모든 스크립트와 함수가 액세스 할 수 있음
- 전역으로 선언된 변수(함수에 해당되지 않은)는 전역 스코프에 해당
- 글로벌 변수는 자바스크립트 프로그램 어디에서나 접근 가능
- var, let, const로 선언된 변수들은 블록 밖에서 선언될 때 상당히 유사
- 자바스크립트에서 객체와 함수는 변수이기도 함
- 스코프는 코드의 다른 부분에서 변수, 객체, 그리고 함수의 액세스 가능성을 결정
- 선언되지 않은 변수에 값을 할당하면 자동으로 전역 변수가 됨
이벤트
- 자바스크립트가 HTML 페이지에서 사용될 때 이벤트에 반응할 수 있음
- HTML 이벤트의 예
- HTML 웹 페이지의 로드가 완료
- HTML 입력 필드가 변경
- HTML 버튼이 클릭 됨
- 이벤트가 발생 했을 때 자바스크립트를 사용하면 특정 코드를 실행할 수 있음
- 이벤트의 속성: HTML을 사용하면 이벤트 핸들러 속성을 HTML 요소에 추가할 수 있음
<element event='some JavaScript'>
- 자바스크립트의 코드는 종종 몇 줄씩 됨
- 이벤트의 특성을 보고 함수를 호출하는 것이 더 일반적
<button onclick='displayDate()'>The time is?</button>
- 대표적인 이벤트
- onchange: HTML 요소가 변경되었을 때
- onclick: HTML 요소가 클릭되었을 때
- onmouseover: HTML 요소의 위에 사용자가 커서를 올려놓았을 때
- onmouseout: HTML 요소의 위에서 사용자가 커서를 치웠을 때
- onkeydown: 사용자가 키보드를 눌렀을 때
- onload: 브라우저가 로딩을 끝마쳤을 때
자바스크립트에서의 이벤트
- JS가 할 수 있는 것
- 이벤트 핸들러를 사용한 사용자 입력, 수행 및 브라우저 수행의 처리와 확인
- 페이지가 로드될 대마다 수행해야 하는 작업
- 페이지를 닫을 때마다 수행해야 할 작업
- 사용자가 버튼을 누를 때 수행해야 하는 작업
- 사용자가 데이터를 입력할 때 확인해야 하는 내용 등
- 자바스크립트가 이벤트와 함께 작동하도록 다양한 메서드 사용
- HTML 이벤트 속성은 JS 코드를 직접 실행할 수 있음
- HTML 이벤트 속성은 JS 함수를 호출할 수 있음
- HTML 요소에 고유한 이벤트 핸들러 함수를 할당할 수 있음
- 이벤트가 전송되거나 처리되지 않도록 할 수 있음
문자
- 자바스크립트의 문자열(string)
- 따옴표 안에 0개 이상의 문자가 포함
- 작은 따옴표 혹은 큰 따옴표를 사용
- 문자열 주변의 따옴표와 일치하지 않는 경우 문자열 안에 따옴표를 사용
- 스트링의 길이를 찾으려면 기본 제공 길이 속성 사용 (text.length)
- 특수문자 처리
- 스트링은 따옴표 안에 작성되야 하므로 JS가 이것을 오해할 가능성이 있음
- 특수문자 앞에 백슬래시로 문자열로 인식
- \' \" \\ : 각각의 특수문자로 인식
- \b : 백스페이스
- \f : 용지 공급
- \n : 줄 바꿈
- \r : 캐리지 리턴
- \t : 수평 탭
- \v : 수직 탭
숫자
- 자바스크립트에는 한 가지 유형의 숫자만 존재
- 숫자는 소수점을 포함 가능
- 극단적으로 크거나 작은 숫자들은 과학적(exponent) 표기법을 사용
let x = 123e5; // 12300000
let y = 123e-5 // 0.00123
- 자바스크립트 번호는 항상 64비트 부동소수점
- 다른 프로그래밍 언어들과 달리 JS는 정수, 단수, 장수, 부동소수점 등과 같은 다른 종류의 숫자를 정의하지 않음
- JS 번호는 IEEE 754 국제 표준을 따르는 부동소수점 번호로 항상 저장
덧셈
- 덧셈과 연결에 + 기호를 사용
- 숫자는 더해지고 문자열은 연결
- 문자열과 숫자를 더해도 결과는 연결된 문자열
- 곱셈, 나눗셈, 뺄셈은 문자열로 계산해도 숫자처럼 계산