
📌 목적을 명확히
📌 불필요한 것들을 숨기기
📌 핵심만 드러내기
문자 (a-z, A-Z), 밑줄(_), 달러 기호($)로 시작숫자(0-9) 가능카멜 표기법카멜 표기법이란?
첫 문자의 첫 글자는소문자, 다음 글자 첫 문자부터대문자
console.log(값);
function 변수명 (파라미터) {
함수 내용;
};
console.log("'I'm Iron man"); # 따옴표가 하나만 있을때
console.log("He said \"I\'m Iron man"); # 역슬래쉬 (\) 사용
console.log(`He said "I'm Iron man`); # 백틱 (``) 사용
&&||! !! 두번 사용도 가능 (그럼 반대의 반대)console.log(typeof 100);
console.log(typeof '100');
console.log(typeof true);
console.log(Number('10') + Number('5'));
console.log(String(10) + String(5));
숫자형으로 형변환더하기에서는 문자열을 연결하는 기능이 더 강하다console.log(4 + '2'); # 42
console.log(4 - '2'); # 2
console.log(4 - true); # 3
console.log(4 % 'two'); # NaN
console.log(1 === '1'); # 일치, 불일치(!==) # false
console.log(1 === true); # false
console.log(1 == '1'); # 동등, 부등(!=) # true
console.log(1 == true); # true
null이라고 값을 임의로 정함값을 설정하지 않으면 나온다.console.log(null == undefined); # true
console.log(null === undefined); # false
const로 선언하고, 값을 변경할 수 없음.대문자 작성 ( 문자가 두개면 _ 구분 )const round = 30;
Key-Value 한 쌍의 객체 속성{} 사용{
brandName: 'oauch',
bornYear: 2023,
isVerNice: true,
worstCourse: null,
bestCommit: {
commit: 'bee',
msg: 'yee'
}
} # 이걸 console.log를 찍으면 object(객체)로 출력된다.
문자, 밑줄(_), 달러 기호($) 중 하나로 시작(objectName.propertyName)console.log(yee.bornYear);
(objectName['propertyName'])console.log(yee['bornYear']);
console.log(yee.bestCommit['commit']);
console.log(yee.brandName); # oauch
yee.brandName = 'spiderman';
console.log(yee.brandName); # spiderman
console.log(yee.yee); # undefined
yee.yee = 'yeeeeee';
console.log(yee.yee); # yeeeeee
delete objectName.propertyNameconsole.log(yee.worstCourse); # null
delete yee.worstCourse
console.log(yee.worstCourse); # undefined
'propertyName' in objectNameconsole.log('brandName' in yee);
let greetings = {
sayHello: function () {
console.log('Hello!');
},
sayHi: function () {
console.log('Hi!');
},
sayBye: function () {
console.log('Bye!');
}
};
greetings.sayHello();
greetings.sayHi();
greetings.sayBye();
let yee = {
brandName: 'oauch',
bornYear: 2023,
isVerNice: true,
worstCourse: null,
bestCommit: {
commit: 'bee',
msg: 'yee'
}
}
for (let key in yee) {
console.log(yee); // 속성 이름 출력
}
for (let key in yee) {
console.log(yee[key]); // 속성 값 출력
}
[] 사용let members = ['yee', 'bee', 'hi']; // 배열
console.log(members.length); // 3
console.log(members['length']); // 3
splice(startIndex, deleteCount, item1, item2...)let mem = ['1', '2', '3'];
mem.splice(1);
console.log(mem); // 결과값 : ['1']
let mem = ['1', '2', '3'];
mem.splice(1, 1);
console.log(mem); // 결과값 : ['1', '3']
let mem = ['1', '2', '3'];
mem.splice(1, 0, 'ss', 'dd');
console.log(mem); // 결과값 : [ '1', 'ss', 'dd', '2', '3' ]
let mem = ['1', '2', '3'];
mem.splice(1, 1, 'ss');
console.log(mem); // 결과값 : ['1', 'ss', '3']
shift()let mem = ['1', '2', '3'];
mem.shift();
console.log(mem); // 결과값 : ['2', '3']
pop()let mem = ['1', '2', '3'];
mem.pop();
console.log(mem); // 결과값 : ['1', '2']
unshift(value)let mem = ['1', '2', '3'];
mem.unshift('0');
console.log(mem); // 결과값 : ['0', '1', '2', '3']
push(value)let mem = ['1', '2', '3'];
mem.push('0');
console.log(mem); // 결과값 : ['1', '2', '3', '0']
let mem = ['1', '2', '3'];
for (let i of mem) {
console.log(i);
}
let two = [[1, 2], [3, 4]]
console.log(two[0][1]) // 결과값 : 2
let num = 0.4592;
console.log(num.toFixed(3)); // 0.459
let num = 255;
console.log(num.toString(2)); // 11111111
console.log(num.toString(8)); // 377
console.log(num.toString(16)); // ff
Math.abs()console.log(Math.abs(-10)); // 10
Math.max()console.log(Math.max(2, -1, 4, 5, 0)); // 5
Math.min()console.log(Math.min(2, -1, 4, 5, 0)); // -1
Math.pow()console.log(Math.pow(2, 3)); // 8
Math.sqrt()console.log(Math.sqrt(25)); // 5
Math.round()console.log(Math.round(2.3)); // 2
console.log(Math.round(2.5)); // 3
Math.floor()Math.ceil()console.log(Math.floor(2.3)); // 2
console.log(Math.floor(2.5)); // 2
...
console.log(Math.ceil(2.3)); // 3
console.log(Math.ceil(2.5)); // 3
Math.random()console.log(Math.random());
let myString = "Hi My";
// 부분 문자열 접근 slice(start, end)
console.log(myString.slice(0, 2)); // 0번 인덱스부터 1번까지
console.log(myString.slice(3)); // 시작지점부터 끝까지
console.log(myString.slice()); // 문자열 전체
// 양 끝 공백 제거
console.log(myString.trim());
// 대소문자 변환
console.log(myString.toUpperCase());
console.log(myString.toLowerCase());
// 요소 탐색
console.log(myString.indexOf('a')); // 맨앞 인덱스부터
console.log(myString.lastIndexOf('i')); // 맨뒤 인덱스부터
// 요소 접근
console.log(myString[3]);
console.log(myString.charAt(3));
// 문자열 길이
console.log(myString.length);
Number, String, Boolean, Null, UndefinedObject기본형은 변수 = 값
참조형은 변수 = 주소값
기본형은 값이 복사되서 값 자체가 바뀌지만
참조형은 주소를 참조하고 있기 때문에 값이 바뀌면 원래 값도 같이 바뀐다.
let numbers1 = [1, 2, 3];
let numbers2 = numbers1.slice();
numbers2.push(4);
console.log(numbers1);
console.log(numbers2);
function cloneObject(object) { // 함수를 만들어서 사용하는게 가장 좋은거 같다.
let temp = {};
for (let key in object) {
temp[key] = object[key];
}
return temp;
}
let course1 = {
title: '파이썬 프로그래밍 기초',
lang: 'Python',
pre: []
};
let course2 = cloneObject(course1);
course2.title = '리즘의 정석';
course2.pre.push('잉..');
console.log(course1);
console.log(course2);