Thief of Wealth
javascript replaceAll
개발/Javascript 2021. 8. 4. 04:05

const replaceAll = (str, from, to) => { return str.split(from).join(to); };

[Javascript] 얕은복사 vs 깊은복사
개발/Javascript 2021. 3. 1. 11:52

function test1() { const obj1 = { a: true, b: true }; const obj2 = obj1; obj2.c = true; console.log(obj1); // same with obj2 } 위 코드는 복사가 되었을까? 아니다. 저렇게 하면 obj1와 obj2가 같은 메모리 주소를 가지고 있어서, obj2를 수정했는데 obj1를 출력해도 obj2에서 변화한 값이 반영되게 된다. - 얕은복사 function test2() { const obj1 = { a: true, b: true }; const obj2 = { ...obj1 }; // shallow copy const obj3 = Object.assign({}, obj1); // shallow copy /* sprea..

[Javascript] Class ToString
개발/Javascript 2021. 3. 1. 10:44

자바스크립트에는 어떤 값을 문자열로 변환시켜주는 toString()이라는 것이 존재한다. toString의 인자로는 진법을 넣을 수 있다. (3).toString(2) // '11' 인자로 아무것도 넘겨주지 않으면 그대로 문자열이 된다. 아무 평범한 함수처럼 보이지만, class에서 유용하게 사용할 수 있는 방법을 습득했다. class User { constructor(name) { this.name = name; } toString() { return this.name; } } console.log(`Hi ${new User("Dobby")}`); 위 코드를 실행시키면 어떻게 될까? 'Hi Dobby'가 출력되게 된다. 백틱안의 객체가 문자열화 되면서 자동으로 .toString()을 호출했기 때문이다.

[Javascript] NaN
개발/Javascript 2021. 3. 1. 00:20

자바스크립트에는 Not a Number를 체크할 수 있는 방법이 있는데, Number.isNaN(1) // true Number.isNaN('1') // false 바로 Number.isNaN이다. 인수로 숫자가 아닌값이 들어오면 false를 리턴한다. 여기서 숫자는 integer 값이다. 다음과 같이 실수가 들어와도 false를 리턴한다. Number.isNaN(10.1) // false 다음과 같은 재미있는 특성도 있다. (자기자신이 다르다는데 맞다고 하는게 NaN이다.) var a = NaN; a !== a; // true var b = "foo"; b !== b; // false var c = undefined; c !== c; // false var d = {}; d !== d; // false..

javascript 시간 측정하기
개발/Javascript 2021. 2. 15. 20:10

console.time(''); // 동작 console.timeEnd('');

[Javascript] 클로저
개발/Javascript 2021. 1. 22. 22:51

클로저는 어떤 함수의 내부함수와 밀접한 관계를 가지고 있는 주제이다. 내부함수는 외부함수의 지역변수에 접근 할 수 있는데, 외부함수의 실행이 끝나서 소멸된 이후에도 내부함수가 외부함수의 변수에 접근할 수 있다. 이러한 매커니즘을 클로저라고 한다. 에를 들어보자 function outer(){ const title = "Hi"; return function(0{ console.log(title); } } const test = outer(); test(); 위 결과는 어떻게 될까? 예상대로 Hi가 출력될 것이다. outer를 호출하여 그 결과인 익명의 함수가 test에 담기는데 outer 함수가 종료되었음에도 불구하고 익명의 함수에서 Hi를 출력하는 것으로 보아, 외부함수의 지역변수를 사용하는 내부함수가 ..

[Javascript] slice, substring, substr 함수의 차이점
개발/Javascript 2021. 1. 22. 15:39

Javascript에는 문자열 자르는 함수가 여러개 존재한다. 이중 문자열을 cutting했을때 실제 문자열에 영향을 주는 splice는 제외하고 특징을 비교해보자. 1. string.slice(start, end) slice는 substring과 사용법이 같다. 파라미터로 자를 문자열의 start, end 인덱스를 주어 해당하는 범위의 문자열을 반환한다. 2. string.substring(start, end) 파라미터로 자를 문자열의 start, end 인덱스를 주어 해당하는 범위의 문자열을 반환한다. 3. string.substr(start, length) 파라미터로 입력받은 start 인덱스 부터 length길이만큼의 문자열을 반화ㄴ한다. 그렇다면 slice와 substring의 차이점은? => ..

[Javascript] 내가 쓰려고 만든 자바스크립트 최소 스패닝 트리/크루스칼/유니온 파인드
개발/Javascript 2020. 12. 1. 21:19

www.acmicpc.net/problem/1197 1197번: 최소 스패닝 트리 첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는 각 간선에 대한 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 정점과 B번 정점이 www.acmicpc.net 위 문제를 풀 때 사용한 코드입니다. 자바스크립트는 원래 call by value이기 떄문에 아래 unionFind할때 배열 전체를 덮어씌우는 작업이 오래걸릴 줄 알고 class형으로 짜봤는데 오히려 시간이 더 늘어났습니다. (이유가 뭐지?) 'use strict' const readline = require("readline"); const rl = readlin..

profile on loading

Loading...