>  기사  >  웹 프론트엔드  >  JavaScript는 프런트엔드 작성에만 사용할 수 있나요?

JavaScript는 프런트엔드 작성에만 사용할 수 있나요?

青灯夜游
青灯夜游원래의
2022-10-09 17:24:382112검색

JavaScript는 프런트엔드뿐만 아니라 백엔드도 작성할 수 있습니다. JavaScript는 Node.js를 사용하여 백엔드 개발을 수행할 수 있습니다. Node.js는 JavaScript가 서버 측에서 실행될 수 있도록 하는 개발 플랫폼입니다. 이벤트 중심의 "I/O" 서버 측 JavaScript 환경입니다. Node.js는 서버 측에서 실행되는 JavaScript로 이해될 수 있습니다. 뒷면에 쓸 수 있습니다.

JavaScript는 프런트엔드 작성에만 사용할 수 있나요?

이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.

JavaScript는 프런트엔드뿐만 아니라 백엔드도 작성할 수 있습니다.

JavaScript는 Node.js 기술을 통해 백엔드 개발을 달성할 수 있습니다. Node.js는 JavaScript를 서버에서 실행할 수 있게 해주는 개발 플랫폼으로, JavaScript를 PHP와 같은 서버측 언어와 동등한 스크립팅 언어로 만듭니다. , Python, Perl 및 Ruby.

Node.js를 사용하면 js가 서버 측에서 실행될 수 있으며 Google v8 엔진을 사용하여 성능 도약을 가져와 Go 언어에 거의 가까운 성능을 제공합니다. 비동기식 프로그래밍 방법을 사용하면 대규모 동시성을 처리할 수 있습니다. 그러나 이제 다음과 같은 단점도 있습니다.

Java의 Spring 프레임워크와 같이 고도로 통일된 개발 방법이 없습니다. 백엔드를 개발하려는 프런트엔드 개발자로서 다음과 같은 점이 당황스러울 수 있습니다. 너 자신이 먼저야. 하지만 실제로 중소형 시스템의 경우 백엔드 개발에 있어 가장 중요한 것은 "SQL"에 익숙해지는 것입니다. 이를 마스터하면 백엔드 개발을 시작할 수 있습니다. 다른 모든 것은 프레임워크에 의해 준비되어 있기 때문입니다.

프레임워크 선택

현재 백엔드 개발에 사용되는 노드 프레임워크는

  • egg
  • express
  • koa
  • nest
  • 입니다. . .

그렇다면 어떻게 선택해야 할까요? 그럼 가장 인기 있는 github의 시작 부분을 비교해 볼까요? 그러나 저자는 다음과 같은 이유로 모든 사람에게 egg를 사용할 것을 권장합니다.

  • Alibaba Financial Services에서 개발했으며 유지 관리 및 업그레이드 반복이 보장됩니다.
  • 하단 레이어는 koa를 기반으로 합니다.
  • 쉽게 멀티 코어를 사용할 수 있습니다. 서버 성능을 압박하기 위해 서비스를 배포할 때
  • 풍부한 플러그인을 선택할 수 있으며 자신만의 플러그인을 사용자 정의할 수도 있습니다.
  • 중소 규모 시스템의 경우에는 사용하지 않는 것이 좋습니다. Nest와 같은 springboot와 유사한 프레임워크는 springboot를 직접 사용하는 것이 더 완벽하고 건전하며 안정적입니다.

javascript 백엔드를 작성하기 전에 알아야 할 사항

Node는 JS만의 병목 현상을 해결합니다. JS를 마스터한 자의 위업을 실감하는 프론트엔드 개발 능력! 그러나 백엔드를 수행하는 것은 프런트엔드를 수행하는 것보다 훨씬 더 엄격하므로 JS 언어의 일부 "버그"를 알고 있어야 합니다. 데이터가 잘못되게 놔두지 마십시오. 그러면 완전히 혼란스러울 것입니다.

다음은 JS 데이터 처리에서 흔히 발생하는 몇 가지 문제와 해결 방법의 예입니다! 모든 사람이 JS의 기반을 강화하고 업무 중 우회를 피할 수 있도록 도와주세요.

1. 부동 소수점 데이터의 정밀도 손실 문제:

부동 소수점 유형은 강력한 유형의 언어에서 단정밀도 부동 소수점 유형(float)이중 정밀도 부동 소수점 유형(double)으로 구분됩니다. ​( C, JAVA), JS에서는 Number라고 통칭합니다. 관심 있는 독자들은 관련 지식을 배울 수 있습니다. 이 기사는 계속해서 위의 질문으로 돌아갑니다.

먼저 정확도 상실 문제의 성능을 살펴보겠습니다. 소스 코드는 다음과 같습니다.

console.log(0.1+0.2);    //0.30000000000000004

결과는 0.3이어야 하는데 실행 결과가 혼란스럽습니다. 이는 백엔드 개발에서는 절대 허용되지 않습니다. 이 문제는 JS에서만 나타나는 것이 아닙니다. 테스트 후 이 문제는 JAVA 및 PHP에서는 존재하지만 C에서는 존재하지 않습니다. 나는 왜 다른 언어를 배우지 않았나요? 왜인지 모르겠어요!

문제에 대해 이야기한 후, 해결 방법에 대해 이야기해 보겠습니다.

const floatAdd = (arg1, arg2) => {
    let r1,r2,m;
    try {
    	r1 = arg1.toString().split(".")[1].length;
    } catch(e) {
    	r1 = 0;
    }
    try {
    	r2 = arg2.toString().split(".")[1].length;
    } catch(e) {
    	r2 = 0;
    }
    m  =Math.pow(10,Math.max(r1,r2));
    return (arg1*m+arg2*m)/m;
};

console.log(floatAdd(0.1,0.2));    // 0.3

다행히 위 코드를 통해 우리가 원하는 올바른 결과를 얻었지만 JS가 우리에게 남긴 문제는 끝나지 않았습니다. . 다음 질문을 참조하세요.

2. ToFixed() 반올림 BUG:

toFixed() 메서드는 값 형식을 지정하기 위해 고정 소수점 표현을 사용합니다. 쉽게 말하면 데이터를 반올림하는 과정으로, 고정 소수점은 유지되는 소수점 이하 자릿수를 의미합니다.

이 질문은 이전 질문인 "부동 소수점" 데이터와 여전히 관련이 있습니다. 아래 샘플 코드를 참조하세요.

let a=1.115;
console.log(a.toFixed(2))    //1.11

다행히 편집자는 초등학교 때 수학을 잘했고, 1학년 때 수학 반 대표를 했던 것 같습니다. 몇년(은밀하게 행복해요) 한눈에 알 수 있어요 네, 정답은 1.12이겠죠. 영리한 편집자는 함정을 피할 방법을 찾기 위해 열심히 노력하고 있습니다. 소스 코드를 참조하세요:

const newToFixed=(value,length)=>{  
    let tempNum = 0;  
    let s,temp;  
    let s1 = value + "";  
    let start = s1.indexOf(".");  
    if(s1.substr(start+length+1,1)>=5){
        tempNum=1;  
    }
    temp = Math.pow(10,length);  
    s = Math.floor(value * temp) + tempNum;  
    return s/temp;  
}

console.log(newToFixed(1.115,2))    //1.12

JS를 사용하여 백엔드 애플리케이션을 개발할 때 이러한 데이터 이상에 주의해야 합니다. 더 많은 질문이 있으면 독자들이 스스로 공부하도록 초대됩니다.

수천만 줄의 코드, 첫 번째 기본 줄. 기초가 탄탄하지 않아서 앞으로는 눈물을 흘릴 예정이다.

참고: 코드 예제에서는 ECMAScript 2015 버전 구문을 사용합니다. 호환성 요구 사항이 있는 경우 소스 코드를 수정하는 것을 잊지 마세요.

첫 번째 줄과 호환되는 수천만 줄의 코드. 호환이 되든 안 되든 처음 두 줄에서 눈물이 흘렀습니다.

【관련 추천: 웹 프론트엔드 개발

위 내용은 JavaScript는 프런트엔드 작성에만 사용할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.