어떤 값으로 평가 되는 구절로 단순 상수, 변수 이름도 표현식으로 부를 수 있고, 배열 객체 초기화 표현식, 함수 정의 표현식, 프로터티 접근 표현식, 호출 표현식, 객체 생성 표현식이 있다.
배열 초기화 표현식 내의 요소 표현식은 배열 초기화 표현식을 평가할 때마다 평가하기 때문에 결과가 달라질 수 있다.
let array: [1,,,,5]
콤마 사이의 값을 생략하면 정의되지 않은 요소가 그 자리에 들어간다.
자바스크립트에서 expression.identifier
, ecpression [expression]
방식을 통해 프로퍼티에 접근 가능하다. .
이나 [
앞에 표현식을 첫 번째로 평가한다. 그 값이 null / undefinded 면 typeError! 아래 예시로 한 번 더 쳌!
let o ={x: 1, y: {z:3}};
let a = [0, 4, [5,6]];
o["x"] //1 객체 o의 프로퍼티 x
a[1] //4 표현식 a의 인덱스 1에 있는 요소
a[2]["1"] 5 표현식 a[2]의 인덱스 1에 있는 요소
+
1+2 // 3 덧셈
"1"+"2" // "12" 병합
"1"+2 // "12" 숫자를 문자열로 변환 > 병합
1+{} // "1[object Object]" 객체를 문자열로 변환 > 병합
true+true // 2 bool 숫자로 변환 > 덧셈
2+null // 2 null 0으로 변환 > 덧셈
2+undefined NaN
&&
: 오른쪽에 있는 피연산자를 평가할 수도, 안 할수도 있다는 사실을 이해해야 한다. 옵셔널체이닝처럼 단축평가. 왼쪽이 false > 전체적인 값이 false. 왼쪽이 true > 오른쪽이 true면 전체적으로 true, 오른쪽이 false면 전체적인 값이 false.
||
: &&와 다르게 두 피연사 중 하나라도 true 같은 값이면 이 연산자는 true 같은 같을 반환한다 ! 왼쪽이 true다? 그럼 단축평가로 바로 true 되는거다. 그래서 이건 사용하기가 까다로움.. 몇가지 변수 중에 첫 번째로 등장하는 true 같은 값을 선택하려고 할 때 이용.
. 점말고 대괄호 표기법만 사용할 수 있는 경우?
let jonny = {
age: 20;
number: '010-000-0000';
}
function changeType(obj, property, val) {
obj.property = val;
}
changeType(jonny, age, 30); //Uncaught ReferenceError:
function changeType(obj, property, val) {
obj[property] = val;
}
changeType(jonny, age, 30); //Uncaught ReferenceError:
let company = {
name: '여기어떄'
}
let key: 'type';
company[key]: '여행';
console.log('company', companny); // name: '여,,', type: '여행'