상수 vs 변수
변경할 가능성이 있으면 변수 사용
그렇지 않으면 상수 사용
변수를 만들 때에는 let
키워드 사용
변수를 선언하고 사용
let 이름 = 값
var 키워드
과거의 자바스크립트에서 변수를 생성할 때 사용한 키워드
변수를 중복해서 선언할 수 있는 위험성 & 변수가 속하는 범위가 애매해서
let 키워드로 대채됨
상수와 동일하다
pi
이라는 이름의 변수를 선언하고, 3.141592 라는 값을 지정한다let pi = 3.141592
// undefined
pi
// 3.141592
let r = 10
// undefined
두 변수를 활용해서 원의 둘레와 넓이 구하기
4. 반지금으로 원의 둘레 구하기
2 * pi * r
// 62.83184
pi * r * r
/ 314.1592
익스플로러 11 미만의 버전에서는 const, let을 지원하지 않아 오류를 발생한다
변수 = 값
예1. 중력 가속도와 질량을 기반으로 힘을 구한다
let g = 9.8
let m = 10
m * g
예2. 중력 가속도를 조금 더 정밀하게 사용
g = 9.80665
m * g
상수와 마찬가지로 특정한 이름의 변수는 한 파일에서 한 번만 선언가능
만약 같은 이름으로 변수를 한 번 더 선언하면 오류 발생한다
변수는 상수와 비교했을 때 유연해서 상수에서 보였던 다른 구문오류 및 예외는 발생하지 않는다
let name = "name이라는 이름의 변수를 선언한다"
let name = "한 번 더 선언한다"
> Uncatch SyntaxError: Identifier 'name' has already been declared
오류해결방법
다른 이름의 식별자를 사용해서 변수 선언한다
let nameA = "name이라는 이름의 변수를 선언한다"
let nameB = "한 번 더 선언한다"
대입 연산자와 다른 연산자를 함께 사용하는 연산자
일반적으로 사용하는 복합 대입 연산자
복합 대입 연산자 | 설명 | 사용 예시 | 의미 |
---|---|---|---|
+= | 기본 변수의 값에 값을 더한다 | a+=1 | a=a+1 |
-= | 기본 변수의 값에 값을 뺀다 | a-=1 | a=a-1 |
*= | 기본 변수의 값에 값을 곱한다 | a*=1 | a=a*1 |
/= | 기본 변수의 값에 값을 나눈다 | a/=1 | a=a/1 |
%= | 기본 변수의 값에 나머지를 구한다 | a%=1 | a=a%1 |
초기화한다
let value = 10
// undefined
value += 10 // 20
value // 20
// 변수 선언
let list = ''
// 연산자 사용 : 복합 대입 연산자를 사용해서 문자열 조합
list += '<ul>'
list += ' <li>Hello</li>'
list += ' <li>JavaScript</li>'
list += '</ul>'
// 문서 출력
document.write(list)
결과
Hello
JavaScript
// 상수 선언
const list = '<ul><li>Hello</li><li>JavaScript</li></ul>'
// 문서에 출력
document.write(list)
// 상수를 사용하지 않고 문서에 출력
document.write('<ul><li>Hello</li><li>JavaScript</li></ul>')
복합 대입 연산자를 약간 간략하게 사용한 형태
증감연산자 | 설명 |
---|---|
변수++ | 기존에 변수 값에 1을 더한다 후위 |
++변수 | 기존에 변수 값에 1을 더한다 전위 |
변수-- | 기존에 변수 값에 1을 뺀다 후위 |
--변수 | 기존에 변수 값에 1을 뺀다 후위 |
let number = 10 // 변수 선언
number++ // 연산자 사용
alert(number) // 출력
후위 : 해당 문장을 실행한 후 계산한다
let number = 10
alert(number++) // 10
alert(number++) // 11
alert(number++) // 12
전위 : 해당 문장을 실행하기 전에 계산
let number = 10
alert(++number) // 11
alert(++number) // 12
alert(++number) // 13
let number = 10
alert(number++) // 10
alert(++number) // 12
alert(number--) // 12
alert(--number) // 10