본문 바로가기

자스스터디

7,8,9장

7장-연산자

 

 

산술연산자: 수학적 계산을 수행해 새로운 숫자 값을 만든다.

 

let x=1;
console.log(+x); //1
console.log(x);//'1'
x=true;
console.log(+x);//1
console.log(x);//true
x=false;
console.log(+x);//0
console.log(x);//false
x='Hello';
console.log(+x);//NaN
console.log(x);//'Hello'

여기서 처음 알게 된 점은 변수 앞에 +하나 붙이면 숫자타입으로 변환이 된다는 것이다!

 

 

할당연산자: 우항에 있는 피연산자의 평가결과를 좌항에 있는 변수에 할당한다.

비교연산자: 비교 후 결과를 불리언 값으로 반환한다.

등등은 알고 있던 내용이라 생략한다.

 

 

8장 - 제어문

블록문

//블록문
{
    let foo=10;
}
//제어문
let x=1;
if(x<10){
    x++
}
//함수 선언문
function sum(a,b){
    return a+b;
}

 

조건문

let num=2;
let kind;

//if문
if(num>0){
    kind='양수';
}
console.log(kind);//양수

//if~else문
if(num>0){
    kind='양수';
}else{
    kind='음수';
}
console.log()kind//양수

if~else if문
if(num>0){
    kind='양수';
}else if(num<0){
    kind='음수';
}else{
    kind='영';
}
console.log(kind);

등등도 아는 거라 패스.

 

9장- 타입변환과 단축 평가 
let x=10;
let str=x.toString();
console.log(typeof str, str)// string 10
console.log(typeof x, x)//number 10

 

변환 된 게 아니다

 

'10'+2//102
5*'10'//50

간단하게 적어 본 위 코드처럼 더하기를 제외하고 모두 숫자취급하여 연산 후 출력된다.

더하기만 문자취급을 받아서 옆으로 나열된다.

 

[9장의 요약]

false로 평가되는 값

  • false
  • undefined
  • null
  • 0.-0
  • NaN
  • ''(빈문자열)

toString()을 쓰면 문자열이 아닌 값을 문자열로 바꿀 수 있다 (이부분 모르고 있었다.)

String(1);
String(NaN);
String(Infinity);
String(true);
String(false);
(1).toString();
(NaN).toString();
(Infinity).toString();
(true).toString();
(false).toString();

 

 

parseInt, parseFloat를 쓰면 숫자타입으로 바꿀 수 있다!(이 부분도 모르고 있었다.)

Number('0')
Number('-1')
Number('10.53')
Number(true)
Number(false)
parseInt('0')
parseInt('-1')
parseFloat('10.53')

 

 

 

옵셔널 페이닝 연산자?.....

좌항이 null 또는 undefined인 경우 undefined반환. 그렇지 않으면 우항의 프로퍼티 참조한다는데..

즉, 변수를 통해 변수값을 참조하듯이 객체의 프로퍼티에 접근해 프로퍼티 값을 참조하는 것이다.

이게 뭔 소리인가...

elem?.value나 elem&&elem.value 등의 형식을 이용하여 falsy값 또는 undefined 등 앞 조건을 만족하면 그대로 평가되고 아니면 연산자 뒤에 있는 elem.value 등을 참조한다.

이부분도 새롭게 알게 된 내용이다.

 

let elem = null;
let value=elem?.value;
console.log(value);

예제 코드 처럼, elem이 null, undefined면 그대로 , 그렇지 않으면 우항의 프로퍼티 참조로 이어진다.

즉, null로 초기화 되어있으니까 undefined가 출력된다.