반응형
자바스크립트는 개발자가 웹 사이트의 대화형 프론트엔드 요소를 구축할 때 웹 요소를 완벽하게 제어하기 위해 사용하는 객체 지향 프로그래밍 언어입니다. 대부분의 브라우저는 내장된 실행 환경으로 인해 이 적응형 언어를 지원합니다. 개발자는 이를 HTML, CSS, JS 프레임워크와 결합하여 강력한 웹 프로그램을 만들 수 있습니다.
JS를 처음 시작하는 사람은 몇 가지 자바스크립트 프로젝트를 통해 자신의 기술과 지식을 테스트해야 합니다. 이를 통해 실무 경험을 쌓고 작동 원리에 대한 실질적인 아이디어를 얻을 수 있습니다.
Array Functions
/**
* Array Functions
*/
let iveMembers = [
'안유진',
'가을',
'레이',
'장원영',
'리즈',
'이서',
];
console.log(iveMembers);
// push()
console.log(iveMembers.push('코드팩토리'));
console.log(iveMembers);
console.log('---------------_');
// pop()
console.log(iveMembers.pop());
console.log(iveMembers);
console.log('---------------_');
// shift()
console.log(iveMembers.shift());
console.log(iveMembers);
// unshift()
console.log(iveMembers.unshift('안유진'));
console.log(iveMembers);
console.log('---------------_');
// splice()
console.log(iveMembers.splice(0, 3))
console.log(iveMembers);
iveMembers = [
'안유진',
'가을',
'레이',
'장원영',
'리즈',
'이서',
];
console.log(iveMembers);
// concat()
console.log(iveMembers.concat('코드팩토리'));
console.log(iveMembers);
// slice()
console.log(iveMembers.slice(0, 3));
console.log(iveMembers);
// spread operator
let iveMembers2 = [
...iveMembers,
];
console.log(iveMembers2);
let iveMembers3 = [
iveMembers,
];
console.log(iveMembers3);
console.log('--------------');
let iveMembers4 = iveMembers;
console.log(iveMembers4);
console.log(iveMembers4 === iveMembers);
console.log([
...iveMembers,
] === iveMembers);
// join()
console.log(iveMembers.join());
console.log(iveMembers.join('/'));
console.log(iveMembers.join(', '));
// sort()
// 오름차순
iveMembers.sort();
console.log(iveMembers);
console.log(iveMembers.reverse());
let numbers = [
1,
9,
7,
5,
3,
];
console.log(numbers);
// a, b를 비교했을때
// 1) a를 b 보다 나중에 정렬하려면 (뒤에두려면) 0보다 큰 숫자를 반환
// 2) a를 b 보다 먼저 정렬하려면 (앞에두려면) 0보다 작은 숫자를 반환
// 3) 원래 순서를 그대로 두려면 0을 반환
numbers.sort((a, b) => {
return a > b ? 1 : -1;
});
console.log(numbers);
numbers.sort((a, b) => a > b ? -1 : 1);
console.log(numbers);
// map()
console.log('--------------');
console.log(iveMembers.map((x) => x));
console.log(iveMembers.map((x) => `아이브: ${x}`));
console.log(iveMembers.map((x) => {
if (x === '안유진') {
return `아이브: ${x}`;
} else {
return x;
}
}));
console.log(iveMembers);
// filter()
numbers = [1, 8, 7, 6, 3];
console.log(numbers.filter((x) => x % 2 === 0));
// find()
console.log(numbers.find((x) => x % 2 === 0));
// findIndex()
console.log(numbers.findIndex((x) => x % 2 === 0));
// reduce()
console.log(numbers.reduce((p, n) => p + n, 0));
// reduce() 퀴즈
// reduce() 함수를 사용해서 iveMembers 변수에 있는 모든 스트링 값들의
// 길이를 더해서 반환하라.
// 참고로 string의 길이는 .length를 이용해서 구할 수 있다.
console.log(iveMembers.reduce((p, n) => p + n.length, 0))
Object / 객체
/**
* Object / 객체
*/
// key : value pair
let yuJin = {
name: '안유진',
group: '아이브',
dance: function () {
return `${this.name}이 춤을 춥니다.`;
}
};
console.log(yuJin);
console.log(yuJin.name);
console.log(yuJin['name']);
const key = 'name';
console.log(yuJin[key]);
console.log(yuJin.dance());
const nameKey = 'name';
const nameValue = '안유진';
const groupKey = 'group';
const groupValue = '아이브';
const yuJin2 = {
[nameKey]: nameValue,
[groupKey]: groupValue,
dance: function(){
return `${this.name}이 춤을 춥니다.`;
}
}
console.log(yuJin2);
console.log(yuJin2.dance());
yuJin2['group'] = '코드팩토리';
console.log(yuJin2);
yuJin2['englishName'] = 'An Yu Jin';
console.log(yuJin2);
delete yuJin2['englishName'];
console.log(yuJin2);
/**
* const로 선언한 객체의 특징
*
* 1) const로 선언할경우 객체 자체를 변경 할 수는 없다.
* 2) 객체 안의 프로퍼티나 메서드는 변경 할 수 있다.
*/
const wonYoung = {
name: '장원영',
group: '아이브',
}
console.log(wonYoung);
// wonYoung = {};
wonYoung['group'] = '코드팩토리';
console.log(wonYoung);
/**
* 모든 키값 다 가져오기
*/
console.log(Object.keys(wonYoung));
/**
* 모든 벨류값 다 가져오기
*/
console.log(Object.values(wonYoung));
const name = '안유진';
const yuJin3 = {
name: name,
name,
};
console.log(yuJin3);
copy by value 값에 의한 전달
copy by reference 참조에 의한 전달
/**
* copy by value 값에 의한 전달
* copy by reference 참조에 의한 전달
*
* 1) 기본적으로 모든 primitive 값은 copy by value다
* 2) 객체는 copy by reference다
*/
let original = '안녕하세요';
let clone = original;
console.log(original);
console.log(clone);
clone += ' 안유진 입니다.';
console.log('--------------');
console.log(original);
console.log(clone);
let originalObj = {
name: '안유진',
group: '아이브',
};
let cloneObj = originalObj;
console.log(originalObj);
console.log(cloneObj);
console.log('----------');
originalObj['group'] = '코드팩토리';
console.log(originalObj);
console.log(cloneObj);
console.log(originalObj === cloneObj);
console.log(original === clone);
originalObj = {
name: '최지호',
group: '코드팩토리',
};
cloneObj = {
name: '최지호',
group: '코드팩토리',
};
console.log(originalObj === cloneObj);
const yuJin1 = {
name: '안유진',
group: '아이브',
}
const yuJin2 = yuJin1;
const yuJin3 = {
name: '안유진',
group: '아이브',
}
// true
console.log(yuJin1 === yuJin2);
// false
console.log(yuJin1 === yuJin3);
// false
console.log(yuJin2 === yuJin3);
/**
* Spread Operator
*/
const yuJin4 = {
...yuJin3,
};
console.log(yuJin4);
console.log(yuJin4 === yuJin3);
const yuJin5 = {
year: 2003,
...yuJin3,
};
console.log(yuJin5);
const yuJin6 = {
name: '코드팩토리',
...yuJin3,
};
console.log(yuJin6);
const yuJin7 = {
...yuJin3,
name: '코드팩토리',
}
console.log(yuJin7);
const numbers = [1, 3, 5];
const numbers2 = [
...numbers,
10,
];
console.log(numbers2);
try...catch
/**
* try...catch
*
* 1) 발생시킬때 -> 던진다고한다. (throw)
* 2) 명시적으로 인지할때 -> 잡는다고 한다. (catch)
*/
function runner() {
try {
console.log('Hello');
// throw new Error('큰 문제가 생겼습니다!');
console.log('Code Factory');
} catch (e) {
console.log('---catch---');
console.log(e);
} finally {
console.log('---finally---');
}
}
runner();
반응형
'개발자 > Web' 카테고리의 다른 글
소스 코드가 포함된 50개의 자바스크립트 프로젝트 (3) | 2024.10.16 |
---|---|
자바스크립트 기본 문법 강의 4 Class and OOP (2) | 2024.10.15 |
모든 자바스크립트 개발자가 알아야 할 33가지 기본 사항 (12) | 2024.10.15 |
50일 동안 50개의 프로젝트 - HTML/CSS 및 자바스크립트 (3) | 2024.10.01 |
모든 자바스크립트 개발자가 알아야 하는 33가지 개념 (8) | 2024.09.29 |
자바스크립트 기본 문법 강의 1 (16) | 2024.09.29 |
자바스크립트 기본 문법 강의 2 (1) | 2024.09.29 |
HTML 요약 노트 (1) | 2022.12.08 |
더욱 좋은 정보를 제공하겠습니다.~ ^^