목록javascript (11)
Hi
자바스크립트를 사용하다 보면 var는 사용하지 말라고 한다.그 이유는 무엇인지 var, let, const의 차이와 함께 정리해 보았다.📌 Scope스코프는 변수에 접근할 수 있는 범위를 의미한다.자바스크립트에서는 크게 3개의 스코프로 나눌 수 있다. 1. Function Scope (함수 스코프)함수 스코프에 선언된 변수는 해당 함수 내에서만 접근 가능하다.var로 선언한 변수는 함수 스코프를 갖는다.function main() { var x = "hi"; console.log(x); // hi 출력}main();console.log(x); // Error 함수 내부에서 var를 사용한다면?var는 블록 스코프를 무시하기 때문에 변수 값이 덮어씌워진다. function main() { ..
항상 파이썬으로만 알고리즘을 풀다가 자바스크립트로 풀어봤다!입력 처리부터 에디터 사용 방식까지 많이 달라서 처음 시작하는 방법에 대해 정리해보려고 한다. 💡 input 받기파이썬으로 풀 때 매번 input값을 입력하는 게 귀찮아서 텍스트 파일을 만들어서 썼었다.import syssys.stdin=open('input.txt') 자바스크립트로 풀 때도 이 방법으로 풀면 꽤 편하다.단! 파이썬으로 문제 제출할 때는 해당 코드를 지워야 했었는데 자바스크립트는 코드 수정이 필요하다.const fs = require("fs");// 연습const input = fs.readFileSync("input.txt").toString().trim();// 백준 제출const input = fs.readFileSync(..
타입 추론타입 추론이란타입이 정의되어 있지 않은 변수의 타입을 자동으로 추론한다.let a = 10;// number 타입으로 추론 모든 타입을 추론하는 것은 아님함수의 매개 변수 타입은 자동으로 추론할 수 없다.// 오류 발생function func(param) {} 타입 추론이 불가능한 변수에는 암시적으로 any 타입이 추론 됨. 타입 추론이 가능한 상황1. 변수 선언일반적인 변수 선언시 초기값을 기준으로 추론된다.let a = 10;// number 타입으로 추론let b = "hello";// string 타입으로 추론let c = { id: 1, name: "이정환", profile: { nickname: "winterlood", }, urls: ["https://winterlo..
기본 타입의 호환성let num1: number = 10;let num2: 10 = 10;num1 = num2; // ✅ OK => 업캐스팅num2 = num1; // ❌ NO => 다운캐스팅 객체 타입의 호환성type Animal = { name: string; color: string;};type Dog = { name: string; color: string; breed: string;};let animal: Animal = { name: "기린", color: "yellow",};let dog: Dog = { name: "돌돌이", color: "brown", breed: "진도",};animal = dog; // ✅ OKdog = animal; // ❌ NO Animal 타입 ..
타입과 집합타입은 여러 개의 값을 포함하는 "집합" ex)number 타입 : 여러 개의 숫자 값들을 묶어 놓은 집합number literal 타입 : 딱 하나의 값만 포함하는 집합 number → 슈퍼타입(부모타입)number literal type → 서브타입(자식타입) 타입 계층도 타입 호환성: 어떤 타입을 다른 타입으로 취급해도 괜찮은지 판단하는 것 업 캐스팅 : 서브타입의 값을 슈퍼 타입의 값으로 취급 ↔ 다운캐스팅업캐스팅은 모든 상황에 가능하지만 다운 캐스팅은 대부분 불가능 unknown 타입 (전체 집합)모든 타입의 값 할당 가능(모든 타입은 unknown 타입으로 업 캐스트 가능) unknown 타입의 값은 any를 제외한 어떤 타입의 변수에도 할당할 수 없음function un..
2025.01.24 - [Frontend/TypeScript] - [TypeScript] 타입(type) (1)2025.01.26 - [Frontend/TypeScript] - [TypeScript] 타입(type) (2)2025.01.26 - [Frontend/TypeScript] - [TypeScript] 타입 별칭 / 인덱스 시그니쳐열거형 (Enum) 타입자바스크립트 존재 X여러 개의 값을 나열하는 용도// enum 타입// 여러가지 값들에 각각 이름을 부여해 열거해두고 사용하는 타입enum Role { ADMIN = 0, USER = 1, GUEST = 2,}const user1 = { name: "이정환", role: Role.ADMIN, //관리자};const user2 = { na..
2025.01.24 - [Frontend/TypeScript] - [TypeScript] 타입(type) (1)2025.01.26 - [분류 전체보기] - [TypeScript] 타입(type) (2) 타입 별칭 (Type Alias)type 타입이름 = 타입 형태로 타입 정의type User = { id: number; name: string; nickname: string; birth: string; bio: string; location: string;};let user: User = { id: 1, name: "이정환", nickname: "winterlood", birth: "1997.01.07", bio: "안녕하세요", location: "부천시",};let user2:..
2025.01.24 - [Frontend/TypeScript] - [TypeScript] 타입(type) (1)객체 타입object로 정의하기let user: object = {id: 1,name: "이정환",}; 하지만user.id;위와 같은 점 표기법으로 객체의 프로퍼티에 접근하면 오류가 발생! 타입스크립트의 object 타입은값이 객체임을 표현하는 것 외에는 정보 제공 X 해결방법은 객체 리터럴 타입 이용해야 함! 객체 리터럴 타입중괄호를 열고 객체가 갖는 프로퍼티를 직접 나열let user: { id: number; name: string;} = { id: 1, name: "이정환",};user.id; 구조적 타입 시스템property based type system프로퍼티를 기준으로..