鉴于代码行是同步的,节点js中行的执行顺序是什么

时间:2017-02-04 16:41:13

标签: javascript node.js synchronous

例如,

var doSomething = function() {`
    var a = 1, b = 2, c = 3;
    var d = a;
    b = b - 3;
    d = b;
    console.log(a,b,c,d);
}

doSomething();

是否有任何可能的情况从宇宙的黎明开始直到结束,代码的输出在节点js中执行 - 构建在JavaScript的V8引擎上将是除了 1 -1 3 -1。

是否有任何同步代码行的组合,它们没有按照它们的写入顺序执行。?

任何双关语都不受欢迎,任何帮助都表示赞赏。

其他问题:

var index = commonFunc.getObjectIndexFromArray(option[0].fields.custom_field, tableAccess.checkDomainInTable.selected_template); 
if (option[0].fields.custom_field && option[0].fields.custom_field.length > 0 && index >= 0) {
    userOptions = option[0]['fields']['custom_field'][index][tableAccess.checkDomainInTable.selected_template]; 
} 
if(tableAccess.checkDomainInTable.delivery_template) { 
    index = commonFunc.getObjectIndexFromArray(option[0].fields.custom_field, tableAccess.checkDomainInTable.delivery_template); 
    if (option[0].fields.custom_field && option[0].fields.custom_field.length > 0 && index >= 0) {
        deliveryOptions = option[0]['fields']['custom_field'][index][tableAccess.checkDomainInTable.delivery_template]; 
    } 
} 

在上面的代码中,在假设公共函数使用简单的for循环从json对象的数组中获取json对象的索引之后,可以存在任何情况,其中变量索引的赋值的第二次出现是首先执行,然后第一次出现&导致userOptions和deliveryOptions值的歧义?

1 个答案:

答案 0 :(得分:1)

如果这是整个代码,并假设V8实现或底层硬件没有错误 - 不,这段代码将始终以相同的顺序执行并具有相同的结果(即您提供的那些)。