TIL/JavaScript 22

Math method

1. 제곱근 - Math.sqrt(25) // 5 2. 최댓값 - Math.max(5, 18, 23, 11) // 23 3. 최솟값 - Math.min(5, 18, 23, 11) // 5 4. 원주율 - Math.PI // 3.141592...... 5. 난수 - Math.random() // 0-1 사이 난수 생성 ex) 0 - 5 사이 난수 생성 - Math.trunc(Math.random() * 6) cf) Math.trunc는 소수점 이하 숫자 무시, 오직 정수부만 return ex2) 특정 수 사이 난수 생성 - const randomNum = (min, max) => Math.trunc(Math.random() * (max - min) + 1) + min 6. 소수점 처리 - Math.trun..

TIL/JavaScript 2022.12.16

Converting and Checking numbers

converting and checking number - js에서 모든 수(정수, 정수가 아닌 유리수 모두) 는 부동소수점으로 표현됨 - 23===23.0 // true - 수는 마찬가지로 2진수로 저장됨 - js에서는 타 언어에서 쉬운 것들을 어렵게 저장함 - 0.1 + 0.2 === 0.300000004 - 10진수에서 1/10 = 0.1, 10/3 = 3.3333333 2진수에서도 0.1에 대해서는 3.3333같은 현상 발생(무한소수) js에서는 반올림을 통해 위 현상을 예방하지만, 0.1에 대해서는 불가 -> 따라서 js에서 복잡한 계산은 X - string->number 형변환 - 1. Number('23') // 23 - 2. +'23' // 23 그 이유는 js가 + 기호를 만나면, '23..

TIL/JavaScript 2022.12.16

Closure

closure - const secureBooking = function(){ let passengerCount = 0; // 외부에서 접근 불가 return function(){ passengerCount++; console.log(passengerCount); } } const booker = secureBooking(); booker(); // 1 booker(); // 2 booker(); // 3 - closure는 함수 자신이 자신이 생성됐을 때의 모든 변수를 기억 - 위의 예시를 보면, booker 함수는 secureBooking 밖에 존재한다. 그렇다면 어떻게 passengerCount를 조정할 수 있는지? - booker 함수는 secureBooking의 execution context에..

TIL/JavaScript 2022.10.05

Call, Apply, Bind

call / apply call : 특정 함수가 가리키는 this를 변경시키는 method - 왜 method인가? - 그 이유는 함수 자체가 하나의 object이며, 함수의 prototype에 적혀 잇기 때문 - 형태 FUNCTION.call(thisArg, ...argument(FUNCTION의 argument 작성)) ex) const stu1 = {score : 80, print : function(name){ console.log(`${name} : ${this.score}`) } } stu1.print('kim') // kim : 80 const stu2 = {score : 90} stu1.print.call(stu2, 'jung') // jung : 90 또는 const print = stu..

TIL/JavaScript 2022.09.27

String Method

string method 1. indexOf(); ex) "airline".indexOf('a'); // 0 cf) 만약, 괄호 내부에 하나의 알파벳이 아닌 특정 단어를 입력할 경우, 그 단어의 첫 번째 철자의 index 반환 - "jspython".indexOf("python") // 2(python의 p index가 2) 2. lastIndexOf(); - 특정 철자가 마지막으로 나오는 index return 3. slice(startIndex, endIndex) - 문자열의 startindex부터 문자열의 endIndex-1까지를 string으로 반환 - endIndex 입력하지 않으면, startIndex - 문자열의 끝까지 반환 - 원본에는 변화 X - ex) "airline".slice(2) ..

TIL/JavaScript 2022.09.02

map, set

map - object처럼 key, value의 짝으로 저장되나 object와 달리 key의 자료형이 string이 아님 - arr, string, set처럼 iterable한 요소 선언 방법 - const rest = new Map(); // new Set() - const rest = new Map([ [1, 'aaa'], [2, 'bbb'], [3, 'ccc'] ]) 처럼도 가능 method mapName.set("keyname", "value") - 특정 map에 "keyname" : "value" 추가하는 함수 - update된 map을 return함 ex) rest.set(1, "kim") // rest라는 map에 {1=>"kim"} 추가됨 rest.set(2, "kin").set(3, "s..

TIL/JavaScript 2022.08.28

Class

class 1. 선언 class Person{ consturctor(name, age){ this.name = name; this.age = age; } speak(){ console.log(`${this.name} : hello`) } } 2. object 생성 const ellie = new Person('ellie', 20); // ellie, 20이 this.name, this.age로 전달 3. getter / setter - 사용자가 잘못된 값을 입력했을 때, 그것을 방지하기 위해 사용 - class Person{ constructor(name, age){ this.name = name; this.age = age; } get age(){ // getter를 추가하면 this.age를 사용하려..

TIL/JavaScript 2022.07.15

배열 관련 함수

1. join(구분자) : 배열의 요소를 따로 출력 arr1 = [1,2,3] console.log(arr1.join()) // 1,2,3 출력 console.log(arr1.join('and')) // 1 and 2 and 3 2. split(구분자, output 개수) : 문자열에서 매개변수로 들어간 구분자를 만나면 그 전 요소를 배열의 요소로 따로 저장시킴 output개수에 따라서 몇 개 저장시킬 지 정할 수 있음 arr1 = '1,2,3,4' console.log(arr1.split(',')) // ['1' , '2' ,'3' ,'4' ]로 저장 console.log(arr1.split('/')) // ['1,2,3,4'](매개변수로 들어간 구분자가 없는 경우 문자열 통째로 배열에 저장됨 cons..

TIL/JavaScript 2022.05.22

배열(기초)

배열 타 언어와 다르게, 한 배열에 다양한 자료형 넣을 수 잇음 ex) 정수, 문자 한 번에 넣기 가능(하지만 지양해야) array declaration const arr1 = new Array(); const arr2 = [1,2]; // more used index position const fruits = ['apple', 'banana']; console.log(fruits); console.log(fruits.length) // 2 console.log(fruits[0]) // apple 출력 console.log(fruits[3]) // undefined(정의 X) looping array 1. using for loop for(let i=0;i callback function을 받아옴 cf2..

TIL/JavaScript 2022.05.21

객체(object)

object - 여러 개의 변수를 보다 쉽게 관리하기 위해 만들어짐 - key, value의 집합체 선언 방법 - let obj1 = {name : '김현우', age : 4} // object literal - let obj2 = new objClass() // object constructor cf> javascript의 객체의 요소는 선언 후에 추가, 삭제 가능 단, 이런 방식을 사용할 경우, 추후에 유지보수가 어려워짐 ex) obj1.job = 'student' delete obj1.job computed properties 객체의 키 접근 방법 1. console.log(obj1.age) -> 4 // 코딩하는 순간 그에 해당하는 값을 받아오고 싶을 때 2. console.log(obj1['ag..

TIL/JavaScript 2022.05.21