자바스크립트는 개발자가 웹 사이트의 대화형 프론트엔드 요소를 구축할 때 웹 요소를 완벽하게 제어하기 위해 사용하는 객체 지향 프로그래밍 언어입니다. 대부분의 브라우저는 내장된 실행 환경으로 인해 이 적응형 언어를 지원합니다. 개발자는 이를 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 (3) | 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 |
취업, 창업의 막막함, 외주 관리, 제품 부재!
당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약,
아이디어는 있지만 구현할 기술이 없는 막막함.
우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.
이제 고민을 멈추고, 캐어랩을 만나세요!
코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.
제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!
귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.
캐어랩