9.01 AI SCHOOL-제어문, 전역/지역 변수, 스코프, 호이스팅, 반복문 2편

이민정·2021년 9월 1일
0

대구 AI SCHOOL

목록 보기
44/47

/> 4강 반복문

//반복문
// 어떠한 일정한 규칙을 가지고 있을때
//고정값 : console.log(2 );
//>>일정한 규칙을 갖고 있는<< 가변값 : 1,2,3,4,5,6,7,8,9
/

console.log(21);
console.log(2
2);
console.log(23);
console.log(2
4);
console.log(25);
console.log(2
6);
console.log(27);
console.log(2
8);
console.log(29);/

//while
/
var num = 1; // 반복문의 시작점 //2,3,4,....10 // 고정값
while (num < 10 ) { //조건 ,범위 설정
console.log(2
num); // 가변값
num++; //기존의 num값을 +1ㅎ기 // 가변값의 규칙

} //()안의 조건이 참일때 {}안의 내용을 실행한다.
// 반복문 조건이 거짓이 될때 까지 반복한.다 거짓이 되면 종료가 되서 다음으로 넘아감.

console.log("반복문 종료");

// 반복문의 주의점
// 조건이 거짓이 되는 순간을 만들어줘야 한다. 항상 참이 되는 걸 설정하면 무한 루프에 빠짇게 된다.

var num = 1;
while (num < 10 ) {
console.log(2num);
}
/

// do~while
/
var i = 12;
do {
console.log(i);
i++;
}while (i<10);
// 조건을 나증에 . 일단 실행시키고 조건은 참,거짓을 따지지 않고, 최소 1회실행하고 참 거짓을 따진다.
//최소 한 번의 실행을 보장하고 싶을때 사용.
/

//고정값
//일정한 규칙을 갖고 있는 가변값. 2가지 꼭 기억하기 . 각 항목에 ; 찍기 마지막은 생략 순서준수!!(시작,조건,규칙)
//i 는 전역변수
//for
/
var i;
for (i = 1; i < 10; i++) {
console.log(2
i );
}

for (var i = 1; i < 10; i++) { // 가변값의 시작, 조건, 일정한 규칙
console.log(2 * i );
}
//for안에 모든 걸 때려 넣는 while과 비교해보기
//for는 함수가 아니라서 안에 작성한것은 전역변수로 본다.

// 반복문 연습할때는 while보다 for문으로 연습하는 것이 용의하다.

*/

// 중첩 반복문
// 중첩 if와 유사
//중첩 for
//2단 ~9단
/
for(var i = 2; i < 10 ; i++) {
for (var j = 1; j < 10 ; j++){
console.log(i
j);
}
}

*/

//밖의 for문이 참이면 안의 for문이 작동이 된다. 안의 forr가 참이면 그 안의 내용을 실행
// 안의 for가 끝날때 까지 i는 2가 된다. > 안이 끝나면 밖이 실행된다. i=3 > 다시 안의 for문이 실행/밖의 상황이 달려저서 j=1로 초기화
//for문안에 새로운 for을 입력하는 방식으로 진행 / 안의 for이 끝나면 밖의 가변값이 변경이 되면서 안의 for가 초기화

// break,continue

/
// break :반복되는 구분에 특정값만 필요하고 나머지는 필요없음/
// i가 5가 되었을때 그 즉시 반복문이 종료
for (var i = 1; i < 10; i++ ) {
if (i === 5) {
break;
}
console.log( 2
i );
}
// 중간의 반복문을 탈출하고 싶을때

//continue : 특정값을 스킵하고 계속 진행

for (var i = 1; i < 10; i++ ) {
if (i === 5) {
continue;
}
console.log( 2 * i );
} //i=5스킵하고 계속

*/

//var arr = [ "바나나" ,"사과", "수박","토마토" ,"배", "포도"];
//console.log(arr);
// 고정값 : console.log(arr[]);
// 가변값 : 0,1,2
//console.log(arr[0]);
//console.log(arr[1]);
//console.log(arr[2]);

// 배열안이 데이터를 출력하는 for
/*
for (var i =0; i < 6; i++){
console.log(arr[i]);
}

/// tip 배열안의 데이터의 숫자를 모르면 위의 for작성시 어려움이 생긴다.
// 데이터의 갯수를 알려주는 프로펄티 length
console.log(arr.length);
for (var i =0; i < arr.length; i++){
console.log(arr[i]);
}
// arr.length사용해서 가변값의 쵀대값을 귀할 수 가 있다. 배열안에 모든 데이터를 접근할 수 있다.

//실무에게 많이 사용하는 방법!!!!!!!!
*/

//for ~in
/
for (var i in arr) { // 이것 자체가 규칙. 알아서 좌표가지고 옴
console.log(i);
console.log(arr[i]);
}
//i자체가 데이터의 좌표
/

//mdn javascript array 구글링

//익명함수 , 콜백함수
//.addEventListener("click", function()){}

/*

arr.forEach(function(element, index){ //매계변수의 순서가 중요

console.log(element); //배열안에 데이터의미
console.log(index);  // 데이터의 좌표의미

}) //<( 주의하가 뭘 닫고 열지

//함수를 인수로 전달 / 함수의 매개변수 값으로는 모든데이터 타입이 가능.
//콜백 함수

// 배열데이터타입에서 활용할 수 있는 메서드 위의 for~in 과 비슷
//retrun를 활용할 수 가 없음

// map 메서드
arr.map(function(element, index) {
console.log(element);
console.log(index);
})
// 첫 매개변수 -데이터 , 두번째는 데이터의 좌표
//forEach와 차이 점
// map는 retrun이 가능함 : map으로 돌린 값을 변화를 시켜서 다른 변수에 전달이 가능

var result = arr.map(function(element, index){
return element + " " + "10";

});

console.log(result);

// return 을 사용해서 일관된 값으 새로롭게 적용이 가능한 .

*/

// 객체에서 활용할 수 있는 반복문
/*
var student = {
name: "lee",
age: 20,
skills :["1", "2", "3"],
sum: function(num1, num2){
console.log(num1 + num2);
//name = "lee",
//age = 20,
//skill :["1", "2", "3"], = > : 으로 수정

}

}

// 객체안에 있는 벨류들을 반복문으로 출력을 하고 자 할때 for no
// for ~in
//student.name
//student['name'] 접근 방법 2가지 모두 알아야 함 for ~in 때문에

for (var prop in student) { // 변수를 만들고 접하고자 하는 객체 설정
console.log(prop); //키 값. 데이터가 들어가는 좌표
console.log(student[prop]); // 객체안에 접근할

} // r객체 안의 데이터 접근 법
*/

// 배열 : forEach(), map(), length
//데이터와 배열만 프로펄티 메서드 공부 나머지 는 mdn javascript +데이터 타입으로 구글링하기

// 문자열(spring) 의 주요 스킬
//length: 배열과는 다름
/*
var txtLength = " hello world ";

console.log(txtLength.length); // 문자길이(열)을 알 수 있다 공백포함

//>trim() : 공백 제외 순수 텍스트만 가지고 오고 싶다
console.log(txtLength);
console.log(txtLength.trim()); // 공백을 없애 주는 메서드
console.log(txtLength.trim().length);

//trim의 메서스의 활용
var result = prompt("이름을 입력해 주세요");

console.log(result);
//console.log(result.length); // 공백이 들어가서 불명백하게 들어간다. 이걸 방지하는 것
console.log(result.trim().length);
*/

//>charAt():해당 위치의 문자를 추출하는 메서드
//var str = "nice to meet you to"
// 다 셀수 가 없다 . 데이터가 많으면 모름. 이걸 도우는 length와 결함

//console.log(str.length);
// 항상 마지막 글자의 위치는 length-1이다.
//console.log(str.charAt(str.length - 1));
//console.log(str.charAt(0)); // 해당 문자열 위치의 문자데이터를 가지고 온다. 공백도 문자로 인식한다.

//>slice
// console.log(str.slice(0,6)); // ( 글자를 짜를 시작점, 어디까지 짜를 것인가?) 교집합만 잘라낸다 .
// console.log(str.slice(2,6)); // 교집합만 잘라낸다 . 해당위치 앞부분부터 시작함
// console.log(str.slice(2));// 시작만 설정하면 2부터 모두 잘라냄

//>split : 일정한 규칙으로 어떠한 문자를 잘라낼때 사용. 잘래낸 문자를 배열안에 담을때 사용.
// console.log(str.split(' ')); // 공백을 기준으로 배열안의 데이터로 들어감.
// console.log(str.split('/'));
// 특징이 문자열>배열로 데이터 타입으로 변경

//>replace :어떤 문자에서 단어를 선택. 그 단어를 다른 단어로 바꾸자 할때 사용.
// console.log(str.replace('nice', 'me')); // 첫 인자는 바꿀 대상 , 넣을 대상

// >indexOf : 어떤문자열에서 단어검색 > 어느 위치에 있는지 확인 가능 // 최초 시작되는 위치 좌표값을 줌
// 단어가 존재하지 않으면 -1를 준다
// 대 소문자를 구분한다.
// 같은 단어가 어려개 있어도 최초의 값을 보여준다.
//console.log(str.indexOf('to'));

/*
// toUpperCase(), toLowerCase() :일괄적으로 소문자/ 대문자로 바꾸자고 할때 사용하는 메서 드
// console.log(str.toUpperCase());
// console.log(str.toLowerCase());
// 실무사용
var search = prompt("검색어를 입력해주세요");

//if (search === "apple") {
// console.log("사과 데이터를 출력한다.");
//} else {
// console.log("false")
//}

//apple를 일부분 또는 전부 대문자일 경우 출력이 안됨( 거짓) js는 대소문자를 구분이 가능하기 때문

if (search.toLowerCase() === "apple") { // 입력한 값이 모두 소문자로 조건과 동일하게 만담
console.log("사과 데이터를 출력한다.");
} else {
console.log("false")
}
// 검색어와 결합해서 사용하는 경우가 많다.

mdn javascript spring 으로 공부하기
*/

// 배열에서 사용가능한 프로펄티와 메서드

//var arr = ["사과", "배", "수박"];

//console.log(arr.length); //배열의 데이터 갯수를 가르쳐주는 메소드

//> push () :배열안에 새로운 데이터를 추가 할때 사용하는 메서드 / 뒤에서 부터 넣는다
//arr.push("포도");
//arr.push("토마토", "딸기"); // 인수 갯수 제한이 없다.
//console.log(arr);

//>unshift() : 앞에서 부터 데이터를 넣고 싶은 경우
//arr.unshift("자몽");
//arr.unshift("폳오", "토마토"); // 인자하나하나 입력할때랑 한거번에 입력할때랑 데이터 배열순이 다를 수 있음을 유의 햐야 한다.
//console.log(arr);

// > pop() : 배열에서 제거 하는 메소드 뒤에서 부터 삭제
//arr.pop();
//console.log(arr);

// > shift(): 배열의 데이터를 앞에서 부터 삭제
//arr.shift();
//console.log(arr);

/*
var arr1 = ["사과", "포도","바나나"];
var arr2 = ["노트북", "마이크", "키보드"];

// >join () :배열을 어떠한 규칙하에 하나의 문자열로 만들고 싶음
var str1 = arr1.join(', '); // 규칙을 인자로 넣는다. ,기준으로 하나의 문자열로 형성
console.log(str1);

// > concat() : 두개의 배열을 합치고 싶을 때

var merge = arr1.concat(arr2); //d인수는 함치고자 하는 대상

console.log(merge); 이때까지 문자열과 배열이 사용가능한 메서드 */

profile
잘하고, 잘하고 싶고, 잘해야되는 사람

0개의 댓글

관련 채용 정보