let word; // 변수 선언 (Declaration)
word = 'Branden'; // word 에 string 할당 (Assignment)
let word = 'Brenden'; // 선언과 할당 동시 가능
let cheese;
console.log(cheese); // undefined(할당된 값 없음)
표현식이란 하나의 값으로 표현되는 코드를 의미한다.
// s = d / t
let speed, distance = 10, time = 2;
speed = distance / time; // 표현식
// a, b = parameter(매개변수)
// 함수호출시 실제로 들어가는 값 = argument(인자)
// 선언식
function add(a, b) {return a + b;}
add(1, 10); // 11
// 함수 표현식 (변수에 할당)
let add = function (a, b) {return a + b;}
add(1, 10); // 11 (함수 호출)
// 화살표 함수 (ES6)
let add = (a, b) => a + b;
function noReturn() {console.log('Hello');}
let result = noReturn(); // undefined;
// return 값이 없으면 undefined 를 return 한다.
10 + '10' // "1010"
10 - '10' // 0 (*, /, % 연산도 arithmatic 연산을 함)
'string' + 10 // "string10"
'string' - 10 // NaN (*, /, % 연산도 결과가 같다)
'string' + '10' // "string10"
'string' - 10 // NaN (*, /, % 연산도 결과가 같다)
// convert to number
Number('99'); // 99
// convert to string
String(99); // '99'
<
>
<=
>=
===
!===
==
, !=
는 type 을 엄격하게 비교하지 않는다. (C++ 같은경우 타입이 다르면 비교자체가 불가하다.) JS Equality Table// AND &&
// OR ||
// NOT ! : 값을 반전시킨다.
!undefined // true
!'Hello' // false
truthy, falsy 값의 의미
false
, null
, undefined
, 0
, NaN
, ''
는 falsy 값이다.논리 연산자의 결과에 Boolean 이 아닌 값이 들어갈 수 있다.
// OR 연산자는 truthy 한 값을 만나면 그 값을 출력한다.
// 둘다 falsy 할 경우 뒤에 있는 값을 출력
undefined || 10 // 10
5 || console.log('a') // 5 (평가순서는 왼쪽부터)
undefined || false // false;
// AND 연산자는 falsy 한 값을 만나면 그 값을 출력
// 둘다 truthy 할 경우, 뒤에 있는 값을 출력
undefined && 10 // undefined
5 && false // false
5 && 10 // true