변수: 메모리에 저장된 데이터의 주소를 참조하기 위한 식별자
키워드: JS 엔진이 수행할 동작을 규정한 명령 (var, const, let 등)
JS는 변수 선언시 암묵적으로 undefined
를 할당하므로 Garbage value가 들어가지 않음
JS엔진은 소스코드의 평가과정을 거쳐 모든 선언문을 다른 코드보다 먼저 실행한다.
Ex1 )
console.log(num)// undefined 출력
var num;
console.log(num)// undefined 출력
var num;
num = 3;
console.log(num)// 3 출력
Unmanaged language | Managed language | |
---|---|---|
메모리 제어 | 직접적인 메모리 제어 허용 X | 저수준 메모리 제어 기능 제공 |
메모리 관리 주체 | 언어 차원에서 담당 | 개발자 |
장점 | 개발자 역량 생산성 확보 | 개발자 역량 ↑ |
단점 | 생산성 ↓ | 개발자 역량에 의존 |
/[A-Za-z_$][A-Za-z_$0-9]*
개념 이해 = 용어 이해 & 설명 가능함 을 의미
값: 표현식(Expression)이 평가(Evalueate)되어 생성된 결과.
10 + 20
라는 표현식이 평가되어 값30
이 된다.리터럴: 이해가능한 문자 혹은 약속된 기호를 사용해 값을 생성하는 표기법(notation)
문: 프로그램의 최소 실행단위 (한 줄 느낌)
var sum = 3 + 5;
var sum = 3 + 5;
var
, sum
, =
, 3
, 5
,;
JS에서 세미클론(;)은 생략 가능하나 (자동삽입기능 ASI가 있음), 붙이는 것을 권장함.
표현식인 문 | 표현식이 아닌 문 | |
---|---|---|
값의 할당 가능성 | O | X |
어느정도 알고 있는 내용이라 가볍게만 공부하려했는데, 용어의 중요성을 느껴 좀 더 자세히 공부해야겠음.
프로그래밍 언어의 개념을 배우는 것이므로 국어 문법 배우는 것과도 공통점이 있다고 느낌
'
: 일반적, 간편"
: json에서 필수undefined
를 할당하는 것은 취지에 어긋남null
을 사용연산자: 피연산자와의 조합으로 표현식을 만듦
산술 연산자 (Arithmetic operator): 수학적 계산을 통해 새 값 만듦
+,-,*,/,%, ++,--
할당 연산자 (Assignment opeartor): 좌항에 우항 피연산자의 평가결과를 할당
=,+=,-=,/=,*=,%=
a = b = c = 10
이런식의 표현이 가능.비교 연산자 (Comparison opearator): 좌, 우항을 비교해 결과를 Boolean으로 반환
==, !==, ===, !===
==
은 암묵적 타입변환을 하여 타입을 일치시킨 후 값을 비교===
는 타입과 값이 모두 같은지를 비교NaN === NaN //false
를 리턴하므로 isNaN()을 통해 비교해야 한다."10" < "2" // true
와 같은 결과가 나온다.-
연산자를 사용한다.!, || &&
||, &&
의 결과는 해당 결과를 만들어 낸 근거를 반환한다.3 && 6 // 6
, 1 || 7 // 1
, 0 || null //null
,
()
typeof var
a ** b
= a^b;(-5) ** 2
[괄호를 사용해야 함]부수효과가 있는 연산자들
=, ++, --, delete
foo: {console.log(1);}