자바스크립트 엔진이 필요하다 각 웹 브라우저 전부 자바스크립트 엔진 탑재
자바스크립트 - 인터프리터
인터프리터 : 런타임시 코드를 한줄씩 번역해서 실행
컴파일러: 전체 번역 후 실행 한번 실행파일 만ㄷ르경우 그 후실행이 빠름
변수: 값을 저장하는 공간 자료를 저장할 수 있는 이름이 주어진 기억장소
변수 이름 여러개 묶어서 지을경우 공통부분을 앞부분 상세를 뒷부분
앞부분만 쓰면 자동완성 appleGreen; appleRed;
아주 큰 정수 숫자 끝 n기재
boolean타입 변수명 앞에 let isFree = true;
객체는 heap에 저장된다.
객체값은 참조값(메모리주소, 레퍼런스)이 복사되어 전달됨.
원시타입은 값자체가 복사 객체타입은 참조값이 복사되어 전달됨.
컴파일러가 필요한 언어는 정적인 언어
인터프리터타입 자바스크립트는 동적인 다이나믹 언어 처음에 타입을 정해주지 않으며 다른 타입을 재할당이 가능함
++a 값을 먼저 증가 그 뒤 연산
a++ 필요한 연산 먼저 하고 값 증가
console.log(a++)도 출력 수 a값 증가
!!true > true
!부정 연산자 > !! 불리언값으로 변환
false && false > false
삼항 조건 연산자
조건식? 표현식 true:표현식 false
범위 자체가 고정되어있지 않으면 if
범위가 케이스별로 나눌 수 있다면 switch
do-while {
꼭 한번 실행시키고 싶을 때
}
for 시작과 끝을 모르는 실행범위일 경우 사용 끝이 무한
while 시작과 끝을 아는 실행범위일 경우 사용 끝이 유한
let num = 20;
if ( (num<=10 && num>=20) || num === 30){
console.log("good!");
}
인자값 선언 후 넘겨주지 않으면 undefined
return을 명시해주지 않으면 자동으로 undefined가 반환된다.
return을 함수 중간에서 하게되면 함수가 종료된다.
Rest매개변수 (a,b,...num){}
일급 객체
일반 객체처럼 모든 연산 가능한것
-함수의 매개변수로 전달
-함수의 반환값
-할당 명령문
-동일 비교대상
immutable 불변성
함수 내부에서 외부로부터 주어진 인자의 값을 변경하는 것은 좋지 않다.
상태변경이 필요한 경우에는 새로운 상태를 (오브젝트, 값)을 만들어서 반환해야 함
원시값 - 값에 의한 복사
객체값 - 참조에 의한 복사 (메모리 주소)