- 
          
          [멋쟁이사자처럼] 주말 JS 기초 특강 코드 모음 - 230819Front-end 개발 2023. 8. 19. 14:00
 목차 1. 네이버 로또 번호 바꾸기 2. 조건문 3. 반복문 
 여기에서 나온 모든 예제는 크롬 브라우저의 개발자 모드에서 수행함. 1. 네이버 로또 번호 바꾸기
 1-1. 첫번째 로또 공 숫자 바꾸기 - 자바스크립트로 첫번째 로또 공의 숫자를 바꾸기 // 첫번째 로또 공 dom 요소 가져오기 const ball1 = document.querySelector('#main_pack > div.sc_new.cs_lotto._lotto > div > div.content_area > div > div > div:nth-child(2) > div.win_number_box > div > div.winning_number > span:nth-child(1)'); console.dir(ball1); // 첫번째 로또 공(ball1)의 개체의 속성 ball1.innerHTML // 첫번째 로또 공의 속성 중 text 가져오기 (HTML 요소) ball1.innerHTML = 10; // ball1의 text 바꾸기 // 함수로 만들기 function 첫번째공바꾸기(numStr){ const ball1 = document.querySelector('#main_pack > div.sc_new.cs_lotto._lotto > div > div.content_area > div > div > div:nth-child(2) > div.win_number_box > div > div.winning_number > span:nth-child(1)'); ball1.innerHTML = numStr; } 첫번째공바꾸기(3); // 첫번째 로또 공의 글자를 3으로 바꾸기- 프롬프트로 입력받은 숫자로 첫번째 로또 공 바꾸기 function 첫번째공바꾸기(numStr){ // 첫번째 로또 공의 요소의 js path copy const ball1 = document.querySelector("#main_pack > div.sc_new.cs_lotto._lotto > div > div.content_area > div > div > div:nth-child(2) > div.win_number_box > div > div.winning_number > span:nth-child(1)"); ball1.innerHTML = numStr; } const numStr = prompt(); 첫번째공바꾸기(numStr);1-2. 첫번째 로또 공을 클릭해서 숫자 바꾸기 - 순서 (1) 로또 공을 클릭하는걸 인식해야함 (2) 그리고 인식이 되면 만들어둔 함수에 값을 입력할수도 있어야함 (3) 값을 입력하면 화면의 공 숫자가 바뀜 - 마우스로 클릭하고 프롬프트로 입력을 받아 로또 공의 숫자 바꾸기 // 로또 공을 클릭하는 걸 인식해야함 // 그리고 인식이 되면 만들어둔 함수에 값을 입력할수도 있어야함 // 값을 입력하면 화면의 공 숫자가 바뀜 const ball1 = document.querySelector('#main_pack > div.sc_new.cs_lotto._lotto > div > div.content_area > div > div > div:nth-child(2) > div.win_number_box > div > div.winning_number > span:nth-child(1)'); function 클릭했을때() { const numStr = prompt("로또번호를 입력하세요"); ball1.innerHTML = numStr; } ball1.addEventListener("click",클릭했을때); // 첫번째 공 클릭하고 숫자넣으면 바꾸기 // 로또의 첫번째 공을 클릭하면 프롬프트가 뜬다.2. 조건문
  프로그래머 유머 (아보카도) - 프로그래머 유머로 나오는 아보카도 사오기를 조건문으로 구현해본다. let 아보카도 = true; if (아보카도) { console.log("아보카도 있었어(우유6개사옴)") } else { console.log("아보카도 없었어(우유1개사옴)") } // 아보카도 있었어 (우유 6개 사옴) function 여보우유사와() { 아보카도개수 = prompt("아보카도몇개"); if (Number(아보카도개수)>0) { console.log("아보카도 있었어 (우유6개사옴)"); } else { console.log("아보카도 없었어 (우유1개사옴)"); } } 여보우유사와();3. 반복문
 3-1. for 문 - for 문으로 구구단 구현히기 let str = ''; for (let i=1; i<10; i++) { console.log(`9 x ${i} = ${9*i}`) } console.log(str);3-2. while 문 - 조건식은 코드블럭({})이 실행되기 전에 평가된다. - while 문으로 구구단 구현히기 // 1부터 9까지 수에 9를 곱합니다. // 9에 어떤 수를 곱할 것입니다. // 어떤 수는 1부터 시작하고, 1씩 증가하여 10보다 작을때 증가가 멈춥니다. // 이렇게 어떤수와 9를 곱한 값을 출력합니다. let i = 1; while (i<10) { console.log(9*(i++)); // i++ }3-3. 배열의 반복 메소드 : arr.map() - map 메소드의 원리 - 배열요소 각각에 대해서 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환한다. const arr = [1,2,3,4,5,6,7,8,9]; for (let index = 0; index < 9; index++) { // 구구단 console.log(arr[index]*9); } for (let index = 0; index < 9; index++) { // mapping 해서 새로운 배열 변환 arr[index] = arr[index]*9; }const arr = [1,2,3,4,5,6,7,8,9]; function 곱하기구해주는함수(num) { // 9를 곱해주는 함수 return num*9; } arr.map(곱하기구해주는함수) // 콜백함수로 mapping 해주는 함수const arr = [1,2,3,4,5,6,7,8,9]; arr.map(function(num){ return num*2; }) // [2, 4, 6, 8, 10, 12, 14, 16, 18] // 배열의 map 메소드는 값을 하나씩 던저주는 애다.const arr = [1,2,3,4,5,6,7,8,9]; arr.map(function (num,index,arr) { console.log(num,"현재값입니다."); console.log(index,"인덱스입니다."); console.log(arr,"배열입니다."); }) arr.map(console.log); // num index arr가 들어간다. // 1 0 (5) [1, 2, 3, 4, 5] // 2 1 (5) [1, 2, 3, 4, 5] // 3 2 (5) [1, 2, 3, 4, 5] // 4 3 (5) [1, 2, 3, 4, 5] // 5 4 (5) [1, 2, 3, 4, 5]3-4. 배열의 반복 메소드 : arr.forEach() - map 매서드와 달리 arr.forEach() 는 리턴값이 없다. - 단순히 원소들을 하나하나 던져준다. const arr = [1,2,3,4,5,6,7,8,9]; arr.forEach(function(num) { console.log(num); }) // map 매서드와 달리 리턴값이 없다.3-5. do...while - 무조건 do 의 코드 블럭을 일단 실행하고 반복하기 let result = ''; let i = 0; do { i = i + 1; result = result + i; } while (i < 5); console.log(result); // 123453-6. 배열의 반복 메소드: for...of arr = [1,2,3,4,5,6,7,8,9]; for (const item of arr) { console.log(item); }3-7. 객체의 반복 메소드 : for...in - 객체 안의 프로퍼티 개수 만큼 순환하고 키가 들어간다. const object = { a:1, b:2, c:3}; for (const property in object) { console.log(`${property}: ${object[property]}`); } // "a: 1" // "b: 2" // "c: 3"const object = { a:1, b:2, c:3}; for (const property in object) { if (property == "a") { console.log("a가 있습니다."); } } if(object[a]) { console.log("a가 있습니다."); }const object = {a:1, b:2, c:3, d:4, e:5, f:6, g:7, h:8, i:9}; // 9단 만들기 for (const property in object) { console.log(object[property]*9); }- 배열에서 for...in 사용하기 const arr = [1,2,3,4,5,6,7,8,9]; function 곱하기구해주는함수(num) { // 9를 곱해주는 함수 return num*9; } for (const item in arr) { console.log(곱하기구해주는함수(item)); // index 가 들어감 } for (const item in arr) { console.log(곱하기구해주는함수(arr[item])); // 배열의 원소 값이 들어감 }- for...in 은 객체의 반복을 위해 만들어 졌으며, 인덱스 순서가 중요한 배열(Array) 반복에서 사용은 추천하지 않는다. - 배열 또한 객체이므로 프로퍼티가 포함될 수 있다. - for..in은 특정 순서에 따라 인덱스를 반환하는 것을 보장할 수 없다. - 반복되는 순서는 구현에 따라 다르기 때문에, 배열의 반복이 일관된 순서로 수행되지 못할 수 있다. - 그렇기 때문에 배열에는 for...in 문을 사용하지 말고 일반적인 for문이나 for...of 문 또는 forEach() 메서드를 사용하길 권장한다. const arr = [1,2,3]; arr.x = 10; // 배열도 객체이므로 프로퍼티를 가질 수 있다. for (const i in arr) { // 프로퍼티 x 도 출력된다. console.log(arr[i]); // 1 2 3 10 } // arr.lenght 는 3이다. for (let i=0; i<arr.length; i++){ console.log(arr[i]); // 1 2 3 } // forEach 메서드는 요소가 아닌 프로퍼티는 제외한다. arr.forEach(v => console.log(v)); // 1 2 3 // for...of는 변수 선언문에서 선언한 변수에 키가 아닌 값을 할당한다. for (const value of arr) { console.log(value); // 1 2 3 }'Front-end 개발' 카테고리의 다른 글JS 클로저 - 캡슐화와 정보 은닉 (0) 2023.08.21 [이력서] 직무(JD)분석 - 카카오 (지도서비스/FE플랫폼팀) (0) 2023.08.20 [멋쟁이사자처럼] 프론트엔드스쿨 7기 - 31일차 기록 및 복습 (JSON, DOM) (0) 2023.08.18 JS 클로저 (0) 2023.08.18 [멋쟁이사자처럼] 프론트엔드 스쿨 7기 - 29일차 기록 및 복습 (0) 2023.08.16