ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Day 23] JS 변수와 숫자 자료형, 관련 함수(메서드)
    TIL/멋쟁이사자처럼 FE스쿨 2기 2022. 4. 28. 23:11
    SMALL

    오늘부터 본격적으로 매운맛 자스 출발~

    여기서 자스는 스크립트 언어!

     

    변수 == 변할 수 있는 수/정보

    변수는 선언하고 할동하고 사용할 수 있으며, 변할 수 있는 수이므로 값을 바꿀 수 있다.

     

     

    자바스크립트에서 변수를 선언할 때

    var

    let

    const

    키워드를 사용할 수 있다. 

    (이 셋의 차이는 나중 수업에서 배우고 다시 정리)

     

    전역변수와 지역변수가 있는데,

    만약 위와 같은 선언 키워드가 없이 할당된다면 전역으로 선역된다.

    (예) a =10 전역

     

    변수에 사용될 수 있는 자료형은 다음과 같다.

    typeof 'hello world'   // String
    typeof 100             // Number
    typeof NaN             // Number
    typeof true            // Boolean
    typeof undefined       // undefined
    typeof Symbol()        // Symbol
    typeof null            // Object
    typeof []              // Object
    typeof {}              // Object
    typeof function () {}  // function
    typeof /정규표현식/gi   // Object
    
    // Object.prototype.toString.call(데이터).slice(8, -1);
    // 로 확실하게 알 수 있다.

    NaN이 number일줄은 정말 몰랐다...! 

     

    자료의 형태는 크게 두가지로 나눌 수 있는데,

    원시자료형과 객체자료형으로 나뉜다.

     

    오늘은 원시자료형에 대해 배웠는데, 원시자료형엔 

    String, Number, Boolean, Undefined, Symbol, Object가 있다.

     

    [원시자료형의 특징]

    - 그 자료형에 맞는 리터럴 표현이 있다.

    -원시자료형이 저장된 변수를 다른 변수에 할당하면 값 자체가 복사되고,

    복사된 변수를 변경해도 원래 변수는 변하지 않는다.

    var num1=1;
    var num2=2;
    
    num2=num1;
    console.log(num2) //1
    num1=10;
    console.log(num2) //1
    let str ="hello";
    str[0]='p';
    console.log('hello');
    
    //pello가 되지 않는다.

    두번째 예시에선 0번째 인덱스의 값을 p로 할당해 다시 콘솔 로그를 하면

    pello가 될 것 같지만 실제론 hello를 콘솔에 출력한다..!

    이 경우를 재현님께서 정확한 건 아니지만 자바스크립트의 부드러운 에러(?)라고 하셨는데,

    좀 더 배우고 나서 다시 정리가 필요할 것 같다!

     

     

     

    Number 관련 함수와 메서드

    let n =10000;
    let s = '10,000,000';
    let nFloat=10000.1211312
    
    console.log(n.toLocaleString()) //10,000
    console.log(s.replace(/,/g,'')) //10000000
    console.log(parseInt(s,10)) //10
    console.log(n.toFixed(10)) //10000.0000000000
    console.log(nFloat.toFixed(3)) //10000.121
    
    console.log(Number(true)) //1
    console.log(Number(false)) //0
    console.log(Number(''))  //0
    console.log(Number(' ')) //0
    console.log(Number('hello')) //NaN
    console.log(Number('10 20')) //NaN
    console.log(Number('10     ')) //10
    console.log(Number('     10'))//10
    console.log(Number('     10     '))//10
    
    console.log(Math.round(4.7)) //5
    console.log(Math.pow(2, 8)) //256
    console.log(Math.sqrt(64)) //8
    console.log(Math.abs(-5)) //5
    console.log(Math.random()) //0.08938287481938789
    반응형

    댓글

Designed by Tistory.