자바스크립트 4장을 읽고.

null·2023년 1월 29일
0

표현식

  • 어떤 값으로 평가 되는 구절로 단순 상수, 변수 이름도 표현식으로 부를 수 있고, 배열 객체 초기화 표현식, 함수 정의 표현식, 프로터티 접근 표현식, 호출 표현식, 객체 생성 표현식이 있다.

  • 배열 초기화 표현식 내의 요소 표현식은 배열 초기화 표현식을 평가할 때마다 평가하기 때문에 결과가 달라질 수 있다.
    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에 있는 요소 
  • 옵셔닝 체이닝. ?.를 이용한 프로퍼티 접근은 단축 평가다 ! 즉 ?.의 왼쪽에 있는 하위 표현식이 null, undefined인지만 체크. 그래서 실제 뭔지까지는 체크 안 해. 무튼 그래서 둘 중 하나라면 더는 프로퍼티에 접근 하지 않고 전체 표현식을 undefined로 평가 해준다 !

연산자

  • +
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:
  • 변수를 key 이름으로 사용할 경우
let company = {
	name: '여기어떄'
}

let key: 'type';
company[key]: '여행';

console.log('company', companny); // name: '여,,', type: '여행'
  • 객체 내부가 정의되지 않은 경우에도 접근 가능
profile
개발이 싫어.

0개의 댓글