// 변수 선언문
var x;
// 표현식 문(할당문)
x = 5;
// 함수 선언문
function foo () {}
// 조건문
if (x > 1) { console.log(x); }
// 반복문
for (var i = 0; i < 2; i++) { console.log(i); }
// 변수 선언문은 표현식이 아닌 문이다.
var x;
// 할당문은 그 자체가 표현식이지만 완전한 문이기도 하다. 즉, 할당문은 표현식인 문이다.
x = 100;
// 표현식인 문은 값처럼 사용할 수 있다
var foo = x = 100;
console.log(foo); // 100
- 원시타입 : 숫자, 문자열, 불리언, undefined, null, symbol
- 객체타임 : 객체, 함수, 배열 등
// 모두 숫자 타입이다.
var integer = 10; // 정수
var double = 10.12; // 실수
var negative = -20; // 음의 정수
// 문자열 타입
var string;
string = '문자열'; // 작은따옴표
string = "문자열"; // 큰따옴표
string = `문자열`; // 백틱 (ES6)
string = '작은따옴표로 감싼 문자열 내의 "큰따옴표"는 문자열로 인식된다.';
string = "큰따옴표로 감싼 문자열 내의 '작은따옴표'는 문자열로 인식된다.";
(``)
을 사용해 표현한다.\' 따옴표 single quote
\" 쌍따옴표 double quote
\ 역슬래시 single backslash
\b 백스페이스 backspace
\r 캐리지 리턴 carriage return
\n 줄바꿈 newline
\s 스페이스 space
\t 수평탭 tab
\v 수직탭 tab
\f 폼피드 form feed
\0 null
var template = '<ul>\n\t<li><a href="#">Home</a></li>\n</ul>';
console.log(template);
🔻 출력 결과
/*
<ul>
<li><a href="#">Home</a></li>
</ul>
*/
var first = 'Jihee';
var last = 'Lee';
console.log('My name is' + first + '' + last +'.'); 👉 ES5 문자열 연결
console.log(`My name is ${first} ${last}.`}; 👉ES6 문자열 연결
typeof연산자는 연산자 뒤에 위치한 피연산자의 데이터 타입을 문자열로 반환한다.
var foo;
console.log(typeof foo); // undefined
foo = 3;
console.log(typeof foo); // number
foo = 'Hello';
console.log(typeof foo); // string
foo = true;
console.log(typeof foo); // boolean
foo = null;
console.log(typeof foo); // object -> 암기할 수 밖에 없음
foo = Symbol(); // 심벌
console.log(typeof foo); // symbol
foo = {}; // 객체
console.log(typeof foo); // object
foo = []; // 배열
console.log(typeof foo); // object
foo = function () {}; // 함수
console.log(typeof foo); // function
자바스크립트의 변수는 선언이 아닌 할당에 의해 타입이 결정된다. 그리고 재할당에 의해 변수의 타입은 언제든지 동적으로 변할 수 있다.
이러한 특징을 동적 타이핑이라고 하며,
자바스크립트를 정적 타입 언어와 구별하기 위해 동적 타입 언어라 한다.