1995년
1996년
1997년
1999년
2005년
2006년
2009년
이후
<script> ~ </script>
script 태그 안에 문법을 입력
<script src="자바스크립트 파일"></script>
인터프리터 방식이므로 위에서 아래로 실행된다.
<head> ~ </head>
사이에 넣었을 경우
단점
만약 자바스크립트 파일이 다운이 안되거나 느릴 경우 빈화면이 보일 수 있다.
<body>
끝에 넣었을 경우
단점
완벽하지 않은 HTML 문서가 먼저 보여 잘못된 UI가 실행될 수 있다.
<script async>
를 사용할 경우
단점
script 파일이 여러개 있을 경우 먼저 다운로드된 script 파일을 먼저 실행하게 됨, script 파일이 서로 연관되어 있는 경우 하나의 스크립트만 실행하면 문제가 발생할 수 있다.
<script defer>
를 사용할 경우 html이 시작되고 script 파일을 동시에 다운로드/실행을 진행하게 된다, script 실행은 페이지 구성이 모두 끝날 때까지 지연, script 순서에 따라 실행
Web API Console을 통해 브라우저 Consol 창에 출력
console.log('안녕하세요 자바스크립트!')
//
: 한줄 주석
/* 내용 */
: 여러줄 주석
데이터를 저장할 수 있는 메모리 공간이며 값이 변경될 수 있다. 자바스크립트는 변수 타입이 없으며 자동으로 타입이 지정된다. 대신 let, var
키워드를 사용하여 변수를 선언
var는 너무 유연한 변수 선언 방식
으로 이제는 잘 사용하지 않는다. var는 지역변수와 전역변수와의 구분이 없으며 같은 이름의 변수를 선언 및 값을 재할당할 수 있다.
var num = 10;
{
console.log(num); //전역변수 num = 10
var num = 20;
}
console.log(num); // 전역변수 num = 20
지역변수, 전역변수의 구별이 확실하며 같은 이름의 변수를 선언할 수 없다.
let 변수명 = 값;
let 변수명;
변수명 = 값
트랜스 컴파일러
- 과거 브라우저 및 특정 브라우저 버전등을 모두 사용할 수 있도록 해석해주는 라이브러리
- BABEL(가장 유명한 라이브러리)
한번 선언된 사웃는 다시 재정의 및 값을 재할당 할 수 없다.
const 상수명 = 값;
예) const num = 10;
const 상수명;
상수명 = 값; - X 틀린 문법
console.log(`입력한 숫자는 ${num}입니다.`)
const sym1 = Symbol('apple');
const sym2 = Symbol('apple');
console.log(sym1 == sym2) // 값이 같은지 비교 true
console.log(sym1 === sym2) // 타입과 값이 같은지 비교 false
const 객체명 = {키1:키값1, 키2:키값2...}
자바 스크립트의 변수는 타입이 고정되어 있기 때문에 같은 변수에 다른 타입의 값을 대입할 수 있음.
let user = {userid='apple', name='김사과', age:20}
특정 타입의 값을 기대하는 곳에 다른 타임의 값이 오면 자동으로 타입을 변환해서 사용
const num1 = 10;
const str1 = '10';
console.log(num1 + str1) // 1010
console.log(num1 - str1) // 0
console.log(num1 * str1) // 100
console.log(num1 / str1) // 1
const ch = '삼십';
console.log(ch - 10) // NaN
강제로 타입을 변환할 수 있는 함수이다.
- Number()
: 문자를 숫자로 변환
- String()
: 숫자나 불린 등을 문자형으로 변환
- Boolean()
: 문자나 숫자 등을 불린형으로 변환
- Object()
: 모든 자료형을 객체형으로 변환
- parseInt()
: 문자를 소수없는 정수형으로 변환
- parseFloat()
: 문자를 실수형으로 변환
Web API: 브라우저에서 제공하는 API(Application Progeamming Interface)