考虑以下代码:
function printVariable(variable){
variable++;
console.log(variable);
}
var i = 0;
var j = 0;
var k = 0;
var i = 1;
var j = 2;
var k = 3;
printVariable(i);// [1]
printVariable(j);// [2]
printVariable(k);// [3]
var i = 6; // [4]
printVariable(i);// [5]
输出是:
2
3
4
7
据我所知,nodejs默认是异步javascript平台。
[5]呼叫是否可能在[4]之前运行?那么最后一行输出将是2?或[1]将日志1调用到控制台?
如果它每秒运行20000次,是否会保证声明的顺序?
另一方面,声明是否可能没有同步运行?
答案 0 :(得分:1)
Node.js不是一种语言。 JavaScript是一种语言。
Node.js是一个允许执行Javascript代码并使调用异步操作(通常是IO相关操作)变得容易的平台。我们的想法是在事件上调用函数,管理事件队列和底层操作的节点(可以并行执行)。
但是总有一个线程执行你的代码。
您的代码不会延迟任何执行,它是完全同步的,并且始终会产生相同的输出。
答案 1 :(得分:1)
Node.js不是它的平台语言。
谈论你的代码,它是基本的JS代码和
您将值重新分配给i,j,k
,因为JS是最新值的互穿语言。
因此,当您调用 printVariable 函数时,它将1,2,3作为输入。
如果您想在JS中学习Async概念,请观看此视频: