Today I Learned (TIL)
TIL (Today I Learned) 23.10.17
폼폼코
2023. 10. 17. 20:12
728x90
반응형
undefined와 null 의 차이점
1.undefined
- 변수에 값이 지정되지 않은 경우, 데이터 영역의 메모리 주소를 지정하지 않은 식별자에 접근할 때
- .이나 []로 접근하려 할 때, 해당 데이터가 존재하지 않는 경우
- return 문이 없거나 호출되지 않는 함수의 실행 결과
2.null
- 용도 : ‘없다’를 명시적으로 표현할 때
- 주의 : typeof null
var n = null;
console.log(typeof n); // object
//동등연산자(equality operator)
console.log(n == undefined); // true
console.log(n == null); // true
//일치연산자(identity operator)
console.log(n === undefined);
console.log(n === null);
typeof null은 object라고한다 javascript 자체 버그라는데 코드작성시 조심해야겠다
Class(클래스) 와 instance(인스턴스)
짧게 설명하자면 클래스는 설계도 인스턴스는 설계도로 만든 실제 물건 정도로 생각하면 이해가 빠르다
예시
class Person {
// constructor는 이름을 변경할 수 없어요.
constructor(name, age) {
// 이름(name)과 나이(age)가 없으면 사람이 아니죠?
// new라는 키워드를 이용해서 인스턴스를 만들 때, 기본적으로
// 넣어야 하는 값들을 의미해요! :)
// 여기서 말하는 this는 만들어질 인스턴스를 의미한다고 생각해주세요!
this.name = name;
this.age = age;
}
// 다양한 메소드를 아래와 같이 정의할 수 있어요.
// 여기서 this.name으로 내부 값을 접근해야 함을 잊지 마세요! :)
sayHello() {
console.log(`Hello, my name is ${this.name} and I'm ${this.age} years old.`);
}
}
const person1 = new Person("Alice", 30);
const person2 = new Person("Bob", 25);
// 만든 객체를 토대로 메서드 호출해보기
person1.sayHello(); // 출력: "Hello, my name is Alice and I am 30 years old."
person2.sayHello(); // 출력: "Hello, my name is Bob and I am 25 years old."
기본적인 설계도(class)를 사용해 만들어두니 객체의 재활용이 훨씬더 쉬워졌다
아직은 짧은 코드이지만 길이가 길어질수록 유용하게 쓰일 키워드이다. 여기서 Constructor 를 사용하였는데
Constructor는 Class의 생성자 함수이다. 생성자 함수는 객체를 생성할 때 호출되며, 객체를 초기화하는 역할을 한다.
` Constructor `키워드를 사용하여 정의한다
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
sayHello() {
console.log(`Hello, my name is ${this.name} and I'm ${this.age} years old.`);
}
}
const person = new Person('Alice', 20);
위 코드에서 constructor 메소드는 name과 age를 인자로 받아 this.name과 this.age 속성을 초기화 한다
내일 부터는 개인과제가 지급이된다 급하게 JS문법강의를 서둘러 들었지만 미숙한 부분이있기에
중요 개념들 몇개만 더 남겨야겠다 문법들을 계속해서 알아가다보니 알고리즘 문제들도 어느정도 흐름이 잡히는거같다
그래도 아직 멀엇다....
728x90
반응형