我對JavaScript中的評估順序感到困惑。在我的第一個示例中,我期望在函數console.log()
之前評估參數number++
,從而使控制檯輸出爲2,3,4
。是在其參數之前執行的包含函數嗎?
打印1, 2, 3
到控制檯:
var foo = [1,2,3]
for (number of foo) {
console.log(number++)
}
打印2, 3, 4
到控制檯:
var foo = [1,2,3]
for (number of foo) {
number++
console.log(number)
}
根據我對this answer的理解,在執行包含函數之前,將首先從左到右評估參數。這似乎並非如此 - 有人可以解釋爲什麼不能?
'可變++'增加已經outputed後/使用時,'++可變'以前。兩者都不是函數調用 – baao
不要忘記聲明所有變量,比如'number',否則它們會在全局範圍內結束。或者查看[嚴格模式](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode),如果您嘗試訪問/分配未聲明的變量,它會拋出。 – Thomas