숙제
? 이거 왜쓰는지 알아오기
<% %>이거 왜 쓰는지 알아오기
스코프 조금 더 개념 확실하게 해서 알아오기
해설
let evenNums ='';
let evenSum =0;
let isFirst = true;
//5%2 =1 -> 1:홀수, 0:짝수
for(let i=1; i<101; 1+=1){
if(i%2 ==0) {
if(isFirst) {
evenNums += i;
isFirst = false;
}else{
evenNums += `, ${i}`
}
evenSum +=i;
}
}
console.log(`짝수: ${evenNums}\n짝수들의 합: ${evenSum}`);
</script>
isFirst는 처음값만 true로 가니 evenNums +=i;로 가고
두번째부터는 isFirst값이 false가 되니 evenNums +=`, ${i}`로 감
문제
<script type="text/javascript">
for(let times =2; times <10; times +=1){
let timesPrint = `------${times}-------\n`;
for(i=1; i<10; i++){
let result = (times*i) <10 ? `0${(times*i)}`
:(times*i);
timesPrint += `${times} X ${i} = ${result}\n`;
}
console.log(timesPrint);
}
</script>
배열
- 하나의 저장소를 분할하여 데이터를 저장하는 객체
- 나눠진 데이터의 저장소(요소)의 주소는 index라고 한다.
- index는 0부터 시작된다.
- 배열 객체에 담긴 대상을 요소(원소) 라고 한다.
예시)
답)
배열에 값 대입 및 접근
- 배열의 인덱스로 배열의 값에 접근 혹은 대입이 가능하다.
배열객체의 속성 및 메서드
(객체에는 속성과 메서드가 있다.)
- length : 배열의 크기를 알수 있는 속성
- push() : 배열에 값을 삽입하는 메서드
- pop() : 배열의 마지막 요소 제거 후 제거된 요소 반환
- splice(삭제를 시작할 인덱스, 삭제할 요소수) : 특정배열 요소 삭제
- Array.isArray(배열 변수명) : 배열 여부 확인(배열인지 아닌지 boolean으로 알려줌)
얕은복사 vs 깊은복사(shallow copy deep copy javascript)
- 얕은복사: 새로운 복합 객체를 만들고,(가능한 범위까지) 원본 객체를 가리키는 참조를 새로운 복합 객체에 삽입
복사 후 같은 주소를 참조 (인스턴스 생성 x)
'주소 값'을 복사한다는 의미
- 깊은복사: 새로운 복합 객체를 만들고, 재귀적으로 원본 객체의 사본을 새로 만든 복합 객체에 삽입
복사 후 다른 주소를 참조 (인스턴스 생성 o)
'실제 값'을 새로운 메모리 공간에 복사하는 것을 의미
왜 중요한지 코드로 설명
'실제 값'을 변화시키지 않기 위해, 복사꺼는 새롭게 객체로 생성을 하기때문에
답)
배열과 반복문의 이해(in, of, arr)
<script type="text/javascript">
const arr = [
'서강준', //1 0
'손석구',//2 1
'카리나',//3 2
'태연',//4 3
'뉴진스',//5 4
'아이유',//6 5
];
for(let idx=0; idx<arr.length; idx++){
console.log(arr[idx], `배열의 ${idx}번째 요소`);
}
//for of 배열을 순회하면 "배열요소"를 변수에 담는다.
let idx=0;
for(let name of arr) {
console.log(name, `배열의 ${idx++} 요소`);
}
//for in 배열을 순회하면서 "배열의 인덱스"를 변수에 담는다.
//객체(Java : Class로 생성된 객체)
for(let idx in arr){ ///in은 index순서를 가져옴
console.log(arr[idx], `배열의 ${idx} 요소`);
}
</script>
답)
완전 중요한 문제(별 10개, 계속 반복하셈 이해하고, 내가 스스로 만들때까지)
<script type="text/javascript">
const arr2 = [4, '손흥민', 1, '황희찬', 2, '이강인', '김승규', 3, undefined, null, true];
//index[1,2,3,4] 의 값만 들고 와야됨
let isFirst = true;
let namePrint=''
for(let name of arr2){
if(typeof name == 'string') {
if(isFirst){
namePrint +=name;
isFirst = false;
}else {
namePrint +=`, ${name}`;
}
}
}
console.log(namePrint);
</script>
실습3)완전중요!!! 꼭 10번 더 풀어보고 이해하고 넣어가기
답)
<script type="text/javascript">
var nArr = [13,15,20,22,35,50,70,99];
let evenTotal = 0;
const evenArr = [];
for(let num of nArr) {
if(num % 2==0){
evenTotal += num;
evenArr.push(num);
}
}
console.log(`짝수의 합: ${evenTotal}`);
console.log(`짝수배열: ${evenArr}`);
</script>
실습4)완전중요!!! 꼭 10번 더 풀어보고 이해하고 넣어가기
<script type="text/javascript">
var nArr01 = [60, 70, 55, 60, 80, 99];
const passArr = [];
let total = 0;
for(let score of nArr01){
total +=score;
if(score >=60) passArr.push(score);
}
console.log(`학생들의 평균점수: ${parseInt(total/nArr01.length)}`);
console.log(`60점이상 학생수: ${passArr.length}명`);
</script>
실습6
)0~1000까지 홀수인 숫자만 배열에 담으시오. 홀수들의 합산을 구하시오.
답)
<script type="text/javascript">
var nArr01 = [];
let oddTotal1 =0;
for(let num=0; num<1001; num++){
if(num %2==1){
nArr01.push(num);
oddTotal1 +=num;
}
}
console.log(`홀수배열: ${nArr01}`);
console.log(`홀수합산: ${oddTotal1}`);
</script>
'기록(노트)' 카테고리의 다른 글
실습)jsp와java연결_화면에서 두수입력받아_계산결과를 화면에출력 (0) | 2023.03.27 |
---|---|
JavaScript 배열 및 arr[arr.length] 이해2/객체선언 (0) | 2023.03.24 |
추상 클래스 (0) | 2023.03.22 |
상속(부모,자식객체) (0) | 2023.03.21 |
상속,인터페이스 (0) | 2023.03.21 |