Study 4

Ts:두번째 변수

// readonly는 실행은 가능하되 변수변경 불가 type player = { readonly name:Name, age?:Age } Ex) nico.name = "jung" // error Ex2) const numbers: readonly number[] = [1, 2, 3, 4] numbers.push(1) // error Ex3) //튜플 const player2: readonly [string, number, boolean] = ["nico", 1, true] player2[0] = 1 // error -> 이중검증 (1) 0번째 index의 타입이 맞지않음 (2) readonly로 변경 보호 Ex4) // null, undefined let a : undefined = undefined l..

Ts:변수의 지정 및 재사용

// 타입재사용 가능 type Age = number; // 타입지정 type Name = string; // 타입지정 type player = { name:Name, age?:Age // ?-> optional } //함수 선언식 function playerMaker(name:string) : player { // 리턴타입 지정(:player) => 리턴타입은 위 type player에서의 //타입값을 재사용 return { name } } //함수 표현식도 동일하게 리턴값 지정 const playerMaker = (name:string) : player => ({name}) const nico = playerMaker("nico"); nico.age = 12

Js:변수 및 호이스팅

(1)호이스팅 => 함수가 실행되기 전 함수 안에 필요 변수값들을 모두 모아 유효범위 최상단에 선언 -> 자바스크립트 parser가 함수 실행 전 함수를 한번 훑음 -> 함수안에 존재하는 변수 / 함수선언에 대한 정보를 기억하고 실행시킴 -> 유효범위 : 함수 블록 {} *실제로 코드가 변화되는건 아니고 parser 내부적으로 끌어올려서 처리 -> 메모리상 변화는 없음 * var 변수 선언과 함수선언문에 대해서만 호이스팅이 일어남 let/const 변수 선언과 함수표현식에서는 호이스팅이 일어나지 않음 EX) 함수선언문 / 함수표현식 -함수선언문- function abc() { console.log("hellomello"); } -함수표현식- var abc = function() { console.log(..

가벼운 Js VS Ts

Js vs Ts -안정성- -> 타입 안정성 : 자바스크립트에서는 타입을 자동으로 지정해주는 대신 그만큼 타입에 대한 안정성이 떨어짐 --> 자바와 타 언어들과 동일하게 타입을 지정을 하여 개발 진행 / 그만큼 자바스크립트가 유연하나 말도안되는 코드가 실행됨 ex)Js : [1, 2, 3, 4] + false => '1, 2, 3, 4false' ==> 첫째로 배열이 사라지고 String 바뀜 ==>둘째로 false라는 boolean 값이 String 으로 바뀜 ex2) function divide(a, b) { return a / b } divide("wow"); ==> NaN ===> 에러가 발생하지않고 실행됨 / 에러에 대한 보호가 이뤄지지 않아 위험성이 높음 ex3) const name = { n..