02. JavaScript 기본 문법 with 자바스크립트 제대로 배워볼래?(Section 01)

oh_bom·2022년 10월 5일
0

스터디 2주차 🐬
-JS 강의 섹션1(자바스크립트 기본 문법)까지 듣기

JavaScript

section 0. 개발환경: Visual Studio Code

Section 01. 자바스크립트 기본 문법

1. user snippets 설정

File-preference-configure user snippets
이순서로 들어가서 원하는대로 html 기본구조를 설정하면 시작할때마다 코드를 치지 않고 바로 불러 올 수 있다.

<!DOCTYPE html>
<head>
    <title>Document</title>
</head>
<body>
    <script></script>
</body>
</html>

나는 개발자의 품격님을 따라 같게 구조를 만들었다.

2. var,let,const 선언자

1. var 선언자

        var x=5;
        var y=3;
        var z=x+y;

        console("x, y, z",x,y,z);

        var x=7;//재선언이 동일한 변수명으로 가능
  • 단점: 위쪽 코드에서 선언한지 모르고 쓰다가 아래에서 다시 선언했을때, 코드가 꼬일수도 있다..

2. let 선언자

     let x1=5;
     let y1=6;
     let z1=x1+y1;

    // let x1=7;//let은 재선언은 안됨
     x1=7;//재할당은 가능. 
  • let으로 선언했다면 같은 변수를 다시 let을 이용하여 재선언은 불가. 대신 값자체의 재할당은 가능
  • 장점: 전에 이미 선언했던 변수라면 재선언이 불가능하기에, 다른 용도로 같은 변수를 두번써버려서 생기는 불상사 방지 가능.

3. const 상수

const PI=3.14;
  • 상수는 선언 이후엔 값 변경 불가.

3. 데이터 타입

1. String 문자열

let name="ohbom";
        let name2='lala';

        let doubleQuote='She is called "ohbom"';//""를 출력할 문자열안에 쓰고싶을때
        
        let doubleQuote2="She is called \"ohbom2\"";//""를 출력할 문자열안에 쓰고싶을때
  • ""를 출력할 문자열 안에 쓰고 싶을때는 ''로 그 문자열을 묶기 or "로 묶을 문자열의 "앞에 \를 붙이기.

2. undefined 와 null

        let u;//or let=undefined;
        console.log(u);
        
        //null (undefined랑 다름)
        let n=null;
        console.log(n);
  • 강의 듣고도 잘 모르겠어서 검색 해본 결과
    -> undefined는 변수선언만 된 것, 자료형이 없음, 따라서 typeof해보면 undefined출력

    null은 변수선언이 된 빈 객체, 따라서 typeof로 자료형을 출력하면 object로 뜬다.

3. object

  • 선언 방법1

    let person={};
    person.firstName="bom";
    person.lastName="oh";
  • 선언 방법2

    let person={};
    person["firstName"]="bom";
    person["lastName"]="oh";
    //추가하고 싶을땐
    person.email="xxx@gmail.com";
    
  • 선언 방법 3

    let person2={
    firstName:"bom",
    lastName:"oh",
    age:23
    };

4. 배열 array

let arr1=[1,2,3,4,5];

//배열안에 여러개의 데이터 타입 담을 수 있음
let arr2=[1,"ohbom",person,undefined];
  • 참고: typeof array는 object

4. 64비트 부동 소수점

  • JavaScript는 연산을 할때 2진수로 바꾼후 계산한다. 1/3 처럼 무한소수인 경우에는 64비트라는 공간을 넘어가버린다. 그런 경우에는 반올림을 하여 수를 표현하기 때문에 연산을 할때 다른 값이 도출될수도 있다.

    계산이 다르게 도출될 수있는 경우 ex)

  • 0.1+0.2 출력시

  • integer의 max값 이상인 수를 표현할때

    console.log(Number.MAX_SAFE_INTEGER+1);
    

"결론!! 연산할때는 js고유 연산자 보다는 다른 라이브러리를 사용하자!"

  • 외부 library 추천
    • BigNumber.js
    • Big.js
    • Decimal.js

5. 비교연산자 사용시 주의사항

console.log(1=="1");//true
        //data타입이 달라서 f일때도 있고,t할때도있음
        console.log(1==="1");//false
        // !! === 이면 데이터 타입까지 같은지 확인

'==' 로만 비교하게 되면 data type이 달라도 달라도 같다고 할 수 도 있다. 1은 integer이고, "1"은 string이지만 true를 리턴할수도 있다. 그래서 데이터타입까지 같은지 확인하고 싶을때는 '==='를 이용하면 된다.

6. 반복문

1. for-in (index읽기)

  • 예시 1(integer 배열)
 let numbers=[1,2,3,4,22];
        for(var i in numbers){
            console.log(numbers[i]);
        }
  • 예시 2 (object)
person={
            firstNmae:"oh",
            lastName:"bom",
            age:22
        }

        for(var key in person){
            console.log(person[key]);
        }
  • object 선언방법1 로 했다면 person.key로 배열을 돌려야 하는데 그건 불가능하다. 왜냐하면 person.key는 person이라는 객체에 key값이 있다는것이 되기 때문이다.

    따라서 객체를 for문으로 읽고 싶다면 obejct선언방법2를 이용하여야 한다.

2. for-of (값을 읽는 거)

for(var num of numbers){
            console.log(num);
        }
profile
목표는 감자탈출

0개의 댓글