[서버_weeek1] 자바스크립트, 타입스크립트 기초

자바스크립트

  • 변수

    • var - 함수 레벨 스코프
    • let, const - 블록 레벨 스코프

    그냥 let 쓰자


  • 변수 콘솔에 출력

    console.log("x = ${x}")



  • 함수 작성법
    함수 선언식

     function ([매개변수1], ... ){
     
     }

    함수 표현식은 다음과 같다

    let add = (x, y) => {
    		return x + y
    }

    함수 표현식이란, 실행 흐름이 해당 부분에 도달했을 때 함수가 생성되고 사용 가능해지는 함수 표현법을 말한다.


    자바스크립트에서 함수는 행위를 나타내는 것이 아닌, 변수에 담을 수 있는 값이라고 생각하면 좋다. 자스에서 함수는 변수에 담거나 반환값으로 출력하거나 파라미터에 넣을 수 있다.

    const console_age = (age) => {
    	console.log("제 나이는 ${age}세 입니다");
    }
    
    const foo = (func, age) => {
    	func(age)
    }
    
    foo(console_age, 23);
    

    foo 함수는 다른 함수를 매개변수로 받고 있다.


  • 배열 출력과 map
    자바스크립트에서는 map 함수를 통해 기존 배열에 변주를 주어 새로운 배열을 만들 수 있다

let arr = [2, 3, 4, 5]
let newArr = arr.map(x => x*x);

newArr에는 4, 9, 16, 25 값이 담긴다

  • 객체
    프로퍼티의 정렬되지 않은 집합. 프로퍼티는 키와 값으로 이루어져 있다
const meal(){
	breakfast : "시리얼",
    lunch : ["밥", "국"],
    lunch_print : function() {
    	this.lunch.map(x => {
        	concole.log(x)
        });
    }
}


타입스크립트

자바스크립트와 비슷하지만 타입을 보다 명확하게 명시해줘야 한다

let name: string = "이름"
let arr1: number[] = [2, 3, 4] // 숫자로 된 배열
let arr2: Array<number> = [1, 2, 3] // 숫자로 된 배열2

function add(x : number, y:number): void{
	console.add(x + y);
}

함수의 파라미터와 리턴값에도 타입을 지정한다


  • object vs Object
    • Object: 자바스크립트의 모든 타입을 받을 수 있음. 자바 Object랑 비슷한듯?
    • onject: 원시타입 제외 모든 타입을 받을 수 있음
      원시타입 - 데이터를 복사해서 값을 넣음
      참조타입 - 데이터의 주소를 참조함

  • null과 undefined는 이름 그대로가 타입이다
var x : null = null; 
var y : undefined = undefined;
// var x : null = 1; 오류남

  • 타입 단언
    이 타입이다! 라고 개발자가 단언해주는 거임
let meal: any = "짜장면";
// 방법 1
let mealLength1: number = (<string>meal).length;
// 방법 2
let mealLenth2: number = (meal as string).lenth;

meal이라는 변수는 any(아무 타입의 값이나 할당 가능)로 선언되었지만, 타입 단언을 통해 string이라고 자바스크립트에게 알려주고 있음


  • 인터페이스
    객체는 콤마로 끝나지만 인터페이스는 세미콜론으로 끝낸다
interface student{
	name: string; 
    age?: number; 
    major: string[]; 
}

const a: student = {
	name: "홍길동",
    major: ["미디어", "컴공"]
}

인터페이스 안에서 뒤에 ?가 붙은 걸 선택적 프로퍼티라고 한다. 인터페이스로 객체를 만들 때 있어도 되고 없어도 되는 값이다


아래처럼 배열로도 가능하다

const student_arr : Array<student> = [
	{
    	name: "학생 1",
        age: 20,
        major: ["경영", 미디어]
    },
    {
    	name: "학생 2",
        major: ["행정", "경영"]
    }
   
]

student_arr은 student 타입의 객체로 이루어진 배열이다

좋은 웹페이지 즐겨찾기