개요이분 탐색을 학습하면서 다음과 같은 코드를 짰다.function bs(target) { let start = 0; let end = numbers.length - 1; while (start target) { end = mid - 1; } else { start = mid + 1; } } return 0;} 이 코드에서는 while 루프 안에서 let mid = ... 와 같이 mid 변수를 선언하고 있는데, 문득 저렇게 해서는 안 되지 않을까? 하는 생각이 들었다. 저렇게 반복문 안에 변수 선언문이 들어가 있을 때, 어떤 일이 일어날까?let 키워드자바스크립트의 let 키워드는 블록 스코프를 가진다. 이 말인 즉슨, 코드 블록(if, for, while 등) ..
Language/JavaScript
들어가기 전에객체 리터럴에 의한 객체 생성 방식객체 리터럴에 의한 객체 생성 방식은 가장 일반적이고 간단한 객체 생성 방식이다. 그도 그럴게 매우 직관적이고 간편하다. 아래의 코드를 보자.const person1 = { name: 'jeong', introduce() { return 'hi, my name is jeong' }}이걸 보고 person1 이 이름이 jeong이고 자기를 소개할 수 있다는 것을 모른다? 그것은 코드 실력과 무관한 문해력의 영역이 아닐까 싶다.하지만 객체 리터럴에 의한 객체 생성 방식은 단 하나의 객체만 생성한다. 따라서 동일한 프로퍼티를 갖는 객체를 여러 개 생성해야 하는 경우 수작업으로 아래와 같은 개고생을 해줘야한다.const person1 =..
자바스크립트에서 문자열로 클래스의 메서드를 받아 실행하는 방법들어가기 전에계산기 클래스를 구현한 뒤, 사용자에게 숫자와 연산자를 입력받아서 연산자에 해당하는 메서드를 실행시키려 한다.if문 혹은 switch문으로 입력받은 연산자가 무엇인지에 따라 해당 메서드를 직접 호출해 주는 방법도 있지만, 그것보다 더 편리하게 클래스의 메서드를 직접 실행시키는 방법도 있다. 이번 포스팅에서는 문자열로 클래스의 메서드를 받아서 실행하는 방법에 대해 알아보려고 한다.calculator 클래스 구현class Calculator { constructor() { this.result = 0; } add(number) { this.result += number; } subtract(number) { t..
자바스크립트에서 클래스 안에 특정 속성 혹은 메서드가 있는지 확인하는 방법개요계산기 클래스 개발을 하다가, 계산기 안에 없는 연산을 수행하려 하면 에러 메시지를 출력하는 기능을 구현하고자 했다. 계산기가 수행하는 연산들은 곧 계산기 클래스 안의 메서드이므로, 계산기 안에 없는 연산은 계산기 안에 없는 메서드를 뜻한다. 이를 구현하기 위해 특정 메서드가 클래스 안에 있는지 없는지를 판단하려면 어떻게 해야 할까?자바스크립트에서 클래스 안에 특정 속성이나 메서드가 있는지 확인하기 위해서는 in 연산자를 사용하거나 hasOwnProperty 메서드를 사용할 수 있다. 이를 통해 클래스 속성 혹은 클래스 자체가 특정 메서드를 가지고 있는지 확인할 수 있다.방법 1 : in 연산자 사용in 연산자를 사용해 객체나 ..
toString() 메서드toSring() 메서드는 자바스크립트 Number 객체의 내장 메서드이며, 임의의 숫자형 값을 문자열로 변환해 준다.toString() 메서드를 사용해 진법 변환구문Number.toString(radix);radix : 2 - 36까지의 number 타입2024를 2진법부터 36진법까지 변환해 보기const n = 2024;for (let i = 2; i 주의사항반환 형태가 문자열임에 주의하자.
개요자바스크립트에서 import 구문을 통해 모듈을 불러올 때 중괄호 {...}를 사용하는 경우와 사용하지 않는 경우가 있다. 이 둘의 차이는 해당 모듈이 어떻게 내보내졌는지(export)에 달려있다.ES6 모듈 시스템에는 두 가지 주요 내보내기 방식이 있다. 이 두 가지 내보내기 방식을 알아보고, 어떤 경우에 중괄호를 사용하면 되는지 알아보도록 하자.기본 내보내기(Default Export)기본 내보내기는 모듈에서 하나의 값을 기본으로 내보내는 방식이다. 이 값을 가져올 때는 중괄호를 사용하지 않는다.// module.jsconst myFunction = () => { console.log('Hello from myFunction');};export default myFunction;// main.j..

자바스크립트의 랜덤 함수 Math.random() 사용법과 예시개요자바스크립트에서는 난수를 생성하기 위해 Math.random() 메서드를 사용한다.Math.random() 메서드는 기본적으로 0 이상 1 미만의 랜덤 한 부동 소수점(float)을 반환하는데, 사실 실생활에서 0.344558 같은 랜덤 수는 쓸모가 없다. 이 글에서는 Math.random() 메서드를 사용해 보다 의미 있는 난수를 생성하려면 어떻게 해야 하는지를 알아본다.Math.random()을 그대로 사용한다면?console.log(Math.random()); // 0 이상 1 미만의 랜덤한 부동 소수점앞에서 말했던 대로 0 이상 1 미만의 랜덤한 부동 소수점을 생성한다.나는 살면서 어떤 서비스를 이용할 때 0.556822997012..

자바스크립트에서 아스키코드를 활용하는 방법아스키(ASCII) 코드란?정의아스키코드란 미국 ANSI에서 표준화한 정보 교환용 7비트 부호체계를 말한다.7비트만 사용되는 이유나머지 1bit는 패리티 비트로 사용된다.출력 가능한 문자영문 알파벳 대소문자 52개 (65 ~ 90, 97 ~ 122)숫자 10개 (48 ~ 57)특수문자 32개공백문자 1개 (32)아스키코드 표charCodeAt() : 문자의 아스키코드 번호 반환console.log('A'.charCodeAt()) // 65매개변수에 index 넣으면let str = "Hello";console.log(str.charCodeAt(0)); // 출력: 72 (H의 ASCII 코드)String.fromCharCode(아스키번호) : 해당 번호의 아스키..