JavaScript가 우리의 일상을 어떻게 더 쉽게 만드는지
10333 단어 ecmascriptjavascript
요점은, 당신의 위치가 중요하지 않다는 것입니다. 당신은 아마도 못생긴 코드에 직면했을 것이고 "정말, 내가 이것을 어떻게 써야 합니까?"라고 생각했을 것입니다.
글쎄요, 사람들은 그것을 더 좋게 만들기 위해 노력하고 있고 아마도 우리는 지금까지 최고의 위치에 있을 것입니다. 또한 TypeScript도 훌륭하고 우리가 놀라운 일을 할 수 있도록 해주지만 우리의 오랜 친구인 JavaScript가 우리에게 제공하는 몇 가지 멋진 것들을 봅시다.
** 다음 기능 중 어느 것도 IE와 호환되지 않습니다. 하지만 누가 신경을 쓰나요? ¯\_(ツ)_/¯
무효 합체
일반적으로 변수를 정의해야 하지만 값이 null
또는 undefined
일 수 없는 경우 대안은 기본값을 제공하려는 경우 삼항에 의존하는 것입니다.
const person = { name: 'Richard', age: 21 };
const age = person.age ? person.age : 'Age not determined';
console.log(age); // Output: 21
이제 어떻게 작동하는지 봅시다!
const person = { name: 'Richard', age: 21 };
const age = person.age ?? 'Age not determined';
console.log(age); // Output: 21
무효 병합 연산자(??)는 null
또는 undefined
값을 모두 처리하는 논리 연산자이며, 왼쪽 피연산자가 null
또는 undefined
일 때 오른쪽 피연산자를 반환합니다.
false
또는 null
뿐만 아니라 undefined
값도 고려해야 하는 상황이 있으면 OR 연산자(||)를 시도할 수 있습니다. 이전 예에 따라 name
가 반드시 존재해야 하고 비워 둘 수 없음('') 및 age
가 0
일 수 없음을 보장해야 한다고 가정해 보겠습니다. 예... =P). 그런 다음 우리는 다음을 수행합니다.
const person = { name: '', age: 0 };
const name = person.name || 'This person has no name';
const age = person.age || 'Age not determined';
console.log(name); // Output: 'This person has no name'
console.log(age); // Output: 'Age not determined'
논리적 무효 할당
속성에 값을 할당해야 하지만 이 속성이 null
또는 undefined
인 경우에만 다음과 같이 지정해야 한다고 상상해 보세요.
const person = { name: 'Richard', age: 21 };
const person2 = { name: 'Michael', lastname: 'Glass', age: 21 };
person.lastname ??= 'Banks';
console.log(person.lastname); // Output: Banks
person2.lastname ??= 'Kimber';
console.log(person2.lastname); // Output: Glass
선택적 체인
나는 이와 같은 상황에서 악몽을 꿨습니다. 때로는 깊은 객체로 작업하고 일부 속성에 액세스해야 하지만 필요한 속성은 undefined
일 수 있을 뿐만 아니라 부모 노드도 있으므로 다음을 수행해야 합니다. 다음과 같이 아름다운if
:
const sector = {
role: {
manager: {
name: 'Alex'
}
}
};
const manager = sector.role &&
sector.role.manager &&
sector.role.manager.name ?
sector.role.manager.name : '';
얼마나 고통스럽습니까? 바라건대, 우리는 지금 다른 것을 할 수 있습니다.
const sector = {
role: {
manager: {
name: 'Alex'
}
}
};
const manager = sector.role?.manager?.name ?? '';
정확히는 각 속성 앞에 연산자?
를 추가하기만 하면 체인의 각 참조를 명시적으로 검증할 필요가 없습니다. 참조가 null인 경우 undefined
가 반환됩니다. 다음과 같은 기능에서도 작동합니다.
let result = someInterface.nonExistingMethod?.();
console.log(result); // Output: undefined
결론
그게 다가 아닙니다. 공식 docs을 확인하는 것이 좋습니다. JavaScript는 매일 향상되고 있으며 변경 사항이 빠르게 제공되고 있으므로 항상 최신 상태인지 확인하십시오!
이상입니다. 다음 포스팅에서 뵙겠습니다.
Reference
이 문제에 관하여(JavaScript가 우리의 일상을 어떻게 더 쉽게 만드는지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/kennyrafael/how-javascript-is-making-our-life-easier-day-by-day-1hf1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
const person = { name: 'Richard', age: 21 };
const age = person.age ? person.age : 'Age not determined';
console.log(age); // Output: 21
const person = { name: 'Richard', age: 21 };
const age = person.age ?? 'Age not determined';
console.log(age); // Output: 21
const person = { name: '', age: 0 };
const name = person.name || 'This person has no name';
const age = person.age || 'Age not determined';
console.log(name); // Output: 'This person has no name'
console.log(age); // Output: 'Age not determined'
속성에 값을 할당해야 하지만 이 속성이
null
또는 undefined
인 경우에만 다음과 같이 지정해야 한다고 상상해 보세요.const person = { name: 'Richard', age: 21 };
const person2 = { name: 'Michael', lastname: 'Glass', age: 21 };
person.lastname ??= 'Banks';
console.log(person.lastname); // Output: Banks
person2.lastname ??= 'Kimber';
console.log(person2.lastname); // Output: Glass
선택적 체인
나는 이와 같은 상황에서 악몽을 꿨습니다. 때로는 깊은 객체로 작업하고 일부 속성에 액세스해야 하지만 필요한 속성은 undefined
일 수 있을 뿐만 아니라 부모 노드도 있으므로 다음을 수행해야 합니다. 다음과 같이 아름다운if
:
const sector = {
role: {
manager: {
name: 'Alex'
}
}
};
const manager = sector.role &&
sector.role.manager &&
sector.role.manager.name ?
sector.role.manager.name : '';
얼마나 고통스럽습니까? 바라건대, 우리는 지금 다른 것을 할 수 있습니다.
const sector = {
role: {
manager: {
name: 'Alex'
}
}
};
const manager = sector.role?.manager?.name ?? '';
정확히는 각 속성 앞에 연산자?
를 추가하기만 하면 체인의 각 참조를 명시적으로 검증할 필요가 없습니다. 참조가 null인 경우 undefined
가 반환됩니다. 다음과 같은 기능에서도 작동합니다.
let result = someInterface.nonExistingMethod?.();
console.log(result); // Output: undefined
결론
그게 다가 아닙니다. 공식 docs을 확인하는 것이 좋습니다. JavaScript는 매일 향상되고 있으며 변경 사항이 빠르게 제공되고 있으므로 항상 최신 상태인지 확인하십시오!
이상입니다. 다음 포스팅에서 뵙겠습니다.
Reference
이 문제에 관하여(JavaScript가 우리의 일상을 어떻게 더 쉽게 만드는지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/kennyrafael/how-javascript-is-making-our-life-easier-day-by-day-1hf1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
const sector = {
role: {
manager: {
name: 'Alex'
}
}
};
const manager = sector.role &&
sector.role.manager &&
sector.role.manager.name ?
sector.role.manager.name : '';
const sector = {
role: {
manager: {
name: 'Alex'
}
}
};
const manager = sector.role?.manager?.name ?? '';
let result = someInterface.nonExistingMethod?.();
console.log(result); // Output: undefined
그게 다가 아닙니다. 공식 docs을 확인하는 것이 좋습니다. JavaScript는 매일 향상되고 있으며 변경 사항이 빠르게 제공되고 있으므로 항상 최신 상태인지 확인하십시오!
이상입니다. 다음 포스팅에서 뵙겠습니다.
Reference
이 문제에 관하여(JavaScript가 우리의 일상을 어떻게 더 쉽게 만드는지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kennyrafael/how-javascript-is-making-our-life-easier-day-by-day-1hf1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)