JS-2 (22/10/28)

nazzzo·2022년 10월 31일
0
post-thumbnail

[목차]

  1. 기본 연산자
  2. 변수
  3. 데이터의 종류


1. 기본 연산자

  • + 더하기
  • - 빼기
  • * 곱하기
  • / 나누기
  • % 나머지 구하기

연산자의 앞뒤에는 값이 필요한데, 연산의 대상이 되는 값을 피연산자라고 한다. (예를 들어 2*3라는 수식에는 *라는 연산자와, 23이라는 총 두 개의 피연산자가 있다.)

더하기(+), 빼기(-), 곱하기(*), 나누기(/)를 뜻하는 각 기호는 우리가 흔히 알던 계산법을 그대로 따르며 마지막 % 연산자는 왼쪽 피연산자를 오른쪽 피연산자로 나눴을 때의 나머지값을 구한다.

그리고 수학에서 '같다'를 의미하는 = 기호를 프로그래밍 언어적으로는 '대입 연산자'라고 부른다.



2. 변수




변수란 이름 그대로 바뀔 수 있는 수를 말한다.
예를 들어서 다음 코드를 실행한다고 해보자.

a=1
b=1
a+b=

당연히 a+b의 결과값은 2가 될 것이다.

그런데 a의 값을 100으로 재할당했다면?

a=100
b=1
a+b=

똑같은 a+b이지만, a의 값이 바뀌었기 때문에 결과는 101이 된다.
이와 같이 a와 b처럼 값이 바뀔 수 있는 것을 변수라고 한다.

자바스크립트에서 변수를 설정할 수 있는 예약어에는 다음 3가지가 있다.

  • var (variable의 약자)
  • let (가장 일반적인 예약어. ES6에 추가)
  • const (Constant의 약자. ES6에 추가)


[변수 선언 방법]

예약어 (let,const) 변수명 (any words) = 데이터

  • 변수명에서 특수문자는 사용할 수 없고 첫글자가 숫자여서도 안된다.
  • 예약어를 변수명으로 설정하는 것 역시 불가능하다.
    (에러 메세지 unexpected token 'const')

var number = 1
console.log(number)

위의 코드를 입력하면 콘솔창에는 1이 출력된다.

그렇다면 각각의 예약어들이 지닌 차이는 무엇일까.

결론부터 말하자면 var은 현재 잘 쓰이지 않는 추세이다.

var에는 hoisting 기능이 내제되어 있는데, 이 기능에 의하면 변수나 함수를 아무리 아래에 선언해도 변수/함수 선언을 맨 위로 올려버리기 때문이다.
다음 예를 들어보자.

console.log(num)
num = 6
var num

위와 같은 비정상적인 코드를 입력하면 에러가 발생해야 정상임에도 콘솔창에 정상적으로 결과값 6이 출력된다.
var가 가진 호이스팅 기능이 변수 선언을 최상단으로 올린 것이다.

console.log(num)
let num
num = 6

반면에 let을 사용하면 정상적으로(?) 에러가 발생하는 것을 확인 할 수 있다.

마지막으로 const는 상수를 선언하는 기능을 한다.

const num
num = 7
console.log(num)

출력 결과는 에러 발생...
그 이유는 위에서 이미 변수명 num을 6로 선언했기 때문이다.

const를 쓰려면 다른 변수명으로 추가적인 변수 선언을 할 수 밖에 없다.
(const는 특정 값을 변경시킬 수 없도록 제한하고 싶을 때 사용한다.)



(let은 재선언은 불가능하지만 재할당은 가능한 반면,
const는 값을 선언한 뒤에는 재선언과 재할당 모두 불가능하다.)



그렇다면 이러한 변수는 왜 사용하는 것일까?
이유는 다양하다.

그 중 하나의 이유는 이러한 변수를 이용하면 여러군데 흩어져 있는 값들을 단번에 바꿀 수 있다는 것이다.
예를 들어 한 문자열 안에서 같은 "Hello"라는 단어가 여러 번 나올 때,
이를 모두 "World"로 바꾸고 싶다고 해 보자.
이 때 모든 "Hello"들이 변수로서 존재하고 있다면 그 변수만 바꿔주면 한 번에 모든 "Hello"를 "World"라는 문구로 교체할 수 있다.

또한 변수 설정은 프로그램에서 가독성을 높여주고 유지보수에도 유리하다.
복잡한 코드를 변수 안에 저장하면, 필요할 때마다 변수명을 찾아서 데이터 값을 불러낼 수 있기 때문이다. (변수에는 자바 스크립트로 표현 가능한 모든 데이터를 저장할 수 있다.)




3. 데이터의 타입



let string = '1'
console.log(string)
let string2 = 1
console.log(string2)

두 변수 선언의 차이는 데이터의 '타입'이다.

자바 스크립트의 데이터 타입에는 글자(string)와 숫자(number) 2가지 존재하는데, 따옴표(``, '', "")로 감싼 것은 글자(string type)로 해석된다.


let string = "block"
let string2 = 'chain'

위 코드를 입력 후

console.log(string + string2)

을 입력하면

blockchain이라는 글자가 출력된다.

(string 타입은 + 연산자만은 연결의 의미로 사용할 수 있다.)



반면에

let num = 1
let num2 = 2

위 코드를 입력 후

console.log(num + num2)

콘솔창에는 3이 출력된다.
(number 타입은 변수의 연산 결과가 출력된다.)

또한

console.log(string + num) = block1
console.log(num + string) = 1block

다른 데이터 타입끼리 +연산자로 연결짓는 것 역시 가능하다.


예제)

let strNum = '191'
let num3 =3

console.log(strNum + num3)

출력 결과는 1913.
(-연산자를 쓰면 188이 뜬다. 앞의 strNum이 넘버 타입으로 바뀐 건데 자바스크립트의 버그에 가까우니까 그냥 넘어가자...)

  • 넘버 타입은 값이 색깔이 변해서 출력된다.
    (스트링은 검정색)



번외) [변수명 ~ 카멜 표기법]

var fistName // 카멜 표기법. 뒤에 오는 단어 첫글자는 대문자
var FirstName // 파스칼 표기법. 단어마다 대문자.
var first_name // 스네이크 표기법.

일반적으로는 카멜 표기법을 많이 쓰인다.
앞으로 변수명을 지정할 때는 카멜 표기법을 쓰도록 하자.

0개의 댓글