본문 바로가기

JavaScript18

자바스크립트 2차원 배열 자바스크립트는 2차원 배열을 선언할수 없습니다. 배열안에 배열을 생성하는 방법으로 비슷하게 할수있습니다. let arr=[][]; //error let arrs = []; for(let i=0; i 2023. 6. 20.
이스케이프 처리된 URI 디코딩하기 decodeURI() 흔히 이스케이프 처리된 URI를 볼수있는데 제가 얻으려는 값이 한글이라 이스케이프 처리가 되어있어 디코딩하여 값을 얻어야 했습니다. :이스케이프 처리 어떤 시스템에서도 읽을 수 있는 아스키(ASCII) 문자셋으로 변환하는 것 decodeURI() - JavaScript | MDN decodeURI() 함수는 encodeURI이나 비슷한 루틴으로 사전에 만들어진 URI(Uniform Resource Identifier, 인터넷식별자)를 디코딩합니다. developer.mozilla.org const test = () => { const URI = 'https://mhhtest.com/user?name=테스트'; const encode = encodeURI(URI); const dncode = decodeU.. 2023. 5. 29.
[JS]Callback, Promise, async/await 동기 비동기 자바스크립트는 기본적으로 동기적으로 동작합니다. console.log('1'); console.log('2'); console.log('3'); // 1 // 2 // 3 // console.log함수가 끝나고 다음 console.log함수가 순서대로 실행되는것 예측할수있습니다. 어떤 동작이 끝날때까지 기다렸다가 다음 동작을 순차적으로 하는것을 동기적이다 라고 할 수 있습니다. console.log('1'); setTimeout(function() { console.log('2'); }, 1000); console.log('3'); // 1 // 3 // 2 // 브라우저의 api setTimeout함수로 1초뒤에 console.log를 호출하는 콜백함수를 동작했을때 // 1다음 2를 기다리.. 2023. 3. 28.
[JS]얕은 복사(shallow copy) 깊은 복사(deep copy) 얕은 복사는 객체의 참조값(주소 값)을 복사하고, 깊은 복사는 객체의 실제 값을 복사합니다. 원시값 vs 객체 자바스크립트는 값을 다소 모호하게 구분합니다. 원시값은 기본 자료형(단순한 데이터)을 의미합니다. Number, String, Boolean, Null, Undefined 변수에 원시값을 저장하면 변수의 메모리 공간에 실제 데이터 값이 저장됩니다. 할당된 변수를 조작하려고 하면 저장된 실제 값이 조작됩니다. 원시값을 제외한 다른값은 모두 객체입니다. 변수에 객체를 저장하면 독립적인 메모리 공간에 값을 저장하고, 변수에 저장된 메모리 공간의 참조(위치 값)를 저장하게 됩니다. 그래서 할당된 변수를 조작하는 것은 사실 객체 자체를 조작하는 것이 아닌, 해당 객체의 참조를 조작하는 것입니다. 원시값 .. 2023. 3. 27.
자바스크립트 onKeyPress 더이상 지원하지않음 충격 적이다 onKeyPress를 애용 하던 나로썬 청천벽력같은 소리다... 쓰지 말라는데 어쩔수있나... 공식문서 Element: keypress event - Web APIs | MDN The keypress event is fired when a key that produces a character value is pressed down. developer.mozilla.org 2023. 2. 7.
자바스크립트 객체 메소드 let a = 'age'; const user = { name : 'Mhh', [a] : 30 } 변수 a의 할당된 값을 불러오는 방법으로 이를 computed property(계산된 속성) 이라고 부른다. Object.assign() : 객체 복제(깊은 복사) const user = { name : 'Mhh', age : 30 } const cloneUser = user; //얕은 복사 const newUser = Object.assign({}, user);//깊은 복사 얕은 복사를 하면 기존 user의 값도 같이 변경이 된다. Object.keys() : 키 배열 반환 const user = { name : 'Mhh', age : 30, gender : 'male' } Object.keys(user).. 2022. 10. 4.
자바스크립트 생성자 함수 let user1 = { name : "bob", age : 20 } let user2 = { name : "jon", age : 30 } function showAge (obj){ console.log(`${obj.name}의 나이는 ${obj.age}입니다.`); } console.log(user1); console.log(user2); showAge(user1); showAge(user2); --------출력-------- { name: 'bob', age: 20 } { name: 'jon', age: 30 } bob의 나이는 20입니다. jon의 나이는 30입니다. 이런 반복되는 객를 사용한다고 가정 했을때 너무 비효율 적이다. 이때 생성자 함수를 사용하면 생산성과 가독성을 올릴수있다. func.. 2022. 9. 28.
자바스크립트 아스키코드 (ASII) ASCII (American Standard Code for Information Interchange, 미국 정보 교환 표준 부호) 아스키 코드는 1963년 미국 ANSI에서 표준화한 정보교환용 7비트 부호체계이다. 인쇄전신기(Teleprinter)[2]를 통한 전신(통신)에서 사용되기 시작했고, 8비트 컴퓨터에서도 활용되어 오늘날 문자 인코딩의 근간을 이루게 된다. 000(0x00)부터 127(0x7F)까지 총 128개의 부호가 사용된다. 1바이트를 구성하는 8비트 중에서 7비트만 쓰도록 제정된 이유는, 나머지 1비트를 통신 에러 검출을 위한 용도로 비워두었기 때문이다. Parity Bit라고 해서, 7개의 비트 중 1의 개수가 홀수면 1, 짝수면 0으로 하는 식의 패리티 비트를 붙여서, 전송 도중 .. 2022. 9. 27.
배열 조합 순열 알고리즘 조합 Input: [1, 2, 3, 4] Output: [ [1, 2, 3], [1, 2, 4], [1, 3, 4], [2, 3, 4] ] const getCombinations = function (arr, selectNumber) { const results = []; if (selectNumber === 1) return arr.map((el) => [el]); // n개중에서 1개 선택할 때(nC1), 바로 모든 배열의 원소 return arr.forEach((fixed, index, origin) => { const rest = origin.slice(index + 1); // 해당하는 fixed를 제외한 나머지 뒤 const combinations = getCombinations(rest, s.. 2022. 9. 26.