JavaScript 기초
자바스크립트
자바스크립트는 자바와 관련 없음!
자바스크립트 구성요소
DOM
- 웹페이지를 자바스크립트로 제어하기 위한 객체 모델
- language-independent interface
- 웹 페이지가 load되면 브라우저는 웹 페이지의 DOM을 생성
<script> 태그 위치
- CSS를 style태그를 이용하여 정의하거나 .css 외부파일로 정의하는 방법이 있듯이, js를 html 문서상에서 script 태그 안에 정의하거나 .js 외부 파일로 분리하는 방법 존재
- HTML 태그들을 읽어나가는 도중 <script> 태그를 만나면 파싱을 중단하고 javascript 파일을 서버에서 다운로드 후 javascript 코드를 파싱
- 완료되면 그 후에 HTML 파싱이 계속
- async, defer
- async사용
- defer사용
데이터의 종류
- 변수와 상수
- 변수 : 저장된 값이 변할 수 있음.
- 상수 : 저장된 값이 변할 수 없음.
- 변수 선언 방법: var, let, const
- let과 const 차이
종류 | 재선언 | 재할당 |
var | O | O |
let | X | O |
const | X | X |
결론: 될 수 있으면 변수보다 상수 사용.
Scope(변수가 유효한 범위)
데이터의 종류
- 데이터 타입
- 리터럴(literal)
ex)
const number = 20;
const bool = true;
- 원시 타입(primitive type)
- 모든 원시 값은 불변이다. 추적이 안된다.
-String(문자열 병합)
- 덧셈과 병합은 모두 왼쪽에서 오른쪽으로 평가
ex) 3+6+"9" => 99
+x -> cast to Number
"" + x -> cast to String
!!x -> cast to Boolean
- 연산자
객체
- Object
- 내장객체, 문서 객체 모델, 브라우저 객체 모델 존재
- 속성(properties)
- 유용한 유틸
- 객체에 포함된 property 개수 세기(length)
-> Object.keys: 검사대상 객체를 전달
ex) Object.keys(car).length
-변수 타입 확인(typeof)
typeof list
typeof count
- Object 객체
:자바스크립트의 최상위 객체
참고) 객체지향
- 자바스크립트는 프로토타입 기반 객체지향 언어
-자바스크립트에는 클래스가 없음.(다만 일반적인 클래스처럼 작성할 수 있는 문법이 있음)
- 상속을 구현하는 두 가지 방법 : 프로토타입, 클래스
참고) 프로토타입
- Number 객체
- 원시 타입 number를 다룰 때 유용한 property와 메서드를 제공하는 래퍼(wrapper) 객체
- Auto Boxing
- String, Number, Boolean은 new 키워드를 사용하지 않아도 원시 타입이면서 객체처럼 동작
String 객체 생략
- Date 객체
- getTime() 함수
var now = new Date();
var after = new Date("May 5, 2023");
var interval = after.getTime() - now.getTime();
interval = Math.floor(interval / (1000 * 60 * 60 * 24));
alert("Interval: " + interval + "일");
참고 User strict mode
- 단축평가
- 논리연산은 왼쪽부터 오른쪽으로 진행하는데 이미 그 결과가 결정되었다면 끝까지 보지 않고 결정된 결과를 선택
-단축평가 사용x
-단축평가 사용
'수업' 카테고리의 다른 글
컴퓨터그래픽스 - Bunny Model 회전 코드 (0) | 2023.04.05 |
---|---|
컴퓨터그래픽스 - 12. 그래픽스 기본 이론2 (0) | 2023.04.05 |
모바일프로그래밍 - Fragment_Navigation(모바일 앱에서 화면 전환) (0) | 2023.04.04 |
모바일프로그래밍 - data binding / kotlin 사용, android app 개발 (0) | 2023.04.04 |
android studio / kotlin 기본. 버튼 클릭시 숫자 1증가하는 앱 (0) | 2023.04.03 |