묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결인터랙티브 웹 개발 제대로 시작하기
강의소개 페이지에 있는 우주 인터렉티브 웹을 만들고싶은데
몇강을 참고하면 만들 수 있을까요? 우주 속으로 빨려 들어가는 애니메이션을 구현하고싶어서 여쭤봅니다. 답변 부탁드립니다.
-
미해결코어 자바스크립트
init() 을 쓰는 이유 질문드려요!
클로저 강의를 듣다보니 문득 궁금한것이 생겼는데요. 자바스크립트에서는 다른 언어들(c나 자바) 처럼 init 이라는 개념자체가 없다고 알고있습니다. 어느 패턴은 js 파일 맨 밑에 var test = document.getElementById("test"); // 함수부분은 생략. function init() { testFunc(); test.addEventListener("click", test2Func); } init(); 위와 같이 init 함수를 임의로 만들어놓드라구요. (제가 생각하기에는) 그 안에다 최초 실행되는 이벤트들을 보기 좋게 모아둔 함수 인것 같은데요. 구글에 검색해보았을때는 키워드가 잘못된건지, 위 코드와 같은 패턴에 대한 정보를 찾지 못하겠습니다.ㅜ 대강... 조각들을 맞춰보면 변수들을 계속해서 유지? 사용하기 위한?? 초기화...?? 를 위한 함수 라는데 그게 정확히 있고 없고에 차이를 모르겠습니다. 답변 주시면 감사하겠습니다! 강의 항상 잘보고있어요
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
import { router } from './router/index.js';
강사님 안녕하세요. 강의 잘 보고 있습니다. import { router } from './router/index.js'; 와 import router from './router/index.js'; 의 차이는 무엇인가요?? 아래로 썼다가 라우터가 동작을 안해서 한참 찾아보니 저런 오타가 있었네요...
-
미해결함수형 프로그래밍과 JavaScript ES6+
a.then()을 return 하는 이유가 뭐고 어떻게 동작하는 건가요?
5:18 쯤에 return a.then()을 작성하시는데 여기서 a.then을 왜 return 하는지 모르겠어요. if (a instanceof Promise) { a.then(a => { res.push(a); if (res.length == l) return res; } } else { res.push(a); if (res.length == l) return res; } 그냥 이렇게 작성하면 안 되는 건가요? 그 뒤에 재귀함수로 작성하기 위해서 그런 건가요? 그리고 재귀함수에서 동작이 이해가 안 가는 게 있는데 재귀함수 recur() 안에서 return a.then()을 하면 결국 Promise를 반환하는 거니깐 거기서 재귀가 끝나게 되는 거 아닌가요? a.then() 안에서 recur()를 호출한다 하더라도 처음에 실행했던 recur()와는 별개로 동작하는 것처럼 보이는데 실행 흐름이 어떻게 되는지 궁금합니다. 제 생각에는 만약 take에 넘어오는 이터러블이 [Promise.resolve(1), Promise.resolve(2), Promise.resolve(3)]이고, take(2)를 했을 때, 재귀를 다 돌고 최종적으로 return 되는 값이 Promise.resolve(1).then(() => Promise.resolve(2).then(() => [1, 2])) 이런 식으로 될 것 같은데 이게 맞나요?
-
미해결모던 자바스크립트(javascript) 개발을 위한 ES6 강좌
let 과 var
es6 문법에서 var 보단 let 을 권장하셨는데 for문을 비롯한 block scope 에 저장되는 값이기 때문인가요? let 대신 var 를 쓸 때의 장단점을 알고 싶습니다.
-
미해결모던 자바스크립트(javascript) 개발을 위한 ES6 강좌
ES5라면 어떻게 구현해야 할까요?
이렇게 구현하면 되는지 더 좋은 방법은 없는지 궁금합니다. for (var i = 0; i < list.length; i++) { ((num) => { list[num].addEventListener('click', ()=> { console.log(`${num}: ${list[num].innerHTML}`); }); })(i); }
-
미해결함수형 프로그래밍과 JavaScript ES6+
take 내부의 이터레이터 클로저에 대해
while (!(cur = iter.next()).done) { let a = cur.value; 를 for (const a of iter) { 로 바꾸면 비동기상황에서 iter를 기억하지 못해서 하나만 take하게 되더라구요. 두 문법이 같은 걸로 알고있는데 for of 내부의 이터레이터는 클로저로 사용될수없나요? 이런경우엔 while밖에 쓸수없는건가요? 클로저로 사용되려면 함수내부에서 표현식 안에 갖혀있어야된다는 조건? 같은게 있나요?
-
미해결React로 NodeBird SNS 만들기
sudo 계정이후 permission denied
안녕하세요 영상 보고 첫 배포 성공 후, 똑같은 코드를 깃허브에서 다시 다운받아서 다시 배포하는 연습을 하고 있습니다. front 서버에 배포를 하려고 하는데 - sudo su - npm run build ( build 디렉토리는 /home/ubuntu/새로정의한프로젝트명/front) 여기서 permission denied가 떨어지네요 이하 에러 로그입니다.=------------------------------------------------> root@ip-172-31-35-199:/home/ubuntu/zepettoland/ch9_zepettoland/front# npm run build > react-nodebird-front@1.0.0 build /home/ubuntu/zepettoland/ch9_zepettoland/front > cross-env ANALYZE=true next build sh: 1: cross-env: Permission denied npm ERR! code ELIFECYCLE npm ERR! errno 126 npm ERR! react-nodebird-front@1.0.0 build: `cross-env ANALYZE=true next build` npm ERR! Exit status 126 npm ERR! npm ERR! Failed at the react-nodebird-front@1.0.0 build script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /root/.npm/_logs/2019-11-25T03_23_39_728Z-debug.log 기존 소스에 프로젝트명만 바꾼건데요 문의드리겠습니다. 감사합니다.
-
미해결쉽고 자연스럽게 배워보는 Javascript 입문 - 코드스쿼드 마스터즈 코스 레벨1
질문
<script> n=Number(prompt("2 이상의 정수를 입력해주세요.")); for(var i=2; i<n; i++){ if(n % i === 0){ document.write(n+"은 소수가 아닙니다."); break; }else{ document.write(n+"은 소수입니다."); } } </script> 혹시 이렇게 작성하면 안되는건가요?
-
미해결Vue.js 시작하기 - Age of Vue.js
ctrl \하니까 새창이 생겨요
메뉴가 닫히는게 아니라 새창이 생겨요 도와주세요윈도우입니다
-
해결됨Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
git권한 부탁드립니다.
인프런닉네임: codingc인프런이메일: codingc@hanmail.netgithub: codingc@hanmail.net닉네임: codingc1
-
미해결함수형 프로그래밍과 JavaScript ES6+
products가 사라지는 부분
다른분이 질문한것에서 저도 의문이 생겼는데 답변을 봐도 이해가 잘되지않습니다. curry함수에 의해서 products =>filter(p=>p.price <20000, products)가 products ⇒ filter(p⇒p.price <2000)(products)로 변화되고 filter(p⇒p.price <2000) 이렇게 축약되었을때 어떻게 같게 작동하는지 모르겠습니다. a => f(a) 라는 함수는 그냥 f와 하는일이 같다는 말이 이해가 잘안됩니다. 조금만 더 풀어서 설명부탁드립니다.
-
해결됨TDD 개발 방법론을 활용한 React Native 앱 개발
No tests found, exiting with code 1 에러
{ "name": "ReactNativeTDD", "version": "0.0.1", "private": true, "scripts": { "android": "react-native run-android", "ios": "react-native run-ios", "start": "react-native start", "test": "jest", "lint": "eslint ." }, "dependencies": { "react": "16.9.0", "react-native": "0.61.1" }, "devDependencies": { "@babel/core": "^7.6.2", "@babel/runtime": "^7.6.2", "@react-native-community/eslint-config": "^0.0.5", "babel-jest": "^24.9.0", "eslint": "^6.5.1", "jest": "^24.9.0", "metro-react-native-babel-preset": "^0.56.0", "react-test-renderer": "16.9.0" }, "jest": { "preset": "react-native" } } __tests__ 폴더명 변경 시 yarn run test 를 하게 되면 testMatch: **/__tests__/**/*.[jt]s?(x), **/?(*.)+(spec|test).[tj]s?(x) - 0 matches 이렇게 테스트가 작성된 폴더를 찾지 못하는 경우가 있습니다. 강의의 진행과 동일하게 했는데도 이렇게 에러가 나네요. 검색 결과 package.json 파일에서 "jest" : { "preset": "react-native", "testRegex": "(/tests/.*|(\\.|/)(test))\\.js$" } 이렇게 testRegex 에 대한 추가 설정을 해주고 나면 테스트 폴더가 잡힙니다. 무슨 문제인지 알고 싶습니다.
-
미해결Node.js 웹개발로 알아보는 백엔드 자바스크립트의 이해
network status가 200이 아니라 304가 뜨는데 왜 그런걸까요?
network status가 200이 아니라 304가 뜨는데 왜 그런걸까요?
-
미해결코어 자바스크립트
안녕하세요 혹시 ppt 자료는 어디서 받을 수 있나요?
안녕하세요 혹시 ppt 자료는 어디서 받을 수 있나요? ppt를 프린트해서 정리해서 보고자 합니다.
-
미해결웹 게임을 만들며 배우는 자바스크립트
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>