만능 for문 하지만.. 개발하다보면 배열에서 뭘 꺼내서 지지고볶고할일이 참 많다. 특히 알고리즘을 풀다보면 다 이러한 것들인데 응용력이 떨어지는 내겐 그저 for문과 map돌리는것외엔 생각나는게 없다. 그래서 코드가 더 직관적이고 깔끔하고 쓰임새가 많은 배열함수들이 정리가필요했다. 1. Array.forEach Array.forEach(element => { }); 배열안에 요소에 어떤 작업을 수행할때 let words = ['a','b','c','d'] words.forEach(word => { console.log(word) }); // a // b // c // d words.forEach((word,index) => { console.log(word,index) }); // a 0 // b 1 ..
분류 전체보기
함수의 default 파라미터 넣기 가능 등호, 수학연산자, 다른파라미터와 연산도 가능하고 함수도 넣을수있음 function 더하기 (a, b = 10){ console.log(a + b) } 더하기(1); // 11 function 더하기 (a, b = 2 * 5){ console.log(a + b) } 더하기(1); // 11 function 더하기 (a, b = 2 * a){ console.log(a + b) } 더하기(3); // 9 function 임시함수(){ return 10 } function 더하기 (a, b = 임시함수() ){ console.log(a + b) } 더하기(3); // 13 함수의 arguments arguments는 입력된 파라미터를 [ ] 안에 감싸주어 파라미터들을 ..
Spread Operator ... 쓰면 괄호제거해주는 연산자 1. 배열에 붙이면 대괄호제거 2. 문자에 붙이면 단어하나씩 해체 var 어레이 = ['hello', 'world']; console.log(어레이); //['hello', 'world'] console.log(...어레이); //hello world var 문자 = 'hello'; console.log(...문자) //'h','e','l','l','o' ✔ 활용방법 1. Array 합치기 var a = [1,2,3]; var b = [4,5]; var c = [...a, ...b]; //[1,2,3,4,5] //Deep Copy var d = [1,2,3]; var e = [...d]; d[3] = 4; console.log(d) // [1..
1. template literals (backquote, backtick)을 사용하는 이유 1. 문자 중간 엔터키 입력이 가능 var 문자 = `안녕 하세요`; 2. 문자 중간에 변수를 집어넣을 때 편리 var 이름 = '손흥민'; var 문자 = `안녕하세요 ${이름} 입니다`; var 템플릿 = `${변수명}`; 2. tagged literals S6는 tagged literals라고 해서 함수로 문자 해체분석기능을 만들어줄 수 있음 var 변수 = '손흥민'; function 해체분석기(문자들, 변수들){ console.log(문자들); console.log(변수들); } 해체분석기`안녕하세요 ${변수} 입니다`; // ['안녕하세요 ', ' 입니다', raw: Array(2)] // 손흥민 CA..
CASE1) 함수(); function 함수() { console.log(안녕); let 안녕 = 'Hello!'; //에러 } // let 변수는 hoisting 되지만 var 변수처럼 지동으로 undefined 라는 값을 할당(일명 initialization) 해주지 않음 CASE2) 함수(); var 함수 = function() { console.log(안녕); var 안녕 = 'Hello!'; //에러 } //Hoisting은 변수의 선언부분만 되는데 변수에다 소괄호를 붙여봤자 아직 함수가 아니기 때문에 실행되지 않음 CASE3) let a = 1; var 함수 = function() { a = 2; } console.log(a); // 1 //함수를 정의만 했지 실행을 안시켜서 a = 2라는 부..
case1) var 사람 = { name: "손흥민", sayHi: function () { console.log("안녕 나는" + this.name); }, }; 사람.sayHi(); //안녕 나는 손흥민 case2) var 자료 = { data : [1,2,3,4,5] } 자료.전부더하기 = function(){ var sum = 0; this.data.forEach(function(a){ sum += a }); console.log(sum); } 자료.전부더하기() case3) 버튼이에요
(1) function 예쁜함수(){ //어쩌구 } (2) var 예쁜함수 = function(){ //어쩌구 } 함수는 (1) 또는 (2)처럼 만들 수 있지만 화살표 함수를 통해 만들 수 있음 var 예쁜함수 = () => { //어쩌구 } 1. 함수 본연의 기능을 아주 잘 표현 함수를 쓰는 이유는 1) 여러가지 기능을 하는 코드를 한 단어로 묶고 싶을 때 (그리고 나중에 재사용할 때) 2) 입출력기능을 만들 때 arrow function을 사용하면 함수 본연의 입출력 기능을 아주 직관적으로 잘 표현 var 두배만들기 = (x) => { return x * 2 } console.log( 두배만들기(4) ); console.log( 두배만들기(8) ); 2. 소괄호 생략이 가능 파라미터가 하나라면 소괄호..
1 그냥 쓰거나 함수 안에서 쓰면 this는 window console.log(this) 그러면 this 키워드는 그냥 window {블라블라} 이런 값이 나옵니다. 함수 내에서 this라는 값을 불러보면 그냥 window function 간지나는함수(){ console.log(this) } 간지나는함수(); window는 무엇? document.getElementById(), alert(), console.log() 이런 함수들을 보관하는 보관소 전역변수를 만들었을 때도 이 값을 보관 이렇게 변수를 큰 공간에 만드시면 x라는 변수는 window라는 큰 오브젝트안에 자동적으로 생성됩니다. 함수도 마찬가지 ※전역변수 : 코드 내 모든 곳에서 참조해서 쓸 수 있는 범용적인, 범위가 넓은 변수 script태그..
스택(STACK) 말그대로 차곡차곡 쌓듯이 데이터를 한쪽끝에서 넣거나 빼는 구조를 의미함 구조 LIFO(Last In, Fisrt Out) : 마지막에 넣은 데이터를 가장먼저 추출 FIFO(First In, Last Out) : 처음에 넣은 데이터를 가장 마지막에 추출 파이썬 관련 메써드 push() : 데이터를 스택에 추가 pop() : 데이터를 스택에서 꺼내기 백준에서 스택관련 문제풀이 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmic..
기본기부족! 알고리즘테스트 문제를 풀면서 문제를 이해하는것도 어렵지만 문제를 이해했다고 가정하더라도, 데이터를 어떻게 내가 원하는 데로 가공해야하는지 떠오르지않아 괴로웠다. 결론은 내 기본기 부족. 기본기가 탄탄했다면 그동안 흘러왔던 프로젝트에서 좀더 효과적으로 코드를 짤수 있지 않았을까 생각이 들었고, 이제는 다시 기본기를 충실히 해야할것같아 기본적인 문법부터 다시 훑어봤다. 1. Object.keys & Object.values 키나 밸류를 배열로 생성 const a = {brand:"bmw", model:'520d'}; const key_arr = Object.keys(a) // key로 배열 생성 const value_arr = Object.values(a) // value로 배열 생성 2. tr..