Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
变量超出其调用范围/未保存变量,visual studio代码中的javascript_Javascript_Visual Studio Code - Fatal编程技术网

变量超出其调用范围/未保存变量,visual studio代码中的javascript

变量超出其调用范围/未保存变量,visual studio代码中的javascript,javascript,visual-studio-code,Javascript,Visual Studio Code,大家好,我最近开始学习JavaScript。我在VisualStudio代码环境中工作。我在理解代码中发生的某些事情时遇到了一些麻烦。我从代码开始 var faker=require('faker'); 这是成功执行的。现在我添加了以下内容 console.log(faker.internet.email()); 在尝试运行这一行时,我得到一个错误,变量faker没有定义。但是,如果我运行整个文件,该文件将成功执行并获得所需的结果 所以看起来变量并没有保存到本地环境中。这似乎不同于我在V

大家好,我最近开始学习JavaScript。我在VisualStudio代码环境中工作。我在理解代码中发生的某些事情时遇到了一些麻烦。我从代码开始

var faker=require('faker');

这是成功执行的。现在我添加了以下内容

console.log(faker.internet.email());

在尝试运行这一行时,我得到一个错误,变量faker没有定义。但是,如果我运行整个文件,该文件将成功执行并获得所需的结果

所以看起来变量并没有保存到本地环境中。这似乎不同于我在VisualStudio代码中使用C++和Python的经验。这是java脚本的固有属性吗?或者这是VisualStudio代码处理java脚本的特定方式

编辑: 我使用以下方法安装了faker:

npm install faker
它给了我下面的日志

npm WARN saveError ENOENT: no such file or directory, open '/Users/user/package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '/Users/myuser/package.json'
npm WARN myuser No description
npm WARN myuser No repository field.
npm WARN myuser No README data
npm WARN myuser No license field.

+ faker@5.1.0
added 1 package from 1 contributor and audited 1 package in 1.522s
found 0 vulnerabilities
当运行整个文件而不是单个行时,它为我提供了所需的输出

错误如下所示:

console.log(faker.internet.email());
            ^

ReferenceError: faker is not defined
    at Object.<anonymous> (/Users/myuser/Desktop/javascript_code/tempCodeRunnerFile.js:1:13)
    at Module._compile (internal/modules/cjs/loader.js:1137:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
    at Module.load (internal/modules/cjs/loader.js:985:32)
    at Function.Module._load (internal/modules/cjs/loader.js:878:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
    at internal/main/run_main_module.js:17:47

[Done] exited with code=1 in 0.244 seconds


console.log(faker.internet.email());
^
ReferenceError:未定义伪造者
反对。(/Users/myuser/Desktop/javascript_code/tempCodeRunnerFile.js:1:13)
at模块编译(内部/modules/cjs/loader.js:1137:30)
at Object.Module._extensions..js(internal/modules/cjs/loader.js:1157:10)
在Module.load(内部/modules/cjs/loader.js:985:32)
at Function.Module._load(内部/modules/cjs/loader.js:878:14)
在Function.executeUserEntryPoint[作为runMain](internal/modules/run_main.js:71:12)
在internal/main/run_main_module.js:17:47
[完成]在0.244秒内退出,代码=1

您是如何“运行这一行”的?同样,变量在任何意义上都不会保存到本地环境中。不要跑单行线。写一个脚本,然后运行它。我突出显示了这一行,用鼠标右键点击我选择了RunCodeOK,我从来没有听说过这个。你为什么要这么做?没关系,只要尽快忘记就行了。另外,在开始安装模块之前,您应该先从项目文件夹中的
npm init
开始。@ChrisG Ha,我想验证特定部分是否正常工作,因为我有其他注释掉的代码,并且依赖于此。这是一种糟糕的做法吗?我想这取决于,但正如您所发现的,这只适用于不依赖于其他地方定义的变量的代码片段。对于较小的程序,只需完整运行它们。对于更大的项目,你无论如何都要实现单元测试(当你想测试一个更大的程序的一部分时,你会用到这些东西)