묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결웹 게임을 만들며 배우는 자바스크립트
Math.random()에 관해서
안녕하세요^^ 오늘도 강의 감사히 듣고 있습니다. 강의에서 Math.random()은 진짜 랜덤이 아니라고 하셔서 인터넷을 검색해보니 Math.random()은 0과1사이의 uniform distribution을 따르기 때문에 Math.ceil(Math.random()*100)을 했을때 2자리 수가 한자릿수에 비해 더 나올확률이 높아진다는것을 알게 되었습니다. (이 사이트를 통해서 알았습니다. https://stackoverflow.com/questions/1062902/how-random-is-javascripts-math-random) 그래서 제가 스케일을 100,1000, 조정해봤을때 그 비율이 실제와같은지 한번 체크해보려고 코드를 짜봤는데요. 제 코드에서는 숫자별로 비율이 비슷하게 나와서 제가 코드를 잘못짠건지 혹은 다른부분이 이상한지 잘모르겠어서 여쭤봅니다. 항상 강의 감사히 듣고있습니다. 아래는 제 코드이고 시행횟수와, 최대숫자를 조정할수 있습니다. 감사합니다. var 시행횟수 = 99999; var 최대숫자 = 1000; var 랜덤군 = []; for(i=0;i<시행횟수;i+=1){ //랜덤군에 랜덤넘버 하나씩 채워넣기 랜덤군.push(Math.ceil(Math.random()*최대숫자)); } console.log(랜덤군); var count = []; var 확률 = []; for(j=1;j<최대숫자;j+=1){// 채워넣었던 숫자를 하나씩 카운트하고 시행횟수로 나눠 확률알아보기 count[j-1]=0; for(var i = 0; i < 랜덤군.length; ++i){ if(랜덤군[i] == j) count[j-1]+=1; 확률[j-1]=count[j-1]/시행횟수; } } console.log(count); console.log(확률);
-
해결됨웹 게임을 만들며 배우는 자바스크립트
자바스크립트에서 줄바꿈을 하고싶습니다.
영상 너무 감사히 보고있습니다. 너무 잘 설명해 주셔서 감사드립니다. 너무 설명이 좋아서 이 시리즈가 끝나면 다른 시리즈도 계속 보고싶을 정도입니다. 제가 끝말잇기 프로그램을 따라서 만들고 있는데요. 현재 입력된 단어를 받으면서 원래 있던 단어가 지워지지 않고 계속 기록이 남아있는 상태로 계속 추가하고 싶은데요. 중간에 단어.textContent = 단어.textContent + '\n' +입력창.value; 이런식으로 하니깐 줄바꿈이 안되던데 줄바꿈을 하려면 어떻게 해야할까요? 영상 항상 감사히 보겠습니다. 좋은 하루되세요~ var 바디 = document.body; var 단어 = document.createElement('div'); 단어.textContent = '제로초'; document.body.append(단어); var 폼 = document.createElement('form'); 바디.append(폼); var 입력창 = document.createElement('input'); 폼.append(입력창); var 버튼 = document.createElement('button'); 버튼.textContent = '입력!'; 폼.append(버튼); var 결과창 = document.createElement('div'); 결과창.textContent = '결과'; document.body.append(결과창); 폼.addEventListener('submit', function (이벤트) { 이벤트.preventDefault(); if (단어.textContent[단어.textContent.length - 1] === 입력창.value[0]) { 결과창.textContent = '딩동댕'; 단어.textContent = 단어.textContent + '\n' +입력창.value; 입력창.value = ''; 입력창.focus(); } else { 결과창.textContent = '땡'; 입력창.value = ''; 입력창.focus(); } });
-
해결됨Angular, 앵귤러 100분 핵심강의
예제 파일은 홈페이지에서 다운받을 수 있다하는데 없네요.
회원가입후 강의 > 해당강의선택 > 자료 > 자료없음.
-
미해결트렐로 개발로 배우는 Vuejs, Vuex, Vue-Router 프론트엔드 실전 기술
쌤 도와주세요
11:40 부터 진행하는 '폼의 바깥을 누르면 닫히는기능'을 하고 있는데요.. (제 코드에 오타가 있을까봐) AddCard.vue와 List.vue를 전부 복붙도 해봤습니다. 복붙을 해도 안된다면 어디에서 문제가 있는걸까요? 저것만 적으면 잘되던 Add Card도 펼쳐지지 않습니다 ㅠㅠ. 오류를 해결할수있는 방법을 알려주셨으면 합니다. mounted() { this.setupClickOutside(this.$el) }, methods: { setupClickOutside(el) { document.querySelector('body').addEventListener('click', e => { if (el.contains(e.target)) return this.$emit('close') }) } }
-
미해결WEB2 - JavaScript
이거는 왜 안될까요?..... 아톰을 사용하고있습니다.
<!DOCTYPE html> <html > <head> <meta charset="utf-8"> <title></title> </head> <body> <h1>Loop & Array</h1> <script> var coworkers = ['kcj','kcj2','kcj3']; <h2>coworkers</h2> var i = 0; while(i<coworkers.length) { document.write('<li>+coworkers[i]+</li>'); i = i+1; } </script> </body> </html>
-
미해결함수형 프로그래밍과 JavaScript ES6+
function* 없이 지연성이 있는 함수를 만들 수 있을까요?
주어지는 generator기능이 없이, generator와 동일한 역할을 수행하는 함수를 코드로 보고 싶습니다.
-
미해결함수형 프로그래밍과 JavaScript ES6+
products가 사라져도 왜 괜찮은지 모르겠어요....
curry 함수에 의해서 products =>filter(p=>p.price <20000, products) 가 products ⇒ filter(p⇒p.price <2000)(products) 가 되는 것은 이해하였습니다. 다만 어째서 products ⇒ filter(p⇒p.price <2000)(products) 가 filter(p⇒p.price <2000) 랑 같은 것인지는 이해가 되지 않습니다. 모양 자체도 (인자) ⇒ (실행할 함수) 의 모양에서 아예 (함수) 의 모양으로만 바뀌었는데, 이렇게 될 경우 인자를 주지도 않고 작동하는 함수? 처럼 보입니다. 혹시 go 함수의 reduce 함수 자체가 이미 f(acc, a)를 할때 f(products, filter(....)) 와 같은 모양이 되기에 그런것일 까요?
-
해결됨Vue.js 시작하기 - Age of Vue.js
watch vs. computed 강의에서
아래 코드에서 설명하시고자 했던 부분이 'console.log(num)과 같은 단순한 로직보다는, axios.get(num)과 같은 무거운 로직의 경우에 watch의 사용이 보다 적절할 수 있다.' 가 맞나요? 입문자인데 console.log(num)와 axios.get(num) 가 가지는 차이가 와닿지 않아서 의도하신 설명이 이 맥락이 맞는지 여쭙니다.. 강의 잘듣고있습니다! methods: { fetchUserByNumber: function(num) { // console.log(num); axios.get(num) } }
-
해결됨Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
URL에 왜 #이 먼저 들어가 있나요?
안녕하세요. 예제를 따라하다 문득 궁금한게 생겨 연락 드립니다. ip:port/#/news처럼 왜 #을 사용하나요?
-
미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
삭제후 alert를 띄우는 코드
confirm을 통해 삭제 후 '삭제되었습니다.' alert를 띄울 때 동작은 잘 되는데 아래와 같은 에러가 뜨는 이유가 궁금합니다. _.go( Images.fetch(), Images.tmpl, $.el, $.append($.qs('body')), $.findAll('.remove'), $.on('click', async ({ currentTarget }) => ( await Ui.confirm('정말 삭제하시겠습니까?') && ( _.go( currentTarget, $.closest('.image'), $.remove, await Ui.alert('삭제되었습니다.'), ) ) )) );
-
미해결트렐로 개발로 배우는 Vuejs, Vuex, Vue-Router 프론트엔드 실전 기술
"export 'default' (imported as 'api') was not found in '../api'
actions를 적용하는 와중 "export 'default' (imported as 'api') was not found in '../api' 에러가 발생합니다. 참고로 import * as api from '../api'로 적용시켰습니다. creat board를 이용해서 타이틀을 작성하면 모달창은 닫히는데 board가 create이 실시간으로 안됩니다. 새로고침하면 추가한 board가 생기구요..
-
미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
reduce 보조 함수에 관한 질문입니다.
안녕하세요. 우선 좋은 수업 감사합니다! 😀 제 질문은 개인적으로 평소에 reduce를 이용해서 객체를 만들때 obj를 mutable하게 다루는 것이 아니라 아래 코드처럼 새로운 객체를 만들어 리턴하는 식으로 작성했었는데요. 저의 지식이 짧아 이와 같은 코드를 사용해도 괜찮은지, 혹은 단점이 있는지 궁금하여 질문 드립니다. 🤔 감사합니다. const object = entries => _.reduce( (obj, [k, v]) => ({ ...obj, [k]: v }), {}, entries, );
-
미해결Node.js 교과서 - 기본부터 프로젝트 실습까지
10장 4절 오류 메시지
안녕하세요? API <-> Call 간에 다음과 같은 오류 메시지가 발생하네요... web(localhost:8003/test)오류 메시지 :: Error: secret option required for sessions at session (C:\Users\pleoc\OneDrive\Documents\Start_up\javawork\nodebird-call\node_modules\express-session\index.js:200:12) at Layer.handle [as handle_request] (C:\Users\pleoc\OneDrive\Documents\Start_up\javawork\nodebird-call\node_modules\express\lib\router\layer.js:95:5).................console terminal Message ::[nodemon] starting `node app.js` express-session deprecated req.secret; provide secret option app.js:18:9 8003 '번 포트에서 대기중' GET /test 500 621.475 ms - 1444 express-session option 문제인 것 같은데, 도움을 받을 수있을까요?감사합니다.
-
미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
e를 구조분해를 통해 값을 불변적으로 다룰수있다는 것에 대해 궁금합니다
e를 통해 접근하면 웹 api가 e를 null로 초기화해버려 접근할 수 없게된다는 게 잘 이해가 되지않는데요. 이벤트 객체 e의 경우에는 웹 api가 콜스택이 끝나면 e를 null로 초기화하기 때문에 이벤트리스너가 비동기적 상황에서 e에 대한 클로저로 사용될수 없는건가요? 즉, 구조분해를 통해 이벤트객체가 아닌 currentTarget만 따로 뽑아서 클로저로 사용한다. 이런 뜻이 맞나요?
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
한글 입력시 이벤트가 두번 발생됩니다.
한글로 내용을 작성후 엔터키를 입력하면 이벤트가 두번 발생합니다. 캡틴 판교님의 마지막 강의에서도 시연 중 이런 현상이 있는 것으로 보였는데요. 이 문제에 대해 해결 방법이 있을까요? Vue.js 포럼에서는 CJK 언어에서 발생하는 문제로 keyup 이벤트가 발생할 때마다 해당 인풋의 value 값을 읽어와 임의로 업데이트 해주는 것으로 해결하라고 하던데, 버튼을 클릭하여 추가할 때는 문제가 없지만, 엔터키 입력시에는 문제가 발생하는 것 같아서요. 참고로 한번은 한글 내용이 담긴 채로 이벤트가 발생하고, 곧바로 빈 값을 이벤트가 한번 더 발생합니다. 빈 값일 경우에는 저장이 안되도록 예외 처리는 되어 있지만 빈 값일 경우 내용을 입력하세요 라는 alert을 띄우게 해놨더니, 한글 입력 -> 엔터 키 입력 -> 한글 내용 등록 -> alert 창 호출 이렇게 돌아가고 있습니다.
-
미해결Javascript ES6+ 제대로 알아보기 - 초급
왜 node 환경과 브라우저 환경에서 전역 this의 동작이 다른가요?
강의 중간에 나온 함수에서 `this.value = 3`이 브라우저 환경에선 window.value로 할당되는 반면 노드 환경에서는 왜 그렇게 동작하지 않는지 궁금합니다.
-
미해결자바스크립트로 알아보는 함수형 프로그래밍 (ES5)
=== 대신 == 를 쓰는 이유 . (함수형 자바스크립트)
``` // 2. _get 만들어 좀 더 간단하게 하기function _get(obj, key){return obj == null ? undefined : obj[key];}var user1 = users[0];console.log(user1.name);console.log(_get(user1, 'name'));// console.log(users[10].name); <-- 에러가 난다. 없는 값이므로.console.log(_get(users[10], 'name')); 위에서 return obj === null ? 이 아니라 obj == null 이라고 쓰는 이유가 있으신거 같은데, 전 자바스크립트 배울때 항상 === 이렇게 세개를 사용하라고 배웠거든요. 고급 수준 이상이 되면 == 와 ===의 차이를 이용해서 코딩을 하기도 한다고 들었는데.. 위의 _get 함수를 === 세개짜리를 사용해서 동일하게 작동하도록 하려면 어떻게 코딩 해야할까요?
-
미해결실습 UI 개발로 배워보는 순수 javascript 와 VueJS 개발
이벤트에 @를 붙이는 이유?
emit에전달하는이벤트명에@는꼭붙여야하는지요
-
미해결WEB2 - JavaScript
".", "()"의 기능은 어느 강좌에서 공부할 수 있나요?
(사진)
-
해결됨쉽고 자연스럽게 배워보는 Javascript 입문 - 코드스쿼드 마스터즈 코스 레벨1
질문 드립니다!
안녕하세요~! 1-10000사이 소수판별문제 질문드립니다! 1) numbers.all 배열 내에는 1과 10000 이 들어가있지 않은데 소수가 아니란 것을 알기에 배열 상 굳이 추가하지 않는 것인가요? 기타 메소드들의 함수식에도 1, 10000은 고려되지 않은 것으로 보이는데 위와 같은 이유인지 궁금합니다! 2) addPrime 메소드의 함수에 매개변수 number가 존재하는 이유는 무엇인가요?! 3) 결과로 numbers.getAllPrimeNumbers();를 출력함에 있어서 div 태그를 이용하는 것은 후에 해당 결과값의 수식(?)을 위함인가요? 수업 잘 듣고있습니다! 감사합니다!