오늘도 책공부 시작입니다.
var userId = 1;
var userName = "Lee";
이렇게도 가능하지만
var user = { id: 1, name: "Lee"};
이렇게 한번에도 가능합니다
var users = [
{ id: 1, name: "Lee" },
{ id: 2, name: "Kim" }
];
여러개도 가능합니다. 대괄호를 넣고 중괄호 넣어서 표현합니다.
var result = 10 + 20;
로 표현하면 됩니다.var result
에서 result는 변수 이름, 변수에 저장된 결과 값(30)은 변수 값이라 합니다.변수의 이름을 식별자라 합니다. 식별자는 메모리 주소를 기억하는 역할입니다.
식별자를 통해 메모리 주소가 기억되며 그 안에 있는 메모리(30)에 접근할 수 있습니다.
식별자는 네이밍 규칙을 준수해야 하며 var, let, const라는 키워드로 선언합니다.
변수를 사용하려면 선언이 꼭 필요하며 위의 키워드를 사용합니다. var은 거의 사용하지 않습니다.
키워드는 자바스크립트에서 수행할 동작을 정한 명령어입니다. var로 키워드 -> 변수이름으로 식별자 -> 메모리 주소 -> 메모리에 도달합니다.
var score;
는 선언해서 변수 이름을 score
로 등록하고score
변수에 undefined를 할당해 초기화합니다.Uncaught ReferenceError: average is not defined at <anonymous>:1:1
console.log(score);
var score;
var score;
score = 80; // 이것과
var score = 80;
score; // 이것은 같습니다.
말로는 뭔소린지 몰라서 그냥 해봤습니다.
var score = 80;
으로 선언하고console.log(score);
를 하면 80 할당받아 같은 값을 받습니다.var score = 80;
score = 90;
var로 선언한 변수는 재할당이 가능합니다. (let도 가능합니다)
재할당은 현재 저장 된 값을 버리고 새로 저장하는 것을 말합니다.
재할당 할 수 없어서 변수에 저장된 값이 변경이 불가능하다면 그건 변수가 아니라 상수입니다.
const는 재할당이 불가능합니다, const는 한번만 사용할 수 있는 선언입니다.
가비지 콜렉터는 할당된 메모리 중에서 사용하지 않는 메모리 공간을 해제하는 걸 말합니다.
위의 그래프는 예약어입니다.
var first-name;
, var 1st;
, var this;
Syntax Error가 발생합니다.varfirstname;
varfirstName;
, var FIRSTNAME;
각각 별개의 변수입니다. 대소문자 구분이 확실해야 합니다.var person
, $elem
, _name
, frist_name
, val2
권장하지 않습니다.var first_name;
- 스네이크 케이스var firstName;
- 카멜 케이스var FirstName;
- 파스칼 케이스var strFirstName;
- type + identifiervar $elem = document.getElementById('myId);
- DOM 노드var observable$ = fromEvent(document, 'click');
- RxJs 옵저버블'Hello'
, 불리언은 true/false
, null은 null
, 배열은 [1, 2, 3]
, 함수는 function() {};
처럼 이런 약속된 기호 코드를 말합니다.// 리터럴 표현식 (정수 리터럴, 문자열 리터럴)
10
'Hello'
// 식별자 표현식 (이미 선언했다고 가정)
sum
person.name
arr[1]
// 연산자 표현식
10 + 20
sum = 10
sum !== 10
// 함수/메서드 호출 표현식 (이미 선언했다고 가정)
square()
person.getName()
// 변수 선언문
var x;
// 할당문
x = 5;
// 함수 선언문
function foo () {};
// 조건문
if (x > 1) { console.log(x); }
// 반복문
for (let i = 0; i < 5; i++) {
console.log(i);
};
function foo () {
return {
} // ASI 동작은 return; {};로 수행
} // 개발자는 return {};로 예상
console.log(foo()); // undefined
var bar = function () {}