기본적으로 헤더 바디 스크립트로 나뉘어있다
메타데이터는 헤드에 들어간다
실질적으로 보이는건 아니지만 title 이나 import export 등 이 들어간다
바디는 정적으로 페이지에 보여주는 부분
폰트나 크기나 색상 등을 CSS라고 한다
콘솔은 자바스크립트에서 전체적으로 사용할 수 있는 객체
객체는 key 와 value로 이루어져 있어
{}로 표시
key : value 순으로 표시된
npm package - nodemon
package j
터미널 실행 종료 ctrl c
script
npm run hello 를 하면 value 가 실행된다
@표현식
값을 만들어 내는 간단한 코드
ex)
273
10+20
'RintIanTta' 등
@문장
하나 이상의 표현식이 모인 것
; 또는 줄바꿈을 통해 종결을 알려준다
ex)
10+20 ;
let rintiantta = 'Rint' + 'Ian' + 'Tta'
@프로그램
문장이 모여 프로그램을 만든다
@키워드
자바스크립트가 처음부터 정해놓은 특별한 의미가 있는 단어
@식별자
프로그래밍 언어에서 이름을 붙일 때 사용하는 단어
규칙
1. 키워드를 사용하면 안 됩니다
2. 숫자로 시작하면 안됩니다
3. 특수문자는 -와 $만 허용합니다
4. 공백을 포함할 수 없습니다
@주석
프로그램 코드를 설명할 때 사용하며 프로그램 진행에는 전혀 영향을 주지 않는다.
HTML 태그 주석
로 주석을 감싸 생성한다자바스크립트 주석
한 줄의 주석은 // 를 통해 만들고
여러 줄의 주석은 / 와 /를 통해 표현합니다
@오류를 확인하는 방법
구글 크롬 개발자 도구에서 검사
(ctrl+shift+I)
ReferenceError
Uncaught ReferenceError: 00 is not defined
00을 잘못 입력했을 경우 나타나는 에러
-> 00 을 수정해주면 해결된다
SyntaxError(구문오류)
Uncaught SyntaxError : Invalid or unexpeted token
토큰(기호)를 잘못 입력했을 경우 나타나는 에러
' 나 ( 등을 열고 닫지 않은 경우 발생한다
-> 기호를 신경써서 마무리하면 해결된다
@변수
함수 ~let~
이름이 붙은 저장소
ex) 온라인 쇼핑몰 애플리케이션에서 상품이나 방문객의 정보를 저장할 때 사용한다
@상수
함수 ~const~
변화하지 않는 변수
연산자의 종류
1. + 덧셈
2. - 뺄셈
3. * 곱셈
4. / 나눗셈
5. % 나머지
6. ** 거듭제곱
@ % 나머지 연산자
%와 관련없고 a % b 는 a를 b로 나눈 후 그 나머지를 정수로 반환해 준다
@ ** 거듭제곱 연산자
a b 는 a를 b번 곱한 값이 반환된다
@ + 연산자의 문자열 연결
문자열을 + 로 연산하면 문자열을 병합합니다
~피연산자 중 어느 하나라도 문자열이면 다른 하나도 문자열로 변환된다~
연산은 왼쪽에서 오른쪽으로 순차적으로 진행되기 때문에
2 + 2 + '1' 의 경우 '221'이 아니라 '41'이 된다
하지만 다른 연산자의 경우 피연산자가 숫자가 아닌 경우 그 형을 숫자형으로 바꾸게 됩니다
6 - '2' = 4 ( '2'를 숫자형으로 변환)
단항 연산자로 사용하면 Number(...)과 같이 숫자형으로 변환시켜준다
alert ( +true ); // 1
alert ( "") ; // 0
이항 덧셈 연산자를 사용하면 기존의 문자열로 변해서 연결한다
이럴 경우 단항 덧셈 연산자를 사용해 피연산자를 숫자형으로 변환시켜준다
@ = 할당연산자
우선순위가 3으로 매우 낮아 표현식의 계산이 먼저 이루어진 이후 x에 할당되게 된다
let x = 2 * 2 + 1
alert (x) ; // 5 가 되는 이유 (=를 늦게 적용하기 때문에)
a = b = c = 2+2
와 같이 연결할 수 있다
@복합 할당 연산자
let n = 2;
n = n + 5;
n = n 2;
의 경우 += 와 = 를 통해 표현할 수 있다
let n = 2;
n += 5; (n = n + 5와 동일)
n = 2:(n = n2와 동일)
(/=, -= 도 만들 수 있다)
~복합 할당 연산자는 우선순위가 할당 연산자와 동일하여 다른 연산자가 실행된 이후에 복합 할당 연산자가 실행된다~
@증가(++) 감소(--) 연산자
let n = 2;
n++; // n = n+1 과 같은 식이다
n--; // n = n-1과 같은 식이다
증가 감소 연산자는 변수에만 사용할 수 있다
ex) 5++는 에러가 발생
증가 감소 연산자는 앞이나 뒤에 올 수 있는데
앞에올 경우 (n++) ~후위형~
뒤에올 경우 (++n) ~전위형~
~이건 질문해야할듯~
@비트 연산자
@쉼표 연산자
여러 표현식을 코드 한 줄에서 평가하게 해준다.
하지만 마지막 표현식의 평가 결과만 반환된다
또한 우선순위가 매우 낮아(할당 연산자 = 보다 낮아) 괄호가 중요하다
let a = (1+2, 3+4) ;
alert (a); // 는 마지막 평과 결과인 7
let a = 1+2, 3+4
alert (a) ;// a = 3, 7 까지 연산이 수행된 후 ,보다 = 가 먼저 실행되어 a = 3이 되고 7은 버려진다
@비교 연산자
비교 연산자는 불린형 으로 값을 반환한다
alert (2>1) ; // true
alert (2++1) ;// false
이 불린 값을 다른 변수에 할당할 수 있다
let result = 5> 4;
alert (result) ; // true
~문자열 비교~
자바스크립트는 사전 순으로 문자를 배열한다.
뒤쪽의 문자열은 앞쪽의 문자열보다 크다고 판단한다
ex) alert (Z>A);// ture
~다른 형 간의 비교~
자료형이 다르면 자바스크립트는 숫자형으로 변환한다
불린형 값은 true =1, false = o으로 변환된다
@일치 연산자
==는 0과 false 를 구분하지 못한다
alert (0 == false ) ; // true
alert (' ' == false) ; // true
==는 다른 형의 피연산자를 숫자형으로 바꿔 false 를 0으로 만든다
~일치 연산자 ===는 형을 변환하지 않고 값을 비교한다~
alert ( 0 === false ) ;// false
@null 과 undefined 비교
===(일치연산자)를 사용하여 null 과 undefined를 비교하면 두 자료형이 다르기 때문에 false를 반환합니다
==(동등연산자)를 사용해 비교하면 true를 반환한다
<> <= >= 등 비교연산자를 사용하면 null 과 undefined 는 숫자형으로 변환된다 ( null = 0, undefined = NaN)
alert ( null > 0 ) ; // false 1
alert ( null == 0 ) ; // false 2
alert ( null >= 0 ) ; // true 3
1 번과 3번은 null 값을 숫자형으로 변환시켜 0으로 만들어 비교한다
==(동등연산자)는 피연산자가 undefined 나 null일 경우 형 변환을 하지 않고 둘을 비교하는 경우에만 true, 그 이외에는 false 를 반환한다
undefined 는 다른값과 비교해서는 안된다
< 등 숫자형으로 변환되는 경우 undefined 는 NaN값이 되고 비교 연산자에서는 항상 false 가 된다
==( 동등연산자) 의 경우 null 과 undefined 를 비교할 때를 제외하고 항상 false 를 반환한
자바스크립트는 세 종류의 논리 연산자가 있다
|| (or)
&& ( and)
! ( not)
@ | | (OR)
OR 연산자는 피연산자가 불린형이 아니라면 불린형으로 변환한다.
~자바스크립트의 || 추가기능~
OR 연산자와 피연산자가 여러개인 경우
왼쪽부터 시작해 평가를 진행하고 truthy 를 만나면 나머지 값은 건드리지 않고 평가를 멈춘다
true || alert("not printed"); // true 에서 평가가 멈춰 alert 가 실행되지 않는다
false || alert("printed");// alert 가 동작한다
@ && ( AND)
두 피연산자가 모두 참일 때 true 를 반환한
AND 연산자와 피연산자가 여러개인 경우
OR 연산자는 첫 번째 true를 반환하는 반면 AND 연산자는 첫 번째 false 를 반환한다
&& (AND)의 우선순위가 | | (OR) 보다 높다
@ ! (NOT)
NOT 연산자는 인수를 하나만 받고
1. 피연산자를 불린형으로 변환한다
2. 1에서 변환된 값의 역을 반환한다
순으로 작동한다
NOT을 두 개 연달아 사용하면 불린형으로 값이 변환된다
(내장 함수 Boolean 과 같은 결과)
NOT 의 운선순위는 모든 논리 연산자 중에서 가장 높아 가장 먼저 실행된