let arr1 = [10, 20, 30, 40]; // 전통적 배열선언
let arr2 = Array(10, 20, 30); // 새로운 배열선언
for(i=0; i<arr1.length; i++) {
result += arr1[i];
} // 전통적인 배열검사
/** 새로운
배열검사 */
//for in
for( let i in arr1 ) {
console.log( arr1[i], i);
}
//for of
for (let value of arr1) {
console.log(value);
}
//배열과 함수
const doFunc1 = function(data1, data2) {
console.log(data1, data2);
}
//가변인자
const doFunc2 = function() {
//arguments : arguments에 대한 배열
//console.log(arguments.length);
for(i=0; i<arguments.length; i++) {
console.log(arguments[i]);
}
}
//다수의 인자를 넣어도 argument 예약어가 받아줌
doFunc2(10 + '하나');
doFunc2(10, 20);
doFunc2(10, 20, 30);
//가변숫자인자 (...변수명)
function addNum(...numbers) {
let sum = 0;
for(let number of numbers)
sum += number;
return sum;
}
console.log(addNum(1, 3));
console.log(addNum(1, 3, 5, 7));
let num1 = 10;
let num2 = num1;
console.log(num1, num2);
//값복사
num1 = 20;
console.log(num1, num2);
----------------------------
let arr1 = [1, 2, 3];
let arr2 = arr1;
console.log(arr1[0], arr1[1], arr1[2]);
console.log(arr2[0], arr2[1], arr2[2]);
//참조값 복사
arr1[0] = 100;
arr1[1] = 200;
arr1[2] = 300;
//Array 참조자료형이라 둘다 바뀜
console.log(arr1[0], arr1[1], arr1[2]);
console.log(arr2[0], arr2[1], arr2[2]);
Arr1의 주소값만 다르고 데이터 저장된곳은 같다. 저장소: Heap
[1, 2, 3] 에 달린 주소값이 arr1 배열에 배치된상태로
[100, 200, 300] 으로 저장소값이 바뀌어도 저장소는 같아서 같이 변경됨.