在 Visual Studio 代码终端中运行 JavaScript 代码,与在浏览器控制台中运行的相同

Posted

技术标签:

【中文标题】在 Visual Studio 代码终端中运行 JavaScript 代码,与在浏览器控制台中运行的相同【英文标题】:Run JavaScript codes in Visual Studio code terminal same as what works in browser's console 【发布时间】:2020-12-26 15:23:58 【问题描述】:

这是一个基本的 vs 代码问题,但我对这个代码编辑器有点陌生。我需要在 vs 代码平台中运行/console.log() 一个简单的 js 脚本,这与在浏览器控制台或此“代码 sn-p”中的工作相同。仅以我的简单 js 脚本为例:

const data = parseInt(prompt("5 x 5?"));
const testResult = (answer) => data === answer ? console.log(`Correct. Your answer was: $data`) : console.log(`Incorrect. Your answer was: $data. Pls try again`)

testResult(25);

如果我在浏览器中console.log() 这个,它看起来像这样。弹出一个提示,您可以输入该值并在日志中查看结果。

如何在 Vs 代码终端中执行此操作,而不是转到浏览器的控制台,运行并查看结果?我尝试在 vs 代码终端中运行它,例如 node test.js。当然,它会出错,因为 prompt 没有定义。我已经看过并尝试过浏览器预览扩展,但不适用于这样的简单代码。用于设置的 json 脚本可能或任何有效的扩展?感谢您的帮助。

【问题讨论】:

【参考方案1】:

我们知道 node.js 代码在浏览器之外运行,所以您会看到原生 javascript 和 nodeJs 之间的细微差别。

在 nodeJS 中为了从用户那里获取输入,你需要像我们在 C++ 或 JAVA 代码中那样从终端读取行

示例

const readline = require("readline");
const rl = readline.createInterface(
    input: process.stdin,
    output: process.stdout
);

rl.question("What is your name ? ", function(name) 
    rl.question("Where do you live ? ", function(country) 
        console.log(`$name, is a citizen of $country`);
        rl.close();
    );
);

rl.on("close", function() 
    console.log("\nBYE BYE !!!");
    process.exit(0);
);

使用节点命令运行以上代码

【讨论】:

【参考方案2】:

Vanilla JavaScript 和 Node.js 有一些区别,这就是其中之一。你有一些选择:

可以使用内置的readline模块
const readline = require("readline");
const rl = readline.createInterface(
    input: process.stdin,
    output: process.stdout
);

rl.question("How old are you ? ", function(age) 
        console.log(`You are $age years old`);
        rl.close();
    );
);

rl.on("close", function() 
    process.exit(0);
);

参考:https://nodejs.org/en/knowledge/command-line/how-to-prompt-for-command-line-input/

您可以使用包管理器进行安装,然后使用第三方库。这种库的一个例子是prompt。有些人使用这些第三方库是因为它们有助于验证用户输入。
var prompt = require('prompt');

  //
  // Start the prompt
  //
  prompt.start();

  //
  // Get two properties from the user: username and email
  //
  prompt.get(['username', 'email'], function (err, result) 
    //
    // Log the results.
    //
    console.log('Command-line input received:');
    console.log('  username: ' + result.username);
    console.log('  email: ' + result.email);
  );

参考:https://github.com/flatiron/prompt

【讨论】:

我认为这很好用。除了这些,您还有其他选择吗? 不,这些是我过去使用过的东西,对我有用。如果它也对你有用,请接受我的回答。

以上是关于在 Visual Studio 代码终端中运行 JavaScript 代码,与在浏览器控制台中运行的相同的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio代码终端,如何以管理员权限运行命令?

Visual Studio Code 在终端中运行程序以进行输入

如何将终端更改为 Visual Studio 代码中的当前目录? (热键)[重复]

在新窗口终端中使用 Visual Studio Code 中的终端运行

如何在 Mac 终端中从 Visual Studio 运行应用程序

使用 Visual Studio Code 在终端中运行 Dart 控制台应用程序