window 함수
- 브라우저를 지칭하는 객체
- 브라우저에서 실행되는 자바스크립트 코드에서 기본이 되는 객체는 window이다.
- window는 브라우저 자체를 지칭하는 객체이며, 이 window객체서 제공하는 변수, 함수를 이용해 프로그램을 작성할 수 있다.
- window 객체에서 다이얼로그를 띄우기 위한 alert(), confirm(), prompt() 함수를 제공한다.
- alert
- window.alert() → window 생략 가능 → alert()
- 간단한 메세지 출력
- prompt
- prompt()
- 확인/취소 선택
- confirm
- confirm()
- 사용자 글 입력
document.write() 함수
- document 객체는 브라우저에서 실행되는 HTML 문서 자체를 지칭하는 객체이다.
- document.write() 함수는 HTML 문서에 어떤 문자열을 출력하기 위해 사용되는 함수이다.
- document는 생략이 불가능하다.
console.log()
- 자바스크립트 코드가 실행되면서 발생한 어떤 결과 혹은 문자열을 출력하기 위한 구문인데, 출력하는 위치가 자바스크립트 코드를 실행시켜주는 플랫폼의 콘솔이다.
자바스크립트 코드 컨벤션
- 들여쓰기를 해야 한다.
- 코드 컨벤션(Code Convention) 이란? 프로그래밍 코드를 작성하는 일종의 가이드이다.
- 코드를 작성할 때 읽고 관리하기 쉽게 작성하기 위한 일종의 관습이라고 보면 된다.
- 중괄호 {} 로 묶인 부분이 어디까지 인지 쉽게 식별하게 해줘야 한다.
- 스페이스를 적절하게 사용하여 보기 좋게 작성
- 주석을 활용하자
- 의미 있는 식별자 사용하자.
- 자세한건 구글 가이드 참고
식별자
- 개발자가 주는 이름
- 대소문자를 구분해서 사용한다.
- 변수, 함수명, 클래스명 등 개발자가 직접 식별을 위해 이름을 지정하는 경우가 있다.
- 변수명은 소문자로 시작하는 명사형을 이용한다.
- 함수명은 소문자로 시작하는 동상형을 이용한다.
- 클래스명은 대문자로 시작하는 명사형을 이용한다.
- 두 단어를 겹합시켜서 이름을 주는 경우에는 뒷 단어의 첫 글자는 대문자로 지정한다. 카멜케이스
- 두 단어를 언더스코어(_)로 연결해서 지정할 수 있는데 이는 snake case 라고 한다.
- 대소문자 구분하지 않는 경우에는 snake case를 사용한다.
디버깅
- 우리가 작성한 애플리케이션은 에러 발생할 수 있다.
- 에러는 크게 컴파일 에러와 런타임 에러로 구분할 수 있다.
- 컴파일 에러는 소프트웨어 언어의 문법에 맞지 않게 작성하여 생긴 오류이다.
- 런타임 에러는 문법에 맞게 작성했지만 실행하다가 발생한 에러이다.
Strict mode(엄격모드)
- 자바스크립트 코드 첫 줄 혹은 함수 내용 첫 줄에 ‘use strict’라고 쓰면 된다.
- ‘use strict’를 사용하는 것은 자바스크립트 엄격 모드라고 한다.
- 우리가 작성한 자바스크립트 코드를 실행 시켜주는 자바스크립트 엔진에게 우리가 작성한 코드를 어떻게 실행하라는 일종의 명령이다.
데이터 타입 undefinde / null
null
- null은 객체에 대입되는 값이다.
- 무엇가 의미있는 데이터를 표현하는 값이 아니라 객체가 선언되기는 했는데, 아직 값이 없는 상태를 표현하는 값이다.
- 객체가 null 인 것이 오류가 아니라 null인 객체의 변수 혹은 함수를 이용하려고 하는 순간 에러가 발생한다.
- “Uncaught TypeError: Cannot read properties of null (reading 'style’)”
undefined
- undefined 는 데이터 타입이다.
- 자바스크립트에서 데이터 타입은 변수에 대입되는 데이터에 의해 유추가 된다.
- undefined는 변수가 선언되기는 했지만 값이 대입되지 않아서 데이터 타입을 유추할 수 없는 상태의 타입을 의미한다.
- 즉 데이터가 아니라 데이터 타입이 유추가 되지 않는 상태로 의미하는 타입이다.
'JavaScript' 카테고리의 다른 글
[모던자바스크립트 Deep Dive] 15장. let, const 키워드와 블록 레벨 스코프 (0) | 2024.09.11 |
---|---|
[모던자바스크립트 Deep Dive] 14장. 전역 변수의 문제점 (0) | 2024.09.10 |
[모던자바스크립트 Deep Dive] 13장. 스코프 (0) | 2024.09.05 |
[모던자바스크립트 Deep Dive] 12장. 함수 (0) | 2024.09.04 |
JavaScript 용어 (2) | 2024.09.03 |