鉴于代码行是同步的,节点 js 中这些行的执行顺序是什么
Given the lines of code are synchronous, what would be the order of execution of the lines in node js
例如,
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 的值不明确?
如果这就是全部代码,并且假设 V8 实现或底层硬件中没有错误 - 不,此代码将始终以相同的顺序执行并产生相同的结果(即您提供的结果)。
例如,
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 的值不明确?
如果这就是全部代码,并且假设 V8 实现或底层硬件中没有错误 - 不,此代码将始终以相同的顺序执行并产生相同的结果(即您提供的结果)。