Node.js와 WSH는 어떤 차이가 있습니까?

8276 단어 Node.jsJavaScriptWSH

개시하다


몇 년 전 어느 날, 친구가 흥분해서 말했다.제이스에 대해서 알려줬어요.
"서버에서 JavaScript를 사용할 수 있습니다!"
"조금씩 일괄 처리해도 자바스크립트로 쓸 수 있어요! 편리해요!"
그때 그걸 들은 내가 되물었다.
"그게 WSH를 말하는 건가요?"
누군가가 나와 같은 의문을 가지고 있을지도 모르니 WSH와 노드.js의 차이를 총결하였다.

WSH 소개


WSH는 스크립트 실행 환경입니다.Windows Script Host의 약칭입니다.이름 그대로 Windows 전용입니다.셸 스크립트와 같은 일괄 처리를 실행할 수 있습니다.
JScript 및 VBScript는 프로그래밍 언어로 실행됩니다.이 JScript는 JavaScript와 호환됩니다.
WSH를 사용하면 웹 서버를 구축할 수도 있습니다.
(자세한 내용은 여기.
WSH를 사용하면 서버 쪽에서 자바스크립트를 사용할 수도 있고 살짝 처리할 수도 있다는 얘기다!대단해!

Node.js 소개



Node.js도 스크립트 실행 환경입니다.JavaScript는 프로그래밍 언어로 실행됩니다.Node.js는 스크립트를 실행할 수도 있고 웹 서버를 시작할 수도 있습니다.그래서 과거의 나는 WSH로 착각했다.

WSH vs Node.js


결과는 WSH 및 Node입니다.js는 뭐가 달라요?내가 가서 비교해 볼게.

WSH는 Windows에서만 작동


Node.js는 크로스 플랫폼이지만 WSH는 Windows에서만 실행될 수 있어서 유감입니다.
Windows
Linux
Mac
WSH



Node.js



WSH는 Windows 표준 장비입니다.


WSH의 가장 큰 장점은 Windows의 표준 장비입니다.윈도 98부터 윈도 10까지 다 있어요.
노드js를 이용하려면 환경 구축 작업이 필요하다.
예를 들어 회사 방침에 따라 컴퓨터에 새 소프트웨어를 설치할 수 없는 경우,Node.js는 사용할 수 없지만 WSH는 사용할 수 있습니다.

WSH 레지스트리가 고장 났습니다.


Node.js에서 윈도 등록표를 조작하는 것은 어렵지만 WSH라면 직접 편집할 수 있습니다.이 때문에 WSH의 보안 위험은 바이러스를 많이 만들었다고 한다.
등록표를 편집할 수 있다는 점에서 WSH는 일괄 처리 파일과 PowerShell에 가까운 존재입니다.
다만, 노드.js는 등록표를 직접 편집할 수 없지만 cmd나 조개껍질을 통해서는 가능하다고 생각합니다.

Node.js는 최신 자바스크립트를 사용할 수 있습니다


WSH에서 사용할 수 있는 JScript는 2009년에 업데이트를 중지했습니다.최신 JScript 5.8은 JavaScriptes3과 같습니다.
Node.js라면 ES5를 이용할 수 있고, Babel을 사용하면 ES6를 쉽게 조작할 수 있다.
추기: WSH에서도 ES6의 문법을 사용하는 방법이 있다고 합니다.상세한 상황은 뒷부분에 기재한다.

Node.간편한 패키지 관리


Node.나는 js의 장점은 포장의 풍부함에 있다고 생각한다.질과 양이 알차다.소프트웨어 패키지의 버전과 의존 관계도 npm를 통해 간단하게 관리할 수 있다.
WSH에는 COM(ActiveX)이 있지만 버전 관리와 의존 관계는 프로그래머가 스스로 판단해야 한다.

샘플 코드


이번에는 샘플 코드로 WSH와 노드를 썼다.우리 js를 비교해 봅시다.
예를 들어 이런 파일이 두 개 있다고 가정해 보자.

file.txt에서 UTF-8 문자열을 가져와 표시하는 작업을 수행합니다.
WSH에서는 이런 느낌입니다.
WSH
//必要なオブジェクトを読み込み
var stream = new ActiveXObject("ADODB.Stream");

//ファイルの種類を指定。1:バイナリ、2:テキスト
stream.Type = 2;

//文字コードを指定
stream.charset = "UTF-8";

//ストリームを開く
stream.Open();

try {
  //ファイルを読み込む
  stream.LoadFromFile("file.txt");

  //ファイルから全ての文字列を取得する
  var str = stream.ReadText(-1);

  //文字列を表示
  WScript.Echo(str);
} catch (exception) {
  //エラーメッセージを表示
  WScript.Echo("file.txt is not found.");
}

//ストリームを閉じる
stream.Close();
이거 쓴 Sample.js를 두 번 클릭하면 스크립트를 실행할 수 있습니다.
Windows라면 바로 시도해 볼 수 있습니다.편리합니다!
지령선으로 집행하고 싶다면, 이런 느낌이다.
command
cscript sample.js
유사한 처리 노드를js로 쓰면 이런 느낌이야.
Node.js
//必要なモジュールを読み込み
var fs = require("fs");

//ファイルを開いて文字列を取得
fs.readFile("./file.txt", "utf8", (err, str) => {
  //エラー判定
  if (err) {
    //エラーメッセージを表示
    console.log("file.txt is not found.");
  } else {
    //文字列を表示
    console.log(str);
  }
});
Node.만약 js가 설치된 환경에서 상술한 샘플 코드를sample로 사용하십시오.js에 쓰고 다음 명령을 실행하면 됩니다.
command
node sample.js
이렇게 샘플 코드를 비교하면 코드의 작법에서 시대의 차이를 다소 느낄 수 있다.WSH는 Open과 Close를 명시적으로 기술해 좀 낡아 보였다.Node.나는 js의 줄 수도 적고 매우 간단하다고 생각한다.

보완: WSH에서 Excel 편집 가능


댓글에 알려줬으니까 추가.
Excel의 자동화에 대해 말하자면 먼저 Excel 매크로(VBA)를 생각하면 WSH도 간단하게 편집할 수 있다.마이크로소프트의 공식 COM을 사용하지만 VBA와 동일하게 사용할 수 있다.JScript가 아니라 VBScript를 사용할 때도 문법이 VBA와 똑같다.
Node.js면 js-xlsx 이런 포장이 있는 것 같아요.엑셀이 어디까지 놀 수 있는지 몰라서 참고서에만 썼어요.

추기: 역시 WSH에서도 ES6 사용 가능


WSH가 실행될 때 Microsoft Edge 엔진을 사용하도록 지정하면 ES6 구문을 사용할 수 있다고 설명했습니다.
지령은 이렇다.
command
cscript //E:{1b7cd997-e5ff-4932-a7a6-2a9e636da385} sample.js
클라스 같은 일반적인 용법은 나를 놀라게 했다.다만, 노드.js에 비해 다양한 제한이 있어 사용하기가 어려울 것 같습니다.자세한 내용은 평론란에서 확인하세요.

총결산


WSH는 자바스크립트의 여명기를 지탱한 선봉적인 존재로 훌륭한 기술이지만, 얼렁뚱땅 낡은 기술이라고 할 수 있다.서버나 PC로만 자바스크립트를 이동하고 싶다면.js 사용을 추천합니다.
다만, 레지스트리를 수정하거나 OS에 더 가까운 부분을 편집하려면 WSH가 후보가 될 수 있다고 생각한다.

좋은 웹페이지 즐겨찾기