수강이 제한됩니다.
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결웹 게임을 만들며 배우는 자바스크립트
iput 입력글자 제한에러...
안녕하세요 선생님 강의 잘듣고 있습니다 다른 기능은 잘되는데 input창에 처음으로 답을 입력할때 4글자 까지 입력이 되는데 2번째 입력할때 입력 글자가 3글자로 제한되는데.. 뭐가 문제일 까요 ㅠㅠㅠ 아 , 그리고 또 궁금한점이 함수 숫자뽑기() 에서 처음에는 조건이 var i = 0; i < 4; i += 1 로 쓰이는데 틀리면 조건이 var i = 0; i < 3; i += 1 으로 쓰는건 왜인가요?? // 숫자야구 var 바디 = document.body; var 숫자후보; var 숫자배열; function 숫자뽑기() { 숫자후보 = [1, 2, 3, 4, 5, 6, 7, 8, 9]; 숫자배열 = []; for (var i = 0; i < 4; i += 1) { var 뽑은것 = 숫자후보.splice(Math.floor(Math.random() * (9 - i)), 1)[0]; 숫자배열.push(뽑은것); } } // 문제 시작 숫자뽑기(); console.log(숫자배열); // 게임 답 확인용 var 결과 = document.createElement("h3"); 바디.append(결과); var 폼 = document.createElement('form'); document.body.append(폼); var 입력창 = document.createElement('input'); 폼.append(입력창); 입력창.maxLength = 4; // input 입력 4글자로 제한 var 버튼 = document.createElement('button'); 버튼.textContent = "입력"; 버튼.style.marginLeft = '3px'; 폼.append(버튼); var 결과창 = document.createElement('div'); document.body.append(결과창); var 틀린횟수 = 0; 폼.addEventListener('submit', function 콜백함수(e) { e.preventDefault(); var 답 = 입력창.value; if (답 === 숫자배열.join("")) { // 답이 맞으면 결과.textContent = "홈런"; 입력창.value = " "; 입력창.focus(); // 새로운 문제 내기 숫자뽑기(); 틀린횟수 = 0; } else { // 답이 틀리면 var 답배열 = 답.split(" "); var 스트라이크 = 0; var 볼 = 0; 틀린횟수 += 1; if (틀린횟수 > 4) { // 4번 넘게 틀리면 결과.textContent = '4번 넘게 틀려서 실패! 답은' + 숫자배열.join(',') + '였습니다.'; 입력창.value = " "; 입력창.focus(); // 새로운 문제 내기 숫자뽑기(); 틀린횟수 = 0; } else { // 4번 미만으로 틀리면 console.log('답이 틀리면', 답배열); // 에러 확인용 for (var i = 0; i < 3; i += 1) { if (Number(답배열[i]) === 숫자배열[i]) { // 같은 자리인지 확인 스트라이크 += 1; console.log('같은자리?'); // 에러 확인용 } else if (숫자배열.indexOf(Number(답배열[i])) > -1) { //같은 자리는 아니지만, 숫자가 겹치는지 확인 && 여기서 -1 은 indexOf에서 없는값을 의미 볼 += 1; console.log('겹치는 숫자?'); // 에러 확인용 } } 결과.textContent = 스트라이크 + "스트라이크" + 볼 + "볼 입니다"; 입력창.value = " "; 입력창.focus(); } } });
- 미해결웹 게임을 만들며 배우는 자바스크립트
리팩토링 관련 질문입니다. (자스스톤)
제로초님 안녕하세요! 얼마전 filter메소드 사용법 및 __proto__ 사용 등과 관련해서 질문을 드렸었는데 모두 빠르고 정확하게 답변해주셔서 감사합니다. 이제 강의 마지막을 향해 가고 있는 중, 하스스톤 클론 강좌 리팩토링에서 궁금한 점이 생겨서 질문드립니다. 질문 리팩토링에서 궁금한 점이 덱에서필드로 함수를 호출하지도 않았는데 어떻게 data가 덱data에서 필드data로 이동을 하게 되는지 잘 모르겠습니다. 코드를 글자 그대로 해석해보면 덱에서필드로 함수가 'end' 를 반환하지 않았다면 내덱생성(1) 을 호출한다 정도로 해석되는데요, 해당 조건문은 어떻게 해석해야 하는걸까요? (혹시 if (덱에서필드로(데이터, 내턴) !== 'end') 자체가 함수를 호출하고 실행결과까지 체크하는 코드인가요?) -------------------------------------------------- 말씀드린 부분은, 덱에서필드로 함수 내부에서 if (현재코스트 < 데이터.cost) { return 'end' ; }; 를 통해 현재코스트가 데이터.cost 보다 낮은 경우 'end'(혹은 true)를 리턴 후 종료되고, 턴액션수행 함수에서 if (덱에서필드로(데이터, 내턴) !== 'end') { 내턴 ? 내덱생성(1) : 상대덱생성(1); }; 와 같이 처리되는 부분이었습니다. ----------------------------------------- 현재 2048 듣는 중인데 테트리스까지 마무리하고 곧 리액트로 넘어갈 생각입니다. 그리고 웹게임으로 배우는 자바스크립트 출판되면 바로 읽어볼 예정입니다. 마지막으로 좋은 강의 정말 감사드립니다, 좋은 하루 되세요!
- 미해결웹 게임을 만들며 배우는 자바스크립트
카드 짝맞추기 react-native
카드 짝 맞추기 게임을 react-native에서 구현을 해보려고 하는데 잘 감이 안옵니다 ㅠㅠ html에서 작업하는게 아니다보니 div태그나 이런것들도 없고 그래서ㅠㅠㅠ 조언말씀 부탁드립니다
- 미해결웹 게임을 만들며 배우는 자바스크립트
필터 메소드 관련 질문입니다.
제로초님 안녕하세요! 좋은 강의 감사드립니다. 유튜브랑 블로그도 틈나는대로 보고있는데 많은 도움을 받고 있습니다. 가위바위보까지는 헷갈리는 부분만 이론 위주로 들었고 지뢰찾기부터 처음부터 따라가면서 코딩하고있는데요, 지뢰찾기 강의 중 필터 메소드 관련해서 궁금한 점이 생겨서 질문드립니다. 질문 01) var 주변 = []; 에 처음에는 concat 메소드를 사용하지 않고 8개 객체를 모두 넣었지만 맨윗줄이랑 맨아랫줄 클릭시 에러로 인해 if (tbody.children[줄 -/+ 1] )이라는 조건 후 concat사용해서 해결하신 부분이 있었는데요, 강의 후반부에서 Array.filter(function(v) { return !!v}); 라는 방법으로 배열에서 falsy 값들을 제외하는 방법이 있다는 것을 알게되었습니다. 그렇다면 주변.filter(function(v) { return !!v; }).filter(function(v) { return [코드표.지뢰].includes(v); }).length 와 같이 filter를 두번 잇는다면 concat을 사용하지 않고도 에러를 피해갈 수 있지 않을까 싶어서 질문드립니다. 질문 02) 두번째 질문도 첫번째 질문이랑 연관되어있는데요, 이건 실시간 댓글에서도 잠깐 질문이 나왔었는데, e.currentTarget에 해당하는 <td>클릭시 [줄] 부분은 가장 윗줄(-1)에서 에러가 발생했는데 왜 [칸] 부분은 가장 왼쪽(-1)에서 에러가 발생하지 않는지 궁금해서 질문드립니다. 영상에서는 처음에 "주변" 배열의 [칸], 즉 가로부터 테스트했을 때 에러가 났고 .length 붙이면서 해결이 되었는데요, 이건 length라는 메소드가 배열에 undefined가 있으면 건너뛰면서 숫자를 세기 때문에 가능했던걸까요? ------------------------------------------------------------------------------------------------------ 왠지 세로 부분에서 에러가 난건 length나 filter 등 메소드가 원인이 아니고 dataset[줄][칸]을 불러오는 과정에서 [줄] 부분에 참조값이 없어서(음수여서) [칸]을 찾을 수 없었기 때문에 에러가 발생한거같다는 생각이 드는데요, 그래도 궁금해서 질문드렸습니다..!(물론 저도 찾아볼 생각이고 강의 흐름상 크게 중요한 부분도 아닌 것 같아 답변 안해주셔도 상관없지만 혹시나 하는 마음에 질문드립니다.) 마지막으로 , 한달정도 전에 노드교과서를 샀는데요(이때는 제로초님이 쓰신건줄 모르고 샀음) , 아직 도입부까지만 읽었습니다. 우선 리액트까지는 무조건 한다는 생각인데요, 그 다음에는 어떻게 해야할까요? 조언 부탁드립니다. (목표는 중견기업이고 백엔트/프론트엔드/UI 전부 다 할 생각입니다) ps 자바스크립트책은 아직 안나온건가요?
- 미해결웹 게임을 만들며 배우는 자바스크립트
가위바위보 게임 질문드립니다~
안녕하세요 강의 잘보고 있습니다!! 강의대로 아래와 같이 코드 입력을 했는데 저는 주먹만 계속 나와서 크롬 검사를 해보면 < div id ="computer" style="background : url("./가위바위보.jpg") 0px center;"> 이렇게 나와요ㅠㅠㅠ저는 center 입력한 적도 없는데 저게 입력이 되서 나오는걸까요 그리고 0px에서 -142px, -284px로 안넘어가는 걸까요...? 아 두시간 동안 계속 비교했는데 left + '(한번띄어쓰기)0' 이렇게 해야하는거였네요!!!!!!!안띄우면 이게 적용이 안되는건가보네요ㅠㅠㅠ왜그런거죠ㅠㅠㅠㅠㅠㅠ var left = 0; setInterval(function() { if(left===0){ left ='-142px'; }else if(left==='-142px'){ left ='-284px'; }else{ left=0; } document.querySelector('#computer').style.background='url(./가위바위보.jpg)'+ left + '0'; }, 100);
- 미해결웹 게임을 만들며 배우는 자바스크립트
자바스크립트 기초에 관해서 질문있습니다.
현재 제가 자바스크립트 공부를 해보면서 문법위주로 했고 이 문법들이 어떤 알고리즘으로 구현되는지는 이해가 잘 되지 않아서 강좌를 선택했습니다. 제가 문법적인 공부로는 데이터 종류, 변수, 예약어, 조건문 , dom api, 메소드 체이닝, 연산자, 조건문, 반복문, 함수, 화살표 함수, llfe, 호이스팅, 타이머함수, 콜백, 생정자함수, 클래스, 상속, 문자, 숫자와수학, 배열, 객체, 구조분해할당, 전개연산자, 불면성, 복사 이렇게 까지 배웠습니다. 혹시 제가 기초가 부족한가요? 부족하거나 보충해야한다면 무엇을 보충하고 해야하는지 알려주시면 정말 감사드리겠습니다..!
- 미해결웹 게임을 만들며 배우는 자바스크립트
질문입니다.
5분 58초에 보면 star += 1 이라고 작성하셨는데 star++ 라고 해도 결과는 똑같이 나오잖아요? 둘의 차이점이 뭔가요?
- 미해결웹 게임을 만들며 배우는 자바스크립트
이벤트 리스너 안에서 동작 질문드립니다.
선생님 강의 잘 보고 많이 배워가고있습니다. 다름이 아니라 리스너 안에서 새로 문제를 출제하는 주석 코드에서 숫자배열 앞에 var 을 붙여 var 숫자배열 = []; 이렇게 하면 if문에 숫자배열.join('')코드의 join부분에서 에러가나고 var을 안붙이면 에러없이 잘 동작하는데 왜그런건가요?
- 미해결웹 게임을 만들며 배우는 자바스크립트
질문드립니다.
var num1 = Math.ceil(Math.random()*9); var num2 = Math.ceil(Math.random()*9); var ans = num1 * num2; var test = document.body; var word = document.createElement('div'); word.textContent = String(num1) + ' x ' + String(num2) + ' 는?'; document.body.append(word); var formtag = document.createElement('form'); document.body.append(formtag); var inputbox = document.createElement('input'); formtag.append(inputbox); var button1 = document.createElement('button'); button1.textContent ='입력'; formtag.append(button1); var result = document.createElement('div'); result.textContent = 'Great'; document.body.append(result); formtag.addEventListener('submit', function(event){ event.defaultPrevented(); if (ans === Number(inputbox.value)){ result.textContent = 'Great'; num1 = Math.ceil(Math.random()*9); num2 = Math.ceil(Math.random()*9); ans = num1 * num2; word.textContent = String(num1) + ' x ' + String(num2) + ' 는?' ; inputbox.value = ''; inputbox.focus(); }else { result.textContent = 'Wrong'; inputbox.value = ''; inputbox.focus(); } }) 이렇게 코드를 짜보았습니다구구단을 실행해서 답을 입력하고 엔터를 누르면 result.textContent = 'Great'; 이 동작이 수행되지 않습니다 그런데 inputbox의 value를 빈칸으로 하는건 작동하고 또 focus는 동작하지 않습니다.
- 해결됨웹 게임을 만들며 배우는 자바스크립트
안녕하세요 깊은 복사 부분에서 질문 있습니다.
안녕하세요. 강의 계속 듣다가 질문생겨서 여쭤봅니다. var arr1 = [1, 2, 3, [1, 2, 3]]; var arr2 = arr1.slice(); // 1번 arr2[3] = [2, 3, 4]; console.log(arr1); console.log(arr2); // 2번 arr2[3][1] = 6; console.log(arr1); console.log(arr2); 2번을 주석처리하고 실행하면 [ 1, 2, 3, [ 1, 2, 3 ] ] [ 1, 2, 3, [ 2, 3, 4 ] ] 1번을 주석처리하고 실행하면 [ 1, 2, 3, [ 1, 6, 3 ] ] [ 1, 2, 3, [ 1, 6, 3 ] ] 둘다 주석처리 안하면 [ 1, 2, 3, [ 1, 2, 3 ] ] [ 1, 2, 3, [ 2, 3, 4 ] ] [ 1, 2, 3, [ 1, 2, 3 ] ] [ 1, 2, 3, [ 2, 6, 4 ] ] 이렇게 나옵니다. 강의에서 1단계 값만 복사가 되고 배열 속 배열은 참조만 된다고 말씀하신걸로 알고 있습니다. 그런데 두 경우의 결과가 왜 다르게 나오는지 잘 모르겠습니다.
- 미해결웹 게임을 만들며 배우는 자바스크립트
document.createElement('')함수에서
안녕하세요, 강의 잘 보고있습니다! document.createElement('td')나 document.createElement('tr')에서 table태그에 td/tr 태그를 만들어라고 얘기해줘야 확실할 것 같은데 그냥 document.createElement()를 해도 알아서 table태그를 찾아서 td/tr을 붙혀주는 건 어떻게 그렇게 되는건가요? 아니면 제가 잘못 이해하고 있는 것 같은데.. 알려주시면 감사하겠습니다!
- 해결됨웹 게임을 만들며 배우는 자바스크립트
안녕하세요 클로저 부분에서 질문 있습니다.
코드 function one() { for (var i = 0; i < 3; i++) { setTimeout(function () { console.log(i); }, i * i * 100); } } function two() { for (var i = 0; i < 3; i++) { closure(i); } } function closure(i) { setTimeout(() => { console.log(i); }, i * i * 100); }; one(); two(); 생각한 실행 결과 3 3 3 0 1 2 실제 결과 3 0 3 1 3 2 이렇게 나오는데 혹시 생각한 실행 결과처럼 나오게 하려면 어떻게 할 수 있나요?
- 미해결웹 게임을 만들며 배우는 자바스크립트
안녕하세요 제로초님
안녕하세요 제로초님 프론트앤드 개발자를 희망하는 27살 취준생입니다. 지금 제로초님 강의를 발견하고 자바스크립트 강의를 열심히 따라가고 있습니다. 혹시 이 강의를 따라가면서 계속 복습하고 수업을 따라서 잘 이해하고 구현을 해보려고 한다면 HTML + CSS + Vanila Javascript 로만으로도 충분히 구현을 자유자재로 할수 있을까요? React나 Vue같은 프레임워크 or 라이브러리로 넘어가기 전에 자바스크립트를 충분히 이해하고 자유자재로 다룰수 있어야 한다고 해서 자바스크립트를 우선적으로 공부하려고 하고 있습니다. 취준이 급해서 초조하지만 제로초님 믿고 열심히 해보겠습니다. PS. 그리고 추가적으로 리액트 방향으로 공부해보고 싶은데 제로초님 강의를 Node.js는 구매한 상태입니다. 추가적으로 Nodebird와, Slack 클린 코딩정도만 구매해서 따라공부하면 취업하는데 충분할까요?
- 미해결웹 게임을 만들며 배우는 자바스크립트
끝말잇기 화면에 출력 반복문을 이용해서 횟수 제한
안녕하세요 선생님 강의 잘 보고 코드 열심히 따라해봤습니다! 그런데 게임에 횟수를 제한하려고 반복문을 설정하고 실행을 해봤는데 끝말잇기가 정답이어도 오답이라고 뜨네요...! 어떤 부분을 고쳐야 할까요? var answer = input.value; 을 반복문 안에 넣는것이 맞는걸까요?? 현재 코드는 이렇습니다 ! game = 0; form.addEventListener('submit' , callBack); function callBack(e){ e.preventDefault(); //기본동장을 막아줌 while (game <5) { var answer = input.value; if(firstWord.textContent[firstWord.textContent.length - 1] === answer[0]){ result.innerText = '딩동댕!'; firstWord.textContent = input.value; input.value = ""; input.focus(); } else{ result.innerText = '틀렸습니다!'; input.value = ""; input.focus(); } game++; } }
- 미해결웹 게임을 만들며 배우는 자바스크립트
안녕하세요 제로초님 질문있습니다
제로초님 코드같은거같은데 2번째 화면에서 끝말잇기.js를누르면 3번째화면이 뜹니다.. 어디부분이 잘못됐는지 잘모르겠습니다..
- 미해결웹 게임을 만들며 배우는 자바스크립트
안녕하세요 강의 정말 잘시청하고있습니다.
이렇게 작성해도 crearInterval이 도저히 작동하지않아서 이런식으로 return을 줘야 동작하더라구요... crearInterval에 인터벌을 줘도 찾지못하는..?? 제가 무언갈 잘못작성했을까요? 아니면 무언가변동사항이있는걸까요ㅠㅠ?
- 미해결웹 게임을 만들며 배우는 자바스크립트
?
어떻게 다운로드 하나요?
- 미해결웹 게임을 만들며 배우는 자바스크립트
틱택토 게임에서 게임이 끝나고
안녕하세요! 틱택토 게임이 끝나고 화면이 너무 빨리 초기화되는 듯 하여 추가로 setTimeout 이라는 함수를 발견해 결과를 띄워주고 3초 후에 화면초기화를 진행시켰습니다. 그런데, 게임이 끝나도 addeventlistener는 계속 먹혀서 아래화면처럼 끝난 후에도 계속 클릭이 됩니다. 턴을 'wait'으로 새로 지정해서 if(now(턴)===wait) C(칸).addeventlistener 이런식으로 하는 방법은 안먹히더라고요. addeventlistener를 특정 조건에 따라 막게 해줄 수 있는 방법이 있을까요? 감사합니다 :)
- 미해결웹 게임을 만들며 배우는 자바스크립트
9 곱하는게 이해가 안 되요~
Math.random()*9 에서 왜 9를 곱했더니 3.0484 같은 숫자가 나오는지 이해가 안되요 또, Math.random( ) 하면 항상 값이 0.3939 이런식으로 나오니까 정수로 만들려고 했는가 싶었는데요, 10도 아니고 왜 9를 곱해야하는지요?
- 미해결웹 게임을 만들며 배우는 자바스크립트
지뢰찾기 에러잡아내기에서 질문있습니다!
항상 친절한 답변 감사드려요 덕분에 열심히 공부하고 있습니다! 다름이아니라 '에러잡아내기' 강의 1:20 부근에 값이 false인 경우 값을 ''도출해주는 :: 이런 기호가 있는데 어떤 키인지.. 키보드에 없어서 궁금해서 올립니다 ㅜㅜ