例如,
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值的歧义?
答案 0 :(得分:1)
如果这是整个代码,并假设V8实现或底层硬件没有错误 - 不,这段代码将始终以相同的顺序执行并具有相同的结果(即您提供的那些)。