웹과 애플리케이션이 더욱 복잡해짐에 따라 JavaScript와 Node.js는 점점 더 개발자의 레퍼토리에서 일반적인 요구 사항이 되고 있습니다. code-foo를 개선하고 발생하는 두통을 최소화하기 위해 코드 초기에 간단한 작업을 빠르게 수행하는 몇 가지 기능을 정의할 수 있습니다.
Javascript는 Java와 동일하지 않습니다. 여기에서 차이점을 확인하십시오.
1. 배열의 값 섞기
카드 더미를 섞는 것처럼 JavaScript에서 다음 한 줄로 원하는 만큼 자주 배열의 값을 섞을 수 있습니다.
const shuffleArray =(arr) => arr.sort(() => 0.5 - Math.random());
카드 더미 비유를 유지하면서 52개의 값을 섞고 싶다면 다음과 같습니다.
<미리> myarray =Array.from({길이:52},(v,k)=>k+1); console.log(shuffleArray(myarray));코드는 콘솔 출력에서 무작위로 뒤죽박죽된 값을 나타내야 합니다.
2. 날짜가 주말인지 평일인지 확인
간단한 나머지 피연산자를 사용하여 JavaScript에서 하루가 주말인지 여부를 쉽게 확인할 수 있습니다.
const isWeekend =(날짜) => date.getDay() % 6 ==0;
해당 날짜가 평일인지 확인하기 위해 변경하려면 마지막 비교를 반대로 하면 됩니다.
const isWeekday =(날짜) => date.getDay() % 6 !==0;
다음 코드에서 오늘이 주말인지 확인합니다.
console.log(isWeekend(new Date()));
별도의 isWeekday
를 정의하는 대신 또는 isWeekend
변수는 NOT
를 사용할 수 있습니다. if-then-else
를 표현하는 동안 피연산자 다음과 같이 두 변수 중 하나에 대한 문:
if(!isWeekend(new Date())) { console.log("오늘은 평일입니다."); } else { console.log("오늘은 주말입니다.");}
3. 숫자를 특정 소수점으로 자르기
사용자에게 제공하는 출력은 가능한 한 단순해야 하며, 엄청난 숫자의 왜곡된 문자열을 보는 것보다 사이트나 앱을 더 매력적으로 만드는 것은 없습니다. 숫자에서 덜 중요한 소수점을 잘라내어 사용자에게 표시하려면 다음과 같은 멋진 정의를 사용하세요.
const decimalFormat =(n, 자릿수) => ~~(Math.pow(10, 자릿수) * n) / Math.pow(10, 자릿수);
이를 테스트하기 위해 엄청나게 많은 소수점 이하 자릿수로 숫자 값을 정의하고 이 빠른 함수를 호출하여 소수점 이하 두 자리까지 자릅니다.
deciwow =299.39542014592 console.log(decimalFormat(deciwow, 2));
결과는 눈에 거슬리지 않아야 합니다.
4. 온도 변환
JavaScript에는 섭씨를 화씨로 변환하는 표준화된 방법이 없지만 두 가지 간단한 한 줄로 자신만의 표준을 만들 수 있습니다.
섭씨에서 화씨로:
const cToF =(섭씨) => 섭씨 * 9/5 + 32;
화씨에서 섭씨로:
const fToC =(화씨) => (화씨 - 32) * 5/9;
우리 동네의 기온은 영하 2도입니다. 섭씨에서 화씨로 변환 한 줄짜리를 사용하여 이것이 미국에 사는 누군가에게 의미하는 바를 알 수 있습니다.
cToF(-2);
이 표현은 화씨 28.4도의 온도를 산출합니다.
5. 누군가가 다크 모드를 사용 중인지 확인
표시하는 콘텐츠가 코드를 사용하는 사람의 색 구성표를 존중하도록 하려면 JavaScript에 누군가가 다크 모드를 사용하고 있는지 감지하는 방법이 포함되어 있으므로 그에 따라 색을 조정할 수 있습니다. 이 방법은 작성하기가 약간 복잡하지만 다음 한 줄로 줄일 수 있습니다.
const isDarkMode =window.matchMedia &&window.matchMedia('(prefers-color-scheme:dark)').matches;
다음은 이 변수를 사용한 검사의 예입니다.
if (isDarkMode) { console.log("이 화면은 어두운 모드입니다.");} else { console.log("이 화면은 어두운 모드를 사용하지 않습니다.");}
이 코드는 브라우저용 JavaScript에서만 작동합니다. Node.js는 window
에 대한 지원을 구현하지 않습니다. .
6. 숫자 배열의 평균 구하기
데이터 세트를 처리할 때 JavaScript에는 하나의 특정 테이블의 모든 값의 합계를 구하는 데 필요한 산술을 수행할 수 있도록 하는 배열에 연결된 편리한 기능이 있습니다. 그런 다음 이 숫자를 테이블의 길이로 나눌 수 있습니다. 한 줄의 코드에서 이 작업을 우아하게 수행하려면 다음 작업만 수행하면 됩니다.
const getAverage =(arr) => arr.reduce((a, b) => a + b, 0) / arr.length;
여기에서 데이터 세트를 만들고 콘솔을 통해 모든 값의 평균을 펌핑합니다.
set 데이터 세트 =[2, 14, 88, 204, 1515, 1294, 12, 144]; console.log(getAverage(데이터세트));
이 코드를 사용하면 출력이 409.125가 되어야 합니다.
7. UUID 생성
애플리케이션을 사용하는 사람들로부터 통계 및 데이터를 수집하려는 경우(예:쿠키 생성) 침입하지 않고 이를 수행하는 가장 좋은 방법 중 하나는 UUID(Universally Unique Identifier)를 생성하는 것입니다. JavaScript에는 RFC4122 호환 UUID를 생성하는 쉬운 방법이 포함되어 있지 않습니다(Node.js에는 uuid
가 있지만 이 기능을 즉시 제공하는 npm 패키지).
JS에서는 다음과 같은 한 줄 표현식으로 사용자를 위해 새로 생성된 UUID를 표시할 수 있습니다.
const genUUID =(a) => (a ? (a ^ ((Math.random() * 16)>> (a / 4))).toString(16) :([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, genUUID));
여기에서 출력을 테스트합니다.
console.log(genUUID());
8. 두 날짜 사이의 일수 가져오기
특정 값(예:사용자 계정)의 수명을 결정할 때 특정 시점 이후 경과된 일 수를 계산해야 합니다. 다음은 이를 수행하는 간단한 한 줄짜리입니다.
const ageDays =(이전, 최근) => Math.ceil(Math.abs(이전 - 최근) / (1000 * 60 * 60 * 24));
사용 사례의 경우 2012년 12월 28일에 계정을 만든 사용자의 나이를 평가한다고 가정하고 이 선언을 사용하여 해당 날짜와 오늘 사이의 일수를 구합니다.
console.log(ageDays(new Date('2012-12-28'), new Date()));
이 글을 쓰는 시점에서 3298일의 결과가 나와야 합니다.
9. 범위 내에서 난수 생성
때로는 임의의 숫자를 생성하는 것만으로는 충분하지 않습니다. 생성 조건을 제한해야 할 수도 있습니다. 이 한 줄짜리를 사용하면 지정된 특정 범위 내에서 숫자를 생성할 수 있습니다.
const rangeRandom =(낮음, 높음) => Math.floor(Math.random() * (높음 - 낮음 + 1)) + 낮음;
테스트는 쉬워야 합니다.
console.log(rangeRandom(400, 20000));
자주 묻는 질문(FAQ)
1. 쿠키에서 UUID를 사용하는 이유는 무엇입니까?
쿠키는 본질적으로 방해가 되고 사용자 컴퓨터의 공간을 차지하므로 이러한 도구를 사용하여 데이터를 수집할 때 가능한 한 효율적이고 비침습적인 것을 목표로 해야 합니다. UUID를 사용하면 두 가지 이점이 있습니다. 첫째, 식별자 길이가 128비트에 불과하기 때문에 클라이언트 기반 저장소에서 차지하는 공간을 최소화합니다. 둘째, 사용자에게 속한 모든 개인 데이터에 의존합니다.
2. 다크 모드를 감지할 때 Node.js에서 "창이 정의되지 않았습니다" 오류가 발생합니다. 어떻게 해야 하나요?
Node.js는 JavaScript와 동일한 고유한 클라이언트-서버 관계가 없기 때문에 클라이언트 측 모듈을 호출할 수 없습니다. 이 기사의 다크 모드 감지 한 줄짜리는 특히 브라우저 기반 JavaScript를 위한 것입니다.
3. 이 코드는 모든 브라우저에 보편적입니까?
JavaScript 코드는 보편적으로 작동하는 인터프리터를 사용합니다. 이론적으로 모든 브라우저에서 작동하지만 특히 아주 오래된 소프트웨어에서는 코드를 해석하는 방식이 약간 다를 수 있습니다. 여기에 표현된 모든 단일 라이너의 경우 사용자가 코드를 실행하는 브라우저에 관계없이 모두 동일한 결과를 반환해야 합니다. 그러나 일반적으로 JavaScript에서 사용하는 일부 기능은 Pale Moon, Internet Explorer 또는 현재 활발하게 개발 중인 2000년대 초 버전과 같은 브라우저에서는 작동하지 않을 수 있습니다.