목록분류 전체보기 (85)
신비한 개발사전
동적 언어자바스크립트는 동적 언어라고 한다. 데이터의 타입이 제대로 정의되었는지를 코드가 실행중일 때 확인한다는 것이다. 정적 언어인 C언어나 자바(Java)는 코드를 실행하기 전에 컴파일 단계에서 타입을 확인하기 때문에, 잘못 정의된 타입이 있으면 코드를 컴파일하기 전에 에러가 발생한다. 사전에 타이핑 실수로 인한 코드 오류를 발견할 수 있다. 하지만 자바스크립트는 타입 정의를 미리 확인하지 않는다. 따라서 코드 로직에 데이터 타입을 잘못 사용하는 허점이 있으면 자바스크립트 코드가 한창 실행되고 있을 때 에러가 발생하기 십상이다. 타입스크립트(TypeScript)타입스크립트는 자바스크립트도 정적 언어처럼 컴파일할 때 타입 체킹을 할 수 있도록 자바스크립트에 타입을 추가한 언어다. 타입스크립트로 코드를 ..

알고리즘 문제와 씨름하던 도중, 어떻게 동작하는지 이해할 수 없는 함수가 있어서 챗GPT한테 물어보기로 했다.function solution(n){ var count = 1; var sum=0; while( count=n ){ sum = sum + n--; count++; } return sum;} 1부터 인자로 받은 n까지의 숫자를 더해주는 함수다. while문 안의 `sum = sum + n--`가 `sum += n` 와 `n - 1`를 합친 것과 같은 동작을 한다는 것은 알겠는데, while문이 왜 무한으로 반복되지 않는지가 이해되지 않아서 챗GPT의 도움을 받기로 했다. 먼저 위 코드가 무엇을 하는지 포괄적인 질문을 해봤다. 단계별로 무슨 일이 일어나는지 친절하게 설명해주지만,..
프로그래밍 언어에 사용되는 연산자를 공부하다가 난해한 문제를 만나버렸다. ++x+++y 연산자가 어디에 몇 개가 붙느냐에 따라서 숫자들이 더해지기도 하고 덧셈 뺄셈이 안되거나 아예 오류가 나기도 하는데.. 특히 증감 연산자가 있을 경우 혼란이 가중된다. 코딩할 때 혼선이 없도록 정리하자. 아래와 같은 문제가 주어졌을 때: var x = "5"; var y = 10; console.log(x+++y); // 15 출력 console.log(++x+++y); // 에러 첫번째로 찍히는 console 로그는 숫자가 출력되는데, 두번째는 에러가 발생한다. 첫번째 문제는 어떻게 계산해야 할지 컴퓨터가 이해할 수 있지만, 두번째 문제는 그렇지 않기 때문이다. x+++y 같은 연산자 3개가 연속으로 있기 때문에 이 ..
프로그래밍에는 반복문이라는 개념이 있다. 똑같은 작업을 몇번 계속해서 실행해야 할 경우, 같은 코드를 한줄 한줄 다시 붙여넣을 필요 없이 컴퓨터가 자동으로 실행시켜준다는 것이다.예를 들어서 콘솔에 숫자를 세는 메세지를 찍고 싶을 때...console.log("0");console.log("1");console.log("2");console.log("3");console.log("4");console.log("5"); 위처럼 console.log 함수를 내용물만 바꿔서 쓰는 대신, 반복문을 사용해 한줄로 축약할 수 있다.반복문에도 여러가지 종류가 있으며, 상황에 따라 특정 반복문을 더 효과적으로 사용할 수 있기도 하다. for 반복문반복문은 기본적으로 { } 사이에 있는 함수를 종료 조건에 도달할 때까지 ..
변수는 무엇인가?변수는 컴퓨터가 연산에 활용하는 "데이터"를 저장할 수 있는 일종의 공간이다. 이 공간에 저장된 데이터는 프로그램의 코드가 실행되는 동안 언제든 불러올 수 있다.모든 변수에는 이름이 붙여진다. 프로그램을 실행하면서 우리는 변수의 이름을 사용해 데이터를 불러오게 된다. 변수에 이름을 지어주는 것을 "선언"이라 한다.변수에 데이터를 저장하는 것을 "정의"라 한다. 변수는 선언과 동시에 데이터를 갖게 되거나, 또는 일단 선언만 되고 나중에 그 변수에 데이터 값이 정의될 수도 있다. (예외의 경우도 있다) JavaScript에는 변수에 여러가지 종류가 있다.var: var에 속한 데이터는 언제든지 다른 데이터로 채울 수 있다. var 변수는 이름이 선언되기 전에 데이터를 저장할 수 있다.let:..