counter 변수도 초기값이 없으면 아마 null이 되는 것 같아요. 에러는 나지 않지만 최초에 "번째 고양이" 으로 나오길래 Try 1: const [counter, setCounter] = React.useState(jsonLocalStorage.getItem("counter") || 0); 했더니 0번째 고양이 가라사대라고 나오는군요. 물론 이것도 자연스럽지만 ㅎㅎ Try 2: const [counter, setCounter] = React.useState(jsonLocalStorage.getItem("counter") || 1); 요렇게 해 주니 조금 더 자연스럽게 되었습니다. || 값 처음 알았는데 유용한 기능 같아요 ^^.
여기에 filter에 (event)를 가지고 온것은 이해가 가는데! 뭔가 if(e)라는걸 왜 하는건지 이해가 잘 안가네요.. 기존 코드에 없던건데 if(e)가 있어야..앱이 기능이 되더라구요.. ㅜㅜ왜 넣어야하는건지.. 무슨의미인건지 궁금해요! - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
자바스크립트 클로저 함수 공부를 더 해보다가, 클로저개념이 외부함수내에서 내부함수를 쓸때 외부함수가 생을 마감했더라도 외부함수가 지닌 변수를 내부함수에서 사용할수 있다는 개념임을 인지했습니다. 그래서 다음 문제를, 저는 이렇게 풀었는데 오답으로 나와서 곰곰히 생각해보게되었습니다. 이렇게 되었을때, 문제가 지향하는 바가 return 하는 당시 gfunc라는 함수를 재호출 시켜서 함수를 출력시키라는 것일까요? console.log(gfunc())라는 함수를 최종적으로 4번 출력시키는 것이 내부함수의 역할이라면, gfunc = solution()이니까 함수가 영원히 끝나지 않게 되는 것이 아닌가요? 왜냐하면 solution내에 gfunc가있고 gfunc는 solution을 또 호출하니까요.. 긴글 읽어주셔서 감사합니다 클로져(Closure)를 연습해보자 다음과 같은 모습으로 당신이 만든 solution 함수를 실행하고자 합니다 1 2 3 4 5 6 7 8 9 10 // 코 드 실 행 버 튼 을 누 르 면 solution 함 수 를 아 래 와 같 이 실 행 하 게 됩 니 다 // solution 함 수 의 리 턴 값 의 타 입 은 함 수 가 되 어 야 합 니 다 let gfunc = solution ( 3 , 6 ) ; // solution 함 수 로 부 터 리 턴 받 은 함 수 를 실 행 시 다 음 과 같 은 값 이 찍 히 도 록 만 들 어 주 세 요 console . log ( gfunc ( )) // 3 console . log ( gfunc ( )) // 4 console . log ( gfunc ( )) // 5 console . log ( gfunc ( )) // 6 console . log ( gfunc ( )) // undefined function solution ( start , end ) { return ( function () { for ( let i = start ; i < end + 1 ; ++ i ) { console . log ( i ) ; } } )() ; } let gfunc = solution ( 3 , 6 ) ;
안녕하세요. 그랩님 그랩님 강좌를 잘 보고 있는 한 수강생입니다. 다름이아니라 강의 내용과는 별개의 내용이지만 그랩님을 통해 자바스크립트를 배우고 여러가지 배웠기 때문에 그랩님께 질문 남겨봅니다. const getData = async () => { try { const result = await axios . get ( " https://b2ef45f8-e166-41d7-bd35-9ad159028fbf.mock.pstmn.io/test " ) ; const products = result . data . products ; console . log (products) ; console . log ( ` status:( ${ result . status } ) 통신을 성공했습니다! ` ) ; const data = JSON . stringify (products) ; return data ; } catch (err) { console . error (err) ; console . log ( " 결과를 가져오지 못했습니다. " ) ; return err ; } }; console . log ( getData ()) ; 위에 코드는 프로미스 형식의 axios객체를 async, await을 이용해 then과 catch등을 축약해서 제가 만든 포스트맨 목서버의 데이터를 get메서드로 불러와서 결과값을 확인하는 코드입니다. 실행에는 문제가 전혀 없습니다. 그런데 제가 궁금한 것은 getData 함수 표현식이 async로 감싸져 promise객체를 받아 비동기 처리가 되어서 console.log(getData())가 먼저 실행된 뒤에 getData 함수가 실행된다는것은 알고있습니다. 허나 만약에 비동기 함수에서 리턴값을 받아 출력을 하고 싶을 때는 어떤 처리를 해야 하는지가 궁금합니다. 만약 코드가 실행되면 console.log(getData())가 실행될 때 Promise { <pending> }가 출력이 되었습니다.
const solution = ( data ) => { let answer = Number . MIN_SAFE_INTEGER ; let raw = column = diagonal = reDiagonal = 0 ; for ( let i = 0 ; i < data .length; i ++ ) { raw = column = 0 ; diagonal += data [i][i]; reDiagonal += data [i][ data .length - 1 - i]; for ( let j = 0 ; j < data .length; j ++ ) { raw += data [i][j]; column += data [j][i]; } answer = Math . max (answer, raw, column); } answer = Math . max (answer, diagonal, reDiagonal); return answer; }
안녕하세요 제로초님 let's Get it 자바스크립트 책을 사서 공부하고 있습니다. 공부를 하다가 우연히 이전에 유튜브에서 제로초님이 말씀하셨던 "자바스크립트 필수개념" 유튜브 동영상을 봤었는데요.. 이 영상 입니다. https://www.youtube.com/watch?v=b4LxIniE9-M&t=190s 혹시 이 ES2021(Let's get it) 자바스크립트 강의에서도 해당 강의에 있는 내용들을 설명해주시나요? 이벤트 루프는 책보니까 설명해주시는것 같은데 다른 개념들도 설명해주시는지 궁금해서 여쭈어보려고 합니다. 아니면 다른 동영상 강의에서 설명 해주시는게 있나요?
제가 혹시 실수한 것이 있나 싶어서 제로초님 깃허브에 올라와 있는 코드도 그대로 복붙해서 실행해봤는데 마찬가지로 빈 칸을 빠르게 클릭할 때 이런 에러가 발생합니다. ``` Uncaught TypeError: Cannot read property 'undefined' of undefined at HTMLTableSectionElement.onLeftClick ``` 이런 버그는 어떻게 해결 하면 좋을까요? 다시 확인해보니, 이미 열린 칸 위에서도 빠르게 클릭하면 같은 에러가 발생하는데, 에러 원인이 뭔지 파악하기가 어렵습니다. 에러 발생 코드 위치는 여기에요. const cellData = data[rowIndex][cellIndex];
function Accumulator(startingValue) { this.value = startingValue; this.read = function (){ this.value += +prompt("number", 0); } } let accumulator = new Accumulator(1); // 최초값: 1 accumulator.read(); // 사용자가 입력한 값을 더해줌 accumulator.read(); // 사용자가 입력한 값을 더해줌 alert(accumulator.value); // 최초값과 사용자가 입력한 모든 값을 더해 출력함 여기서 prompt앞에 +를 붙여주면 prompt 입력값이 number type으로 바뀌는데 이유가 궁금합니다. number()매소드를 나타내는 건가요??
let ladder = { step: 0, up() { this.step++; return this; }, down() { this.step--; return this; }, showStep() { alert( this.step ); return this; } } ladder.up().up().down().up().down().showStep(); // 1 이런 코드 입니다. 저는 각 함수의 코드를 up()같은 경우에 return this.step++; 이런식으로 코드를 작성했었는데, 오류가 나더라구요...ㅜㅜ 제가 작성한게 어떻게 틀린건지 알고 싶습니다. 고수님들 부탁드립니다. 작은 답변이 혼자공부하는 저에게 큰 힘이 됩니다.
안녕하세요 코린이입니다 ㅎ 이번에 만들어 보고 싶은 앱이 있어서 친구들과 함께 만들어보려고 하는데, 어떻게 아키텍쳐를 구상할지 모르겠는 와중에 궁금한 점이 생겨서 질문드립니다. 코틀린으로 백엔드, 프론트엔드가 모두 대체 가능한가요? 코틀린을 다룰줄 알면 다른 언어는 배우지 않아도 되나요? 이상입니다. 감사합니다
function get_mem (){ return [ 'ego' , 'ewww' , 123 ]; } var mem = get_mem (); document . write ( mem [ 0 ]); document . write ( mem [ 2 ]); var mem=get_mem(); 이게 왜 필요한가요? document . write ( get_mem [ 0 ]); 이렇게 쓰면 안되는 건가요?