Node.js nodejs中的变量分配是同步的吗?

Node.js nodejs中的变量分配是同步的吗?,node.js,Node.js,说我们有 var x =3; var y = 4; var z = x*y; console.log(z); 我们怎么知道它不会打印未定义的变量z 如果是异步的,是否有一个函数用于通过回调将值分配给变量,以便我们在使用它们时可以确定它们的值。 如果是同步的,则在加载模块时,如 var express = require('express'); 如果在一个脚本中加载其中的几个脚本,速度不是很慢吗 nodejs中的变量分配是同步的吗 是的 实际上,任何语句序列都是同步执行的 您可能会对以下类

说我们有

var x =3; 
var y = 4;
var z = x*y;
console.log(z);
我们怎么知道它不会打印未定义的变量z

  • 如果是异步的,是否有一个函数用于通过回调将值分配给变量,以便我们在使用它们时可以确定它们的值。
  • 如果是同步的,则在加载模块时,如
var express = require('express');
如果在一个脚本中加载其中的几个脚本,速度不是很慢吗

nodejs中的变量分配是同步的吗

是的

实际上,任何语句序列都是同步执行的

您可能会对以下类型的情况感到困惑:

var x = LongRunningAsyncTask();
console.log(x);
在这里,
LongRunningAsyncTask
无法返回其结果,因为它还未知。因此,
x
可能不是您想要的,这就是为什么假设
LongRunningAsyncTask
是以回调方式实现的,您需要编写

LongRunningAsyncTask(function callback(x) {
  console.log(x);
});
或者如果
LongRunningAsyncTask
返回承诺,则

LongRunningAsyncTask() . then(x => console.log(x));
或使用异步函数:

async function foo() {
  var x = await LongRunningAsyncTask();
  console.log(x);
}

可能的副本。这个线程应该会解决您的所有问题。那么nodejs只是普通的javascript?我认为关键在于它是异步执行的。这仍然不能回答我的问题,即在一个脚本中加载多个require是否很慢。当您加载带有require的模块时,大部分时间它都不是通过网络(文件在服务器上),因此不会很长时间。您可能正在考虑通过具有延迟的网络进行请求。