2022 OSAM 해커톤 사전 온라인 교육에서 배운 내용입니다.
모르는 내용만 발췌하여 정리한 것이기 때문에 내용의 연결성이 부족한 점 양해 부탁드립니다.
console.log(undefined == null); // true
console.log(undefined === null); // false
a = undefined;
처럼 개발자가 할당하는 것은 bad practiceconsole.log(typeof null); // object
이지만, 의도한 것이 아니라 typeof 구현 중 발생한 오류다. null은 object type이 아니라, 별개의 null type으로 받아들이자.console.log(Boolean(null)); // false
console.log(Boolean(undefined)); // false
console.log(Number(null)); // 0
console.log(Number(undefined)); // NaN
// 그런데 이런 문법을 쓰는 것부터가 잘못 아닌가?
alert("삭제 되었습니다.");
day = prompt("예약일을 입력하세요.", "2020-10-"); // default 값 제공 가능
if (day == null) { } // 취소 버튼 누르면 null
result = confirm("구독을 취소하시겠습니까?"); // 취소(false), 확인(true)
function sayHello(name) {
if (name) {
console.log(`Hello, ${name}!`);
} else {
console.log("Hello, friend!");
}
}
function sayHello(name) {
let newName = name | "friend";
console.log(`Hello, ${newName}`);
}
function sayHello(name="friend") {
console.log(`Hello, ${name});
}
sayHello(); // name=null
sayHello("Jane");
sayHello();
function sayHello() {
console.log("Hello");
}
"use strict";
를 사용하면 에러 발생시킴"use strict";
sayHello();
function sayHello() {
console.log("Hello");
}
sayHello();
let sayHello = function() {
console.log("Hello");
}
sayHello();
let sayHello = () => {
console.log("Hello");
}
this
를 가지지 않는다.let boy = {
name: "Mike",
sayHello: function() {
console.log(`Hello, I'm ${this.name}`);
}
}
let girl = {
name: "Jane",
sayHello: function() {
console.log(`Hello, I'm ${this.name}`);
}
}
boy.sayHello(); // Hello, I'm Mike
girl.sayHello(); // Hello, I'm Jane
let boy = {
name: "Mike",
sayHello: () => {
console.log(`Hello, I'm ${this.name}`);
}
}
boy.sayHello(); // Hello, I'm
// undefined (this 객체에 name이 존재하지 않음)
화살표 함수는 일반 함수와는 달리 자신만의 this
를 가지지 않기 때문에,
화살표 함수 내부에서 this
를 사용하면, 외부에서 그 값을 가져온다.
this
는 전역객체를 가리킨다. (브라우저에서는 window
, NodeJS에서는 global
)
따라서, 객체의 메소드는 화살표 함수로 작성하지 말자.
arr[0] = 0; arr[1] = "월요일";
JavaScript | Python |
---|---|
push | append |
pop | pop |
unshift | appendleft |
shift | popleft |
for ... in
: 객체 순환for ... of
: 배열 순환 (JS에서는 배열도 객체이기 때문에 in도 되지만, 지양)