본문 바로가기

학습 내용 정리/javascript

javascript 1. 자료와 변수

728x90

0. 데이터 = 타입 + 주소 

데이터(값)을 다루기 위해서는

데이터를 저장해 둔 공간의 주소 + 데이터의 타입 이 필요하다. 

 

1. 변수 (variable)

이름이 붙은 저장소

let : 변수 생성 선언

(오래된 let 으로는 var 가 있다.)

let message
//message 라는 이름을 가진 변수를 선언

* 같은 변수를 중복해서 선언하면 Error

 

- 변수 명명 규칙

1) 문자, 숫자, $, _ 만 사용할 수 있다.

2) 첫 글자는 숫자가 될 수 없다.

3) 예약어 (let class return function 등) 를 사용할 수 없다. 

 

- 카멜 표기법 : myVeryLongName

 

- 변수 5종 세트 -

변수 이름 : 저장된 값을 식별 할 수 있는 고유의 값

변수 값 : 변수에 저장된 값

변수 할당 : 변수에 값을 저장하는 행위

변수 선언 : 변수를 사용하기 위해 컴퓨터에 알리는 행위

변수 참조 : 변수에 할당된 값을 읽어오는 것

 

- 변수 이름은 딱 봤을 때 이해할 수 있게 짓기

- 소속된 팀이나 자신만의 규칙을 지키기

 

2. 상수 (constant)

- const : 상수(변화하지 않는 변수)를 선언

- 재할당 할 수 없다.

- 이름에 대문자, _만 사용한다. 

 

3. 자료형

1) 숫자형 (한계 -253 ~ +253)

일반적인 숫자, Infinity, -Infinity, NaN (계산 중 에러 발생)

 

2) BigInt형

숫자형으로 나타낼 수 없는 정수, 길이에 상관 없이 사용할 수 있다. 

정수 끝에 n을 붙인다.

const bigInt = 1234567897654321234567898765432345678765432456n

 

3) 문자형

큰 따옴표  " " 작은 따옴표 ' ' : ${표현식} 넣을 수 없다. 

큰 따옴표와 작은 따옴표는 같다. 구분하지 않는다.

 

역따옴표, 백틱(backtick) `` : ${표현식} 넣을 수 있다. 

 

4) 불린형(논리 타입) 

True 긍정

False 부정

 

5) null 값

존재하지 않는 값. nothing

비어있는 값. empty

알 수 없는 값. unknown

 

6) undefined 값

값이 할당되지 않은 상태

- 변수는 선언했지만 값을 할당하지 않았다면 자동으로 undefined 할당

- undefined 를 직접 할당하는 걸 권장하지 않는다. 

 

7) 객체형

복잡한 데이터 구조를 표현할 때 사용

 

8) 심볼형

객체의 고유 식별자를 만들 때 사용

 

 

4. 형변환(type conversion)

타입 ( 바꾸고 싶은 것 )

- 불린형 형변환 : 뭔가 없는 것은 false 아무거나 있으면 true

(단, 문자열 "0" ,"  " 은 true)

(숫자형으로 변환 시 undefined는 NaN)

 

 

5. 기본 연산자

피연산자(operand) = 인수(argument) : 연산을 수행하는 대상 ( 5 * 2 에서 5와 2)

단항(uanry) 연산자 : 한 개의 피연산자만 받는 연산자 :  - (대표적으로 마이너스가 있다)

이항(binary) 연산자 : 두 개 이상의 피연산자를 받는 연산자

 

+ 덧셈 연산자 (문자열도 연결할 수 있다) (숫자가 아닌 피연산자를 숫자형으로 변화 ex: +true = 1)

- 뺄셈 연산자

* 곱셈 연산자

/ 나눗셈 연산자

% 나머지 연산자

** 거듭제곱 연산자 (ex: a**b = a를 b번 곱한 값

% 나머지 연산자(remainder operator): 나눈 후 나머지(remainder)를 정수로 반환

= 할당(assignment) 연산자

 

복합 할당 연산자 += *=

n = 2

n += 5  와 n = n+5는 같다

 

++ 증가(increment) 연산자 = 변수를 1 증가

-- 감소(decrement) 연산자 = 변수를 1 감소

(변수에만 쓸 수 있다.)

 

비트연산자(bitwise operator) : 인수를 32비트 정수로 변환하여 이진 연산을 수행한다

&    비트 AND

|     비트 OR

^    비트 XOR
~    비트 NOT

<< 왼쪽 시프트 (LEFT SHIFT)

>> 오른쪽 시프트 (RIGHT SHIFT)

>>> 부호 없는 오른쪽 시프트 (ZERO-FILL RIGHT SHIFT)

 

, 쉼표 연산자

마지막 표현식의 평가 결과만 반환된다. (우선순위가 매우 낮다)

let a = (1 + 2, 3 + 4)
alert ( a ) // 7을 반환한다.

 

6. 비교 연산자

>

<

<=
>=

상식과 같게 쓰인다. 

 

== 동등 (a = b 는 할당! 주의!) (0과 false 와 "    " 를 구별하지 못한다)

=== 일치 연산자 (strict equality operator) :  형 변환 없이 값을 비교

 

!= 부등 (같지 않음)

 

- 문자열 비교

사전편집(lexicographical)순 : 사전 뒤쪽의 문자열은 앞쪽의 문자열보다 크다

alert ('Z'>'A') //true
alert ('Glow'>'Glee') //true

 

비교하려는 값의 자료형이 다르면 자바스크립트는 이 값들을 숫자형으로 바꾼다.

undefined 는 다른 값과 비교 불가능!

 

7. 논리 연산자

 

||   OR

(첫 번째 truthy 를 찾을 수 있다 = 가장 첫 번째 true 값, 1은 truthy)

 

&&  AND

(첫 번째 falsy 를 찾을 수 있다 = 가장 첫 번째 false 값)

 

!  NOT

(피연산자를 불린형(true, false)로 변환한다. )

 

8. typeof 연산자

typeof x

typeof(x) 함수

로 사용

인수의 자료형을 반환한다.

 

null 의 typeof 연산은 "object" (언어상 오류, null은 객체가 아니기 때문)

 

 

스파르타 코딩클럽 내일배움캠프 사전캠프 자료

javascript handbook 에서 발췌

 

 

목표량 달성! 신난다.