考慮到我所看到的行為,我正在嘗試確定我對“const”的使用是否合適。
function showInstructions() {
const againText = (clickCounter > 0) ? "again " : "";
my2DContext.fillText("Click " againText "to try to do the thing", myCanvas.clientWidth / 2, myCanvas.clientHeight / 2);
}
第一次呼叫該函式時,clickCounter為0,顯示:
“點擊嘗試做這件事”
稍后呼叫,當 clickCounter > 0 時,函式顯示:
“再次點擊嘗試做這件事”
這按預期作業。
這是對“const”的恰當使用嗎?這應該是預期的行為嗎?它匹配其他語言嗎?
uj5u.com熱心網友回復:
每次呼叫函式時,Javascript 函式級別的 const 變數能否采用不同的值?
是的,如您的示例所示。
這是對“const”的恰當使用嗎?
是的。clickCounter
但是,如果宣告為函式的引數會更合適。
這應該是預期的行為嗎?
是的,它與var
, let
or相同function
:函式內的宣告在每次呼叫時在該函式的范圍內創建一個新的區域變數。
它匹配其他語言嗎?
是的。很少有語言的變數在函式內部宣告時會在函式的多次呼叫之間共享。
uj5u.com熱心網友回復:
每次呼叫函式時,Javascript 函式級別的 const 變數能否采用不同的值?
簡短回答:是的
長答案
我試圖根據您的示例重新創建一個快速可運行的代碼。
- 每次點擊事件觸發時,
againText
變數中的運算式都會被計算(三元運算子),并為變數分配一個新值againText
。
這是正常行為,這只會在函式被呼叫時發生,只有當您嘗試在函式內重新分配一個值時才會發生錯誤againText
。
function showInstructions() {
let clickCounter = document.getElementById("click").value;
const againText = Number(clickCounter) > 0 ? "again " : "";
document.getElementById("text").innerHTML =
"Click " againText "to try to do the thing";
}
document
.getElementById("btn")
.addEventListener("click", showInstructions);
<input type="number" id="click" />
<button id="btn">click</button>
<p id="text"></p>
uj5u.com熱心網友回復:
在 javascript 中,“const”無法重新分配,但它是可變的,所以是的,我認為這是對“const”的適當使用 您可以在 MDN 檔案上閱讀有關 const 的更多資訊 - https://developer.mozilla.org/en-US/檔案/Web/JavaScript/Reference/Statements/const
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/537584.html
下一篇:kwargs不同的行為