본문 바로가기

JavaScript48

JavaScript의 강제변환 - 1 (Coercive Type Conversion of JavaScript) 자바스크립트에서는 프로그래머가 의도했건, 그렇지 않건 강제적 타입변환이 일어납니다. 누군가에겐 유용한 기능일수도 있고 누군가에겐 언어 자체가 잘못 설계된 부작용처럼 느껴질수도 있지만 어떤 상황에서 강제변환이 일어나는지 정확히 알아보고 이해해서 이용해 보는 것이 목표로 잡고 공부해봅니다. 값 변환 어떤 값을 다른 타입의 값으로 바꾸는 과정에서 명시적으로 일어나면 타입 캐스팅이라고 부르고, 암시적으로 일어나면 강제변환이라고 부릅니다. 그러나 많은 사람들이 이러한 용어를 뭉뚱그려 강제변환이라고 사용하는 경향이 있기 때문에, 여기선 암시적 강제변환과 명시적 강제변환이라고 부르겠습니다. 암시적과 명시적을 구분하는 방법은 간단합니다. 타입변환만을 의도한 코드를 작성했다면 명시적 강제변환이고, 의도와 상관없이 타입변.. 2021. 3. 2.
JavaScript의 네이티브 (Natives of JavaScript) 지난 타입과 값 포스트에서 소개했던 자바스크립트에는 네이티브(Natives)라고 하는 몇 가지 내장 타입이 있었습니다. 이번에는 네이티브들에 대해서 간단히 알아보겠습니다. 자주 사용되는 네이티브들을 보면 다음과 같은 모양입니다. String() Number() Boolean() Array() Object() Function() RegExp() Date() Error() Symbol() 이 중 Symbol()은 ES6부터 추가되었습니다. 형태를 보면 아시겠지만, 네이티브들은 내장 함수입니다. String("test"); 의 형태로 생성자처럼 사용할 수도 있습니다. 다만 실제 생성자처럼 사용했을때는 원시값을 감싼 객체 래퍼의 형태로 생성됩니다. 생성된 객체 래퍼의 구조를 살펴보겠습니다. String { "문.. 2021. 2. 21.
JavaScript의 값 - 2 (Value of JavaScript) 특수 값 다음은 특수한 값에 대해 알아보겠습니다. 타입에 따라 주의해서 사용해야 할 값들입니다. 우선 타입과 값이 같은 경우입니다. undefined와 null은 타입이자 값 그 자체입니다. 여기서 null은 식별자가 아닌 키워드이므로 어떤 의미로 정의하여 사용하는지는 개발자의 마음이지만, null 이외의 값을 할당할 수는 없습니다. 그러나 undefined는 식별자이므로 임의의 값을 할당할 수 있습니다. undefined는 지역 변수의 이름으로도 사용할 수 있습니다. 그러나 가능하다고 해서 무조건 하는건 좋은 선택이 아닐 것 같습니다... 다음으로 살펴볼 것은 void입니다. 표현식 void는 모든 값을 undefined로 만들어버립니다. 기존 값에 영향을 미치지 않고 undefined를 출력시키고, .. 2021. 2. 19.
JavaScript의 값 - 1 (Value of JavaScript) 자바스크립트에는 여느 언어들처럼 배열과 문자열, 숫자 등을 값으로 가집니다. 그러나 일반 언어와는 다른 특성이 있어 이러한 값들을 사용할때 혼동을 줄 수 있기 때문에 정확하게 알고 사용하는 것이 중요합니다. 이번 시간에는 이런 독특한 특성을 가진 자바스크립트의 값에 대한 내용을 정리합니다. 배열 자바스크립트의 배열이 가진 특징 중 하나를 꼽으라면 무엇이든 값으로 들어갈 수 있다는 점을 꼽을 수 있습니다. 정수면 정수, 문자면 문자 등 한 배열에 들어가야 할 형식이 정해진 다른 언어와는 달리 숫자가 들어간 배열에 문자열을 추가하고, 심지어 객체나 다른 배열까지 집어넣을 수 있습니다. 특히 배열에 다른 배열을 집어넣는 방법은 자바스크립트에서 다차원 배열을 만드는 방법이기 때문에 잘 기억해두시는게 좋습니다. .. 2021. 2. 17.
JavaScript의 타입 (Type of JavaScript) 자바스크립트는 타입에 있어 굉장히 유연하게 동작하는 언어입니다. 변수에 들어있는 값이 숫자이든, 문자열이든 쓰임에 따라서 자동으로 변환되고 맞춰지기 때문에 상대적으로 다른 강타입, 정적 언어들에 비해 크게 문제를 느끼지 않는 경우가 일반적입니다. 하지만 그런 자바스크립트에도 타입은 분명히 존재합니다. 이번 포스팅에서는 자바스크립트의 타입에 대해 조금 더 자세히 알아보겠습니다. 타입의 종류 자바스크립트의 내장 타입은 7가지가 있습니다. null undefined boolean number string object symbol object를 제외한 나머지 여섯 개의 타입들을 원시 타입(primitives) 이라고 부릅니다. 값이 어떤 타입을 갖고 있는지 확인하려면 typeof 연산자를 사용하면 됩니다. 그러.. 2021. 2. 15.
A Line Translate : 한줄 번역기를 만들었어요. (크롬 확장 프로그램 개발 과정, Chrome extensions) #2 A Line Translate : 한줄 번역기를 만들었어요 #1에서 이어지는 내용입니다. 오랜만에 다시 잡은 확장 프로그램 프로젝트네요. 지난 시간엔 빌드 된 파일을 크롬에 올려서 테스트 하는 것 까지 진행했습니다. 이제 본격적인 기능 구현에 들어가보겠습니다. 이 프로그램은 드래그 한 내용을 번역해서, 그 결과를 별도의 엘리먼트를 생성해 띄워주는 기능을 갖고 있습니다. 이 기능을 미루어 볼때, 우리가 구현해야 할 내용은 크게 세 가지가 있겠습니다. 첫 번째는 드래그 한 내용을 다룰 수 있도록 전달하는 것, 두 번째는 전달받은 내용을 바탕으로 텍스트를 번역하는 것, 세 번째는 번역된 텍스트를 사용자에게 띄워주는 것 정도가 있겠네요. 그럼 하나씩 구현해보도록 하겠습니다. Drag Function 드래그 한 .. 2020. 12. 30.