
์ง๋ JavaScript(2)์์ ๊ฐ์ฒด๋ฅผ ์ ๊น ์ดํด๋ณด์๋๋ฐ, ์ด๋ฒ ์ฑํฐ์์ ๊ฐ์ฒด๋ฅผ ์ข ๋ ๋ฉด๋ฐํ ์ดํด๋ณด๊ฒ ๋ค.
๊ฐ์ฒด๋ ํค์ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋ ์์ฑ๋ค์ ์งํฉ์ ์๋ฏธํ๋ ์๋ฃํ์ผ๋ก ์ค๊ดํธ({})๋ฅผ ์ด์ฉํด ์์ฑํ๋ค. ํค๋ ๋ฌธ์์ด๋ก ์์ฑํ๋ฉฐ, ํค์ ๊ณต๋ฐฑ์ด ๋ค์ด๊ฐ ๊ฒฝ์ฐ์๋ ๋ฐ๋์ ๋ฐ์ดํ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. ๋ชจ๋ ์๋ฃํ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ผ๋ก ๊ฐ์ง ์ ์๋ค.
[]๋ฅผ ์ฌ์ฉํด ๊ฐ์ฒด์ ์์ฑ์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ฐฐ์ด์์๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. ๊ฐ์ฒด์ ์์ฑ์ ์ ๊ทผํ๋ ค๋ฉด ๊ฐ์ฒด๋ช
๋ค์ []๋ฅผ ๋ถ์ด๊ณ [] ์์ ํค๋ฅผ ๋ฃ๋๋ค. ์ด ๋ ํค๋ ๋ฐ๋์ ๋ฌธ์์ด ํํ๋ก ์์ฑํ๋ค..์ ์ด์ฉํด ๊ฐ์ฒด์ ์์ฑ์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๊ฐ์ฒด ์์ฑ์ ์ ๊ทผํ๋ ค๋ฉด ์ ๊ทผํ ๊ฐ์ฒด๋ช
๊ณผ ๊ฐ์ฒด ์์ฑ์ ํค๋ฅผ ๋ง์นจํ ์ฐ์ฐ์๋ก ์ฐ๊ฒฐํ๋ค. ์ด ๋ ํค๋ฅผ ํฐ๋ฐ์ดํ๋ ์์๋ฐ์ดํ๋ก ๊ฐ์ธ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. ์๋ณ์์ ๊ณต๋ฐฑ์ด ์๋ค๋ฉด ๋ง์นจํ ์ฐ์ฐ์๋ ์ฌ์ฉํ ์ ์๋ค.delete๋ฅผ ์ฌ์ฉํ ์ ์๋ค.//๊น์ ๋ณต์ฌ
let num1 = 10;
let num2 = num1;
console.log(num1); //10์ด ์ถ๋ ฅ๋๋ค.
console.log(num2); //10์ด ์ถ๋ ฅ๋๋ค.
num1 = 30;
console.log(num1); //30์ด ์ถ๋ ฅ๋๋ค.
console.log(num2); //10์ด ์ถ๋ ฅ๋๋ค.
//์์ ๋ณต์ฌ
let person = {
name:'๋์ด๋ฆ'
};
let person2 = person;
console.log(person); //{ name: '๋์ด๋ฆ' }์ด ์ถ๋ ฅ๋๋ค.
console.log(person2); //{ name: '๋์ด๋ฆ' }์ด ์ถ๋ ฅ๋๋ค.
person.name='์ฌ๋ณ๊ฒฝ';
console.log(person); //{ name: '์ฌ๋ณ๊ฒฝ' }์ด ์ถ๋ ฅ๋๋ค.
console.log(person2); //{ name: '์ฌ๋ณ๊ฒฝ' }์ด ์ถ๋ ฅ๋๋ค.
ํ์ค ๋ด์ฅ ๊ฐ์ฒด๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ธฐ๋ณธ์ผ๋ก ๋ด์ฅ๋ ๊ฐ์ฒด์ด๋ค.
๊ธฐ๋ณธ ์๋ฃํ ์ค ๋ฌธ์์ด๊ณผ ๊ด๋ จ ์๋ ์์ฑ๊ณผ ๋ฉ์๋๊ฐ ์ ์๋ ๊ฐ์ฒด์ด๋ค.
length()๋ ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ์๋ ค์ฃผ๋ ๋ฉ์๋์ด๋ค.
let str1 = "abcdefghijk";
console.log(str1.length); //11์ด ์ถ๋ ฅ๋๋ค.
if(str1.length < 12){
console.log('๋น๋ฐ๋ฒํธ๋ 12์๋ฆฌ ์ด์');
}
includes()๋ ๋ฌธ์์ ํน์ ๋ฌธ์๊ฐ ํฌํจ๋์ด ์๋์ง ํ์ธํ๋ ๋ฉ์๋์ด๋ค.
let str2 = "abcc@naver.com"; //์ด๋ฉ์ผ ์
๋ ฅ
if(str2.includes("@") == true){
console.log("@๋ฌธ์๊ฐ ์์.");
} else{
console.log("์๋ชป๋ ์ด๋ฉ์ผ ํ์์
๋๋ค.");
}
indexOf()๋ ํด๋น ๋ฌธ์์ ์์น๋ฅผ ์๋ ค์ฃผ๋ ๋ฉ์๋์ด๋ค.
let str3 = "abcc!daum.net";
console.log(str3.indexOf("@")); //-1์ด ์ถ๋ ฅ๋๋ค.
if(str3.indexOf("@") == -1){
console.log("ํด๋น ๋ฌธ์์์ @๊ฐ ์์ต๋๋ค.")
}
=> indexOf๋ ํด๋น ๋ฌธ์์ ์์น๋ฅผ ์๋ ค์ฃผ๋๋ฐ -1์ ํด๋น ๋ฌธ์๊ฐ ์์์ ์๋ฏธํ๋ค.
substring()์ ์ํ๋ ๋ฌธ์๋ค๋ง ์ถ์ถํ ์ ์๋ ๋ฉ์๋์ด๋ค.
//substring(์์์ธ๋ฑ์ค, ๋์ธ๋ฑ์ค)
//์์๊ณผ ๋ ์ธ๋ฑ์ค ์ฌ์ด ๋ฒ์์ ๋ฌธ์๋ฅผ ์ถ์ถํ๋๋ฐ ๋์ธ๋ฑ์ค๋ ์ ์ธ๋๋ค.
let str4 = "abcc@naver.com";
console.log(str4.substring(0, 4)); //abcc๊ฐ ์ถ๋ ฅ๋๋ค.
console.log(str4.substring(5, 14)); //naver.com์ด ์ถ๋ ฅ๋๋ค.
๐ฅ์ฐ์ต๋ฌธ์
์ด๋ฉ์ผ์ ์์ด๋์ ๋๋ฉ์ธ์ผ๋ก ๊ตฌ๋ถํ๋ ํจ์ ๋ง๋ค๊ธฐ
function splitEmail(email){
let stdIndex = email.indexOf("@");
if(email.includes("@") == true){
console.log("์์ด๋ : " + email.substring(0, stdIndex));
console.log("๋๋ฉ์ธ : " + email.substring(stdIndex+1, email.length));
} else{
console.log("๋ฉ์ผํ์์ด ์๋ชป๋์์ต๋๋ค.")
}
}
splitEmail("abcc@naver.com");
๐ฝ์คํ ๊ฒฐ๊ณผ
split์ ํน์ ๋ฌธ์ ๊ธฐ์ค์ผ๋ก ๊ตฌ๋ถํ๋ ๋ฉ์๋์ด๋ค.
let str5 = "abcc@naver.com";
let strSplit = str5.split("@");
console.log(strSplit); //[ 'abcc', 'naver.com' ]์ด ์ถ๋ ฅ๋๋ค.
console.log(strSplit[0]); //abcc๊ฐ ์ถ๋ ฅ๋๋ค.
console.log(strSplit[1]); //naver.com์ด ์ถ๋ ฅ๋๋ค.
toUpperCase๋ ๋๋ฌธ์๋ก, toLowerCase๋ ์๋ฌธ์๋ก ๋ณ๊ฒฝํ๋ ๋ฉ์๋์ด๋ค.
let caseTest = "abcd";
console.log(caseTest); //abcd
console.log(caseTest.toUpperCase()); //ABCD
console.log(caseTest); //abcd(์๋ณธ ๋ฐ์ดํฐ๊ฐ ๋ณด์กด๋๋ค.)
caseTest = caseTest.toUpperCase(); //๋ณ์์ ๊ฐ์ ์ ์ฅํจ์ผ๋ก์จ ์๋ณธ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๋ค.
console.log(caseTest); //ABCD
caseTest = caseTest.toLowerCase();
console.log(caseTest); //abcd
charAt()๋ ๊ดํธ ์์ ์์น์ ํด๋นํ๋ ๋ฌธ์๋ฅผ ๋ฝ๋ ๋ฉ์๋์ด๋ค.
let caseTest = "abcd";
console.log(caseTest.charAt(2)); //c๊ฐ ์ถ๋ ฅ๋๋ค.
trim()์ ๋ฌธ์์ ์ ๋ค ๊ณต๋ฐฑ์ ์ ๊ฑฐํ๋ ๋ฉ์๋์ด๋ค.
let str6 = " abcd ";
console.log(str6); // abcd ๊ฐ ์ถ๋ ฅ๋๋ค.(๋ฌธ์์ด ์๋ค๋ก ๊ณต๋ฐฑ์ด ์๋ค.)
str6 = str6.trim(); //๋ฌธ์์ ์๋ค ๊ณต๋ฐฑ์ ์ ๊ฑฐ
console.log(str6); //abcd๊ฐ ์ถ๋ ฅ๋๋ค.
๊ธฐ๋ณธ ์๋ฃํ ์ค ๋ฐฐ์ด๊ณผ ๊ด๋ จ ์๋ ์์ฑ๊ณผ ๋ฉ์๋๊ฐ ์ ์๋ ๊ฐ์ฒด์ด๋ค. ์ด ์ค ํ๊ดด์ ๋ฉ์๋๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ ๋ ์๋ณธ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๋ ๋ฉ์๋๋ฅผ, ๋นํ๊ดด์ ๋ฉ์๋๋ ์๋ณธ์ ๋ณ๊ฒฝํ์ง ์๋ ๋ฉ์๋๋ฅผ ๋งํ๋ค.
let arr1 = [1,2,3];
let arr2 = arr1;
arr2[0] = 7;
console.log(arr1); //[ 7, 2, 3 ]์ด ์ถ๋ ฅ๋๋ค
console.log(arr2); //[ 7, 2, 3 ]์ด ์ถ๋ ฅ๋๋ค
=>arr2์ 0์ธ๋ฑ์ค ๊ฐ์ 7๋ก ๋ฐ๊พธ์์ง๋ง arr1๊ณผ arr2๋ ๊ฐ์ ์ฐธ์กฐ๋ณ์์ด๊ธฐ ๋๋ฌธ์ ๋ ๋ค 0์ธ๋ฑ์ค ๊ฐ์ด 7๋ก ๋ฐ๋๋ค.
let arr1 = [1,2,3];
let arr2 = [...arr1];
arr2[0] = 9;
console.log(arr1); //[ 1, 2, 3 ]์ด ์ถ๋ ฅ๋๋ค.
console.log(arr2); //[ 9, 2, 3 ]์ด ์ถ๋ ฅ๋๋ค.
arr2์ arr1์ ์คํ๋ ๋ ์ฐ์ฐ์(Spread Operator : [...๋ฐฐ์ด])๋ฅผ ํตํด ๋ณต์ฌํด์ฃผ์๋ค. arr1์ ๊ฐ์ ๋ณด์กด๋๊ณ arr2์ ๊ฐ๋ง ๋ฐ๋๋ค.
let arr = [4,5,6];
arr.push(1); //๋ฐฐ์ด ๋ง์ง๋ง์ ์์ ์ถ๊ฐ
console.log(arr); //[ 4, 5, 6, 1 ]์ด ์ถ๋ ฅ๋๋ค.
let pop1 = arr.pop(); //๋ฐฐ์ด ๋ง์ง๋ง ์์๋ฅผ ์ถ์ถ
console.log(pop1); //1์ด ์ถ๋ ฅ๋๋ค
console.log(arr); //[ 4, 5, 6 ]์ด ์ถ๋ ฅ๋๋ค.
let arr = [4,5,6];
arr.unshift(8); //๋ฐฐ์ด ๋งจ์์ ์์ ์ถ๊ฐ
console.log(arr); //[ 8, 4, 5, 6 ]์ด ์ถ๋ ฅ๋๋ค.
let sft1 = arr.shift(); //๋ฐฐ์ด ๋งจ ์ ์์๋ฅผ ์ถ์ถ
console.log(sft1); //8์ด ์ถ๋ ฅ๋๋ค.
console.log(arr); //[ 4, 5, 6 ]์ด ์ถ๋ ฅ๋๋ค.
splice(์ธ๋ฑ์ค, ์ญ์ ๊ฐ์, ๋ฃ์ ๊ฐ)
์ ํ์์ผ๋ก ์ธ์๋ฅผ ๋ฃ๋๋ฐ, ์ญ์ ๊ฐ์๊ฐ ์์ ๊ฒฝ์ฐ 0์ ๋ฃ๊ณ , ๋ฃ์ ๊ฐ์ด ์๋ ๊ฒฝ์ฐ ๋น์๋๋ฉด ๋๋ค.
let arr = [4,5,6];
arr.splice(2, 1); //์ํ๋ ์์น ๊ฐ์ ์ญ์ (2์ธ๋ฑ์ค์ ์๋ 6์ ์ญ์ )
console.log(arr); //[ 4, 5 ]์ด ์ถ๋ ฅ๋๋ค.
arr.splice(1, 0, 6); //์ํ๋ ์์น์ ์ ์ฅ(1์ธ๋ฑ์ค์ 6์ ๋ฃ๊ธฐ)
console.log(arr); //[ 4, 6, 5 ]์ด ์ถ๋ ฅ๋๋ค.
let arr = [1,3,5,2,4];
arr.sort();
console.log(arr); //[ 1, 2, 3, 4, 5 ]์ด ์ถ๋ ฅ๋๋ค.
arr ๋ฐฐ์ด์ ์๋ณธ ๋ฐ์ดํฐ๊ฐ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ ํ ๋ณ๊ฒฝ๋์๋ค. ๋ฐฐ์ด์ ์๋ณธ ๋ฐ์ดํฐ๋ฅผ ๋ณด์กดํ๊ณ ์ถ์ ๊ฒฝ์ฐ ์๋ก์ด ๋ฐฐ์ด๋ก ๋ณต์ฌ ํ ์ ๋ ฌํ ์ ์๋ค.
let arr = [1,3,5,2,4];
let temp = [...arr];
temp.sort();
console.log(temp); //[ 1, 2, 3, 4, 5 ]์ด ์ถ๋ ฅ๋๋ค.
console.log(arr); //[ 1, 3, 5, 2, 4 ]์ด ์ถ๋ ฅ๋๋ค.
๋ ์ง ๋ฐ ์๊ฐ๊ณผ ๊ด๋ จ ์๋ ์์ฑ๊ณผ ๋ฉ์๋๊ฐ ์ ์๋ ๊ฐ์ฒด์ด๋ค. ์ด ์ค get ๋ฉ์๋๋ ๋ ์ง์ ์๊ฐ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฉ์๋์ด๊ณ , set ๋ฉ์๋๋ ๋ ์ง์ ์๊ฐ ์ ๋ณด๋ฅผ ์ค์ ํ๋ ๋ฉ์๋์ด๋ค.
let date1 = new Date();
console.log(date1);
๐ฝ์คํ ๊ฒฐ๊ณผ
=>UTC(์๊ตญ์๊ฐ)์ผ๋ก ์ถ๋ ฅ๋์๋ค. (ํ๊ตญ์๊ฐ-9)
๐ฝget ๋ฉ์๋
console.log(date1.getFullYear()); //๋
๋
console.log(date1.getMonth()); //์
console.log(date1.getDate()); //์ผ
console.log(date1.getHours()); //์
console.log(date1.getMinutes()); //๋ถ
console.log(date1.getSeconds()); //์ด
let date4 = new Date('2023-03-16');
let date5 = new Date('2023-03-01');
let diff = date4.getTime() - date5.getTime();
console.log(diff); //๋ฐ๋ฆฌ์ด(msec)
console.log(diff/1000); //์ด(sec)
console.log(diff/1000/60); //๋ถ(min)
console.log(diff/ (1000*60*60) ); //์๊ฐ(hour)
console.log(diff/ (1000*60*60*24) ); //์ผ(day)
// /1000/60/60 -> /(1000*60*60)
์ํ ์ฐ์ฐ๊ณผ ๊ด๋ จ ์๋ ์์ฑ๊ณผ ๋ฉ์๋๊ฐ ์ ์๋ ๊ฐ์ฒด์ด๋ค.
random() ๋ฉ์๋๋ 0 ์ด์ 1 ๋ฏธ๋ง์ ๋์๋ฅผ ๋ฐํํ๋ ๋ฉ์๋์ด๋ค.
const random = Math.random();
console.log(random);
์์ ๊ฐ์ด ์ธ ์ ์๋๋ฐ, ์ฃผ์ํ ์ ์ ์์์ ๊น์ง ์ถ๋ ฅ๋๋ค๋ ์ ์ด๋ค. ์๋ฐ๋ Math.random() ์ฌ์ฉ ์ ์ ์ํ์ผ๋ก ์๋ ํ๋ณํ์ด ๋์ง๋ง ์๋ฐ์คํฌ๋ฆฝํธ๋ ์์๋ก ์์์ ์ ์์ ์ฃผ์ด์ผ ํ๋ค. ์๋์์ ์์ธํ ์ดํด๋ณด๊ฒ ๋ค.
console.log(Math.floor(1.2)); //1์ด ์ถ๋ ฅ๋๋ค.
console.log(Math.round(1.6)); //2๊ฐ ์ถ๋ ฅ๋๋ค.
console.log(Math.ceil(2.1)); //3์ด ์ถ๋ ฅ๋๋ค.
๐ฝ floor()์ random()
function getRandom(to){
return Math.floor(Math.random()*to)+1;
}
console.log(getRandom(10)); //1~10 ์ฌ์ด์ ์ ์๊ฐ ์ถ๋ ฅ๋๋ค.