자바스크립트 - 다른 언어에서 훔쳐보자!
11955 단어 webdevreactprogrammingjavascript
프레임워크도 마찬가지이며 다른 언어와 프레임워크에서 훔쳐 훨씬 더 나은 훌륭한 예를 볼 수 있습니다.
할당하는 경우
Javascript에서 이를 수행하는 방법은 삼항을 사용하는 것입니다.
const thatIsTheQuestion = Math.random() > 0.5 ? 'to do or not to do' : 'maybe I need better examples';
그러나 때로는 이를 찾기 위해 더 강력한 것이 필요하며
question
삼항이 이를 지원하지 않습니다.자... 이것은 제가 Rust를 배우면서 상냥하게 느꼈던 것입니다.
let complex_question = if rand::random() {
let something_complex = 1;
something_complex * 2 // to return in rust just leave without `return` or semicolon!
} else {
let another_complex_thing = 2;
another_complex_thing * 3
};
이와 같은 경우에는
rust
예만큼 깔끔하지는 않지만 여러 가지 방법이 있습니다. IIFE를 사용하면…IIFE(즉시 호출되는 함수 표현식)
Javascript를 사용하기 시작한 시기에 따라 Javascript를 많이 사용했을 수도, 조금 사용했을 수도 있고, Javascript가 무엇인지 모를 수도 있습니다.
한번에 선언하고 실행하는 함수입니다.
(() => {
console.log('this will simply execute')
})()
이것에 대한 멋진 점은 반환값을 변수에 할당할 수 있다는 것입니다.
따라서 어떤 식으로든
if assignment
를 만들 수 있습니다.const complexQuestion = (() => {
if (Math.random() > 0.5) {
const somethingComplex = 1;
return somethingComplex * 2;
} else {
const anotherComplexThing = 2;
return anotherComplexThing * 3
};
})()
예, 외부 함수에서 모든 것을 리팩토링하고 그렇게 하는 대신 호출할 수 있지만 IIFE를 수행하는 것이 훨씬 더 명확한 곳을 점점 더 많이 찾고 있습니다.
패턴 매칭
많은 용도가 있지만 Redux의 인기로 인해 리듀서에서 사용하는
switch
가 패턴 매칭의 한 방법이라는 사실조차 깨닫지 못할 수도 있습니다.하지만 더 우아한 방법이 있습니다.
const whatToEat = {
breakfeast: 'bacon and eggs',
lunch: 'hamburger',
dinner: 'pizza',
}['what time is it?'] ?? 'junk food!';
옵션과 기본 케이스가 있습니다!
그리고 무엇을 알고 계십니까… 그것은
if assignment
를 수행하는 또 다른 방법입니다.const withBooleans = {
true: 'it works!',
false: 'nope'
}[Math.random() > 0.5];
// yes, it works for booleans too!
모든 것을 함께
const maybeTooMuch = (() => {
const complicatedStuff = {
true: () => 'after all, why not?',
false: () => (() => {
try {
throw new Error("why shouldn't I?");
} catch (error) {
return error.message;
}
})(),
default: null,
}[
(Math.random() > 0.66)
|| (
(Math.random() > 0.33)
? false
: 'default'
)
] ?? 'I probably gone too far on this one...';
try {
return complicatedStuff();
} catch {
return complicatedStuff;
}
})();
어쩌면... 좀 과했을지도...
그러나 기본적으로 변수에 항목을 할당하는 여러 가지 방법이 있습니다.
보너스!
지도에서 기본값을 처리하는 방법이 마음에 들지 않았을 수도 있습니다... 그래서...
function proxyfy(object, defaultValue) {
return new Proxy(object, {
get(target, prop) {
if (Reflect.has(target, prop)) {
return Reflect.get(...arguments);
}
return defaultValue;
},
});
}
const proxyfiedWhatToEat = proxyfy({
breakfeast: 'bacon and eggs',
lunch: 'hamburger',
dinner: 'pizza',
}, 'junk food!')
['what time is it?'];
Proxy
를 사용하면 default
가 무엇이어야 하는지 더 깔끔하게 선언할 수 있습니다.표지 사진 작성자: Janayara Machado on Unsplash
Reference
이 문제에 관하여(자바스크립트 - 다른 언어에서 훔쳐보자!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/noriller/javascript-lets-steal-from-other-languages-4914텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)