여러 개발자가 만드는 큰 프로젝트라면, 변수가 중복 선언되지 않도록 해야함!
이 때 두가지 변수를 사용하는데 let or const
변수
1.let
let name = "채채루";
let name = "채채롱";
let을 사용하면 중복 변수 선언 시 error 발생함
2. const
※절대로 바뀌지 않는 상수를 입력할 때 사용
변하지 않는 값을 사용할 때 사용한다.
const PI = 3.14
매개변수가 있는 문자열 사용 시 따옴표 주의 ``
function sayHello(name){
const msg = `Hello ${name} world I am chaechaeroo`;
if(name){
msg = `Hello, ${name}`
}
console.log(msg);
}
sayHello();
함수 사용 시 전역변수, 지역변수
//전역 변수와 지역 변수
let msg = "welcome"; //전역변수임
function sayHello(name){
let msg = "Hello"; //지역변수임
console.log(msg + ' ' + name); // 이 창에서 출력 시 지역변수로 출력
}
sayHello('Mike');
console.log(msg); //전역변수로 출력
★함수는 하나에 한 작업에 집중하는 것이 좋다.
★익기 쉽고 어떤 동작인지 네이밍 한다.
화살표 함수
//함수 선언문 vs 함수 표현식
//함수 선언문 : 어디서든 호출 가능! (함수 선언 위치 상관 없음, 자바스크립트는 인터프리터 언어!)
//함수 표현식 : 해당 코드에 도달하면서 생성한다.
//화살표 함수 ... function 제외하고 화살표 첨가
/*
let add = (num1, num2) => {
num1 + num2;
}
let add = (num1, num2) => (num1 + num2); // 리턴문이 한줄이면 괄호도 생략 가능
let sayHello = name => `Hello, ${name}` //인수가 하나라면 괄호도 생략 가능*/
/*
shoeError();
function showError(){
console.log('error');
}
//위의 함수를 화살표 함수로 바꾸면
let showError = () => {
console.log("error");
}
const sayHello = function(name){
const msg = `hello ${name}`;
console.log(msg);
}
sayHello('Mike');
//위의 함수를 화살표 함수로 바꾸면?
const sayHello = (name) => {
const msg = `hello ${name}`;
console.log(msg);
}
sayHello('Mike');*/
화살표함수 ...내 딴엔 진짜 충격이었음
function을 지우고 선언한 변수 이름 뒤에 바로 (매게변수) => { } 기억할 것
화살표 함수가 굉장히 활발히 사용되고 있어서 잘 알아야한다고! ㅠㅠ
객체
//객체
/*
const superman = {
name : 'clark',
age : 33,
}
console.log(superman.name); //콘솔로 각 프로퍼티 확인
console.log(superman.age);
superman.hairColor = 'Black'; //추가
superman['hobby'] = 'football';
delete superman.age; //삭제
console.log(superman);
function makeObject(name, age){
return{
name : name,
age : age,
hobby : 'football'
}
}
const Mike = makeObject('Mike', 30);
console.log(Mike);
//축약형 연습
let makeObject = (name, age) => {
return{
name,
age,
hobby : 'football'
}
}
const Mike = makeObject('Mike', 30);
console.log(Mike);
//프로퍼티 존재 확인
console.log("age" in Mike); //진실
console.log("birthday" in Mike); //거짓
*/
function isAdult(user){
if(!('age' in user) || user.age < 20){
return false;
}
return true;
};
const Mike = {
name : "Mike",
age : 30
};
const Jane = {
name : "Jane"
};
console.log(isAdult(Mike));
console.log(isAdult(Jane));
for...in 함수
//객체 for...in 반복문
const Mike = {
name : "Mike",
age : 30
};
//key는 Mike 가 가지고 있는 프로퍼티를 얘기하며, 다른 값이 와도 상관없음
for(key in Mike){
console.log(Mike[key]);
}
객체와 메소드
//객체에 함수 추가도 가능함!
/*
const superman = {
name : 'clark',
age : 30,
fly(){
console.log('나는 날아갑니다.'); // 메서드
}
}
superman.fly();
//메소드 : 객체 프로퍼티로 할당 된 !!함수!!
const user = {
name : 'Mike',
sayHelllo : function(){
console.log(`Hello, i am ${this.name}`) // 여기서 this는 실행하는 시점의 객체를 뜻한다!
}
}
let boy = {
name : 'Mike',
sayHello(){
console.log(`Hello, I am ${this.name}`);
}
}
let girl = {
name : 'Jane',
sayHello(){
console.log(`Hello, I am ${this.name}`);
}
}
boy.sayHello();
girl.sayHello();
*/
//!! 화살표 함수는 일반 함수와 달리 자신의 this 가지지 않음, 화살표 함수 내부에서 this 사용 시 함수 외부에서 값을 가져옴
let boy = {
name : 'Mike',
sayHello : () => {
console.log(`Hello, I am ${this.name}`); //화살표함수에서 this는 전역객체를 불러온다.
}
}
boy.sayHello();
객체의 메소드를 작성할때는 화살표 함수로 작성하지 않기
배열
//배열
//length 길이를 알아내는 메소드
//push 배열에 값을 추가
//pop 배열에서 가장 마지막 값을 제거
//unshift shift 배열의 가장 앞의 값을 제거or 추가
let days = ['mon', 'tue', 'wed'];
console.log(days[0]);
console.log(days.length);
days.push('thu');
//console.log(days);
/*
for(let index = 0; index < days.length; index++){
console.log(days[index]);
} //for 문을 통해 모든 값을 출력
*/
for(let day of days){
console.log(day);
}
마지막 배열로 for문 돌리는 것 잘 알아두기
'JS' 카테고리의 다른 글
#자바스크립트 스터디 6 - 배열메소드2 (0) | 2023.11.02 |
---|---|
#자바스크립트 스터디 5 - 배열메소드1 (0) | 2023.10.31 |
#자바스크립트 스터디 4 - Math 메소드, 문자열 메소드 (0) | 2023.10.31 |
#자바스크립트 스터디 3 - 객체 메소드(assign, keys 등), Symbol 데이터 (0) | 2023.10.29 |
#자바스크립트 스터디 2 - 변수, 객체, 생성자함수 (0) | 2023.10.29 |