변수의 5가지 주요 개념
1. 변수 이름 : 변수에 저장된 값의 이름
2. 변수 값 : 변수에 저장된 값
3. 변수 선언 : 변수를 사용한다고 컴퓨터에 알리는 행위
4. 변수 할당 : 변수에 값을 저장하는 행위
5. 변수 참조 : 변수에 할당된 값을 읽어오는 행위
let a; // 변수 선언
a = "hello"; // 변수 할당
let a = "hello"; // 변수의 선언과 할당
키워드 | 동일 이름 재선언 | 재할당(값 덮어쓰기) |
---|---|---|
var | 가능 | 가능 |
let | 불가능 | 가능 |
const | 불가능 | 불가능 |
동일한 이름의 변수를 선언
// var
var myVar = "Hello";
var myVar = "Goodbye"; // 가능
console.log(myVar); // Goodbye
// let
let myLet = "Hello";
let myLet = "Goodbye"; // 불가능
console.log(myLet); // SyntaxError: Identifier 'myLet' has already been declared
// const
const myConst = "Hello";
const myConst = "Goodbye"; // 불가능
console.log(myConst); // SyntaxError: Identifier 'myConst' has already been declared
재할당(값 덮어쓰기)
// var
var myVar = "Hello";
myVar = "Goodbye"; // 가능
console.log(myVar); // Goodbye
// let
let myLet = "Hello";
myLet = "Goodbye"; // 가능
console.log(myLet); // Goodbye
// const
const myConst = "Hello";
myConst = "Goodbye"; // 불가능
console.log(myConst); // TypeError: Assignment to constant variable
const
const myConst; // X
const myConst = "Hello"; // O
const person = {name: "Kim"};
person.name = "Park";
console.log(person); // {name: "Park"}
// 문자열을 포함하여 + 연산자를 사용하면 결과값은 항상 String 타입이 된다.
console.log(1 + "2"); // 12
console.log("1" + true); // 1true
console.log("1" + null); // 1null
console.log("1" + undefined); // 1undefined
// +를 제외한 연산자(-, *, /, % 등)를 사용하면 결과값은 항상 Number 타입이 된다.
console.log(1 - "2"); // -1
console.log("2" * "3"); // 6
console.log(true / 2); // 0.5
// 빈 문자열("") 또는 공백 문자열(" ")은 0으로 변환된다.
console.log("" - 2); // -2
// String() 함수를 사용한다.
console.log(String(123)); // 123
console.log(String(true)); // true
console.log(String(false); // false
console.log(String(null)); // null
console.log(String(undefined)); // undefined
console.log(String(NaN)); // NaN
console.log(String({})); // [object Object]
// Number() 함수를 사용한다.
console.log(Number("123")); // 123
console.log(Number(true)); // 1 (true = 1)
console.log(Number(false)); // 0 (false = 0)
console.log(Number(" ")); // 0 (공백 문자열 = 0)
console.log(Number("")); // 0 (빈 문자열 = 0)
console.log(Number(null)); // 0 (null = 0)
console.log(Number(undefined)); // NaN (Not a Number)
console.log(Number(NaN)); // NaN (Not a Number)
console.log(Number({})); // NaN (Not a Number)
// Boolean() 함수를 사용한다.
console.log(Boolean("123")); // true
console.log(Boolean({})); // true (객체 = true)
console.log(Boolean(" ")); // true (공백 문자열 = true)
console.log(Boolean("")); // false (빈 문자열 = false)
console.log(Boolean(0)); // false (0 = false)
console.log(Boolean(null)); // false (null = false)
console.log(Boolean(undefined)); // false (undefined = false)
console.log(Boolean(NaN)); // false (NaN = false)
Pattern | 결과값 |
---|---|
value && true | true |
true && value | value |
value && false | false |
false && value | false |
value1 && value2 | value2 |
// 조건부 실행
let x = 10;
(x>0) && console.log("x는 양수입니다."); // x는 양수입니다. (true && value => value)
Pattern | 결과값 |
---|---|
value || true | value |
true || value | true |
value || false | value |
false || value | value |
value1 || value2 | value1 |
// 변수의 초기값 설정
let x;
let y = x || 10;
console.log(y); // 10 (false(undefined) || value => value)